From 8144cff2c877d6103341d44450369d8bb9390f03 Mon Sep 17 00:00:00 2001 From: John Date: Sat, 22 Jul 2017 03:07:20 +0800 Subject: [PATCH] Initial commit, running Debain successfully building with Vivado 2017.1 --- .../ip_cores/afifo_w3_d16/afifo_w3_d16.xci | 430 + .../ip_cores/afifo_w3_d16/afifo_w3_d16.xml | 9708 ++ .../ip_cores/afifo_w64_d16/afifo_w64_d16.xci | 430 + .../ip_cores/afifo_w64_d16/afifo_w64_d16.xml | 9711 ++ .../ip_cores/fifo_w3_d16/fifo_w3_d16.xci | 428 + .../ip_cores/fifo_w3_d16/fifo_w3_d16.xml | 9707 ++ .../ip_cores/fifo_w64_d16/fifo_w64_d16.xci | 428 + .../ip_cores/fifo_w64_d16/fifo_w64_d16.xml | 9710 ++ .../ip_cores/bram_512x128/bram_512x128.xci | 200 + .../ip_cores/bram_512x128/bram_512x128.xml | 3399 + .../ip_cores/bram_512x32/bram_512x32.xci | 200 + .../ip_cores/bram_512x32/bram_512x32.xml | 3399 + .../ip_cores/bram_1024x64/bram_1024x64.xci | 198 + .../ip_cores/bram_1024x64/bram_1024x64.xml | 3397 + .../ip_cores/bram_2048x144/bram_2048x144.xci | 198 + .../ip_cores/bram_2048x144/bram_2048x144.xml | 3396 + .../ip_cores/bram_256x104/bram_256x104.xci | 198 + .../ip_cores/bram_256x104/bram_256x104.xml | 3395 + .../bram_2p_128x176/bram_2p_128x176.xci | 199 + .../bram_2p_128x176/bram_2p_128x176.xml | 3385 + .../bram_2p_256x176/bram_2p_256x176.xci | 198 + .../bram_2p_256x176/bram_2p_256x176.xml | 3384 + .../ip_cores/bram_4096x144/bram_4096x144.xci | 198 + .../ip_cores/bram_4096x144/bram_4096x144.xml | 3396 + .../ip_cores/bram_128x132/bram_128x132.xci | 198 + .../ip_cores/bram_128x132/bram_128x132.xml | 3394 + .../ip_cores/bram_128x576/bram_128x576.xci | 198 + .../ip_cores/bram_128x576/bram_128x576.xml | 3395 + .../ip_cores/bram_128x78/bram_128x78.xci | 198 + .../ip_cores/bram_128x78/bram_128x78.xml | 3393 + .../ip_cores/bram_256x272/bram_256x272.xci | 198 + .../ip_cores/bram_256x272/bram_256x272.xml | 3395 + .../ip_cores/clk_mmcm_chip/clk_mmcm_chip.xci | 632 + .../ip_cores/clk_mmcm_chip/clk_mmcm_chip.xml | 3879 + .../design/chipset/include/chipset_define.vh | 7 +- piton/design/chipset/include/mc_define.h | 23 +- .../ip_cores/atg_uart_init/atg_uart_init.xci | 230 + .../ip_cores/atg_uart_init/atg_uart_init.xml | 8207 ++ .../ip_cores/atg_uart_init/uart_addr.coe | 19 + .../ip_cores/atg_uart_init/uart_data.coe | 2 + .../bram_16384x512/bram_16384x512.xci | 201 + .../bram_16384x512/bram_16384x512.xml | 3398 + .../zc706/ip_cores/bram_16384x512/obp.coe | 16386 +++ .../ip_cores/bram_256x512/bram_256x512.xci | 201 + .../ip_cores/bram_256x512/bram_256x512.xml | 3398 + .../ip_cores/mem_uart_done/mem_uart_done.xci | 195 + .../ip_cores/mem_uart_done/mem_uart_done.xml | 3388 + .../zc706/ip_cores/uart_16550/uart_16550.xci | 62 + .../zc706/ip_cores/uart_16550/uart_16550.xml | 1203 + .../uart_mig_afifo/uart_mig_afifo.xci | 429 + .../uart_mig_afifo/uart_mig_afifo.xml | 9726 ++ .../ip_cores/mig_7series_0/mig_7series_0.veo | 123 + .../ip_cores/mig_7series_0/mig_7series_0.xci | 1196 + .../ip_cores/mig_7series_0/mig_7series_0.xml | 99399 ++++++++++++++++ .../mig_7series_0/mig_7series_0/datasheet.txt | 75 + .../docs/phy_only_support_readme.txt | 11 + .../mig_7series_0/example_design/log.txt | 39 + .../example_design/par/example_top.xdc | 27 + .../example_design/par/readme.txt | 17 + .../example_design/rtl/example_top.v | 653 + .../rtl/traffic_gen/mig_7series_v4_0_afifo.v | 231 + .../traffic_gen/mig_7series_v4_0_cmd_gen.v | 1788 + .../mig_7series_v4_0_cmd_prbs_gen.v | 268 + .../mig_7series_v4_0_data_prbs_gen.v | 128 + .../mig_7series_v4_0_init_mem_pattern_ctr.v | 2117 + .../mig_7series_v4_0_memc_flow_vcontrol.v | 503 + .../mig_7series_v4_0_memc_traffic_gen.v | 909 + .../mig_7series_v4_0_rd_data_gen.v | 382 + .../mig_7series_v4_0_read_data_path.v | 751 + .../mig_7series_v4_0_read_posted_fifo.v | 251 + .../mig_7series_v4_0_s7ven_data_gen.v | 1047 + .../mig_7series_v4_0_tg_prbs_gen.v | 246 + .../traffic_gen/mig_7series_v4_0_tg_status.v | 127 + .../mig_7series_v4_0_traffic_gen_top.v | 627 + .../mig_7series_v4_0_vio_init_pattern_bram.v | 397 + .../mig_7series_v4_0_wr_data_gen.v | 433 + .../mig_7series_v4_0_write_data_path.v | 193 + .../example_design/sim/ddr3_model.sv | 2937 + .../sim/ddr3_model_parameters.vh | 3412 + .../example_design/sim/ies_run.sh | 102 + .../example_design/sim/readme.txt | 229 + .../mig_7series_0/example_design/sim/sim.do | 154 + .../example_design/sim/sim_tb_top.v | 577 + .../example_design/sim/vcs_run.sh | 102 + .../example_design/sim/wiredly.v | 159 + .../example_design/sim/xsim_files.prj | 156 + .../example_design/sim/xsim_options.tcl | 70 + .../example_design/sim/xsim_run.sh | 71 + .../mig_7series_0/mig_7series_0/mig.prj | 193 + .../mig_7series_0/user_design/log.txt | 139 + .../user_design/rtl/mig_7series_0_mig_sim.v | 1180 + .../mig_7series_0/mig_7series_0_xmdf.tcl | 319 + .../zc706/ip_cores/mig_7series_0/mig_a.prj | 193 + .../zc706/ip_cores/mig_7series_0/mig_b.prj | 193 + .../zc706/ip_cores/mig_7series_0/tcl.log | 1640 + .../zc706/ip_cores/mig_7series_0/xil_txt.in | 24 + .../zc706/ip_cores/mig_7series_0/xil_txt.out | 4 + piton/design/chipset/rtl/chipset.v | 8 +- .../afifo_w64_d128_std/afifo_w64_d128_std.xci | 427 + .../afifo_w64_d128_std/afifo_w64_d128_std.xml | 9711 ++ .../zc706/ip_cores/clk_mmcm/clk_mmcm.xci | 655 + .../zc706/ip_cores/clk_mmcm/clk_mmcm.xml | 4070 + .../mac_eth_axi_lite/mac_eth_axi_lite.xci | 61 + .../mac_eth_axi_lite/mac_eth_axi_lite.xml | 2131 + .../zc706/ip_cores/afifo_w64/afifo_w64.xci | 434 + .../zc706/ip_cores/afifo_w64/afifo_w64.xml | 9718 ++ .../zc706/ip_cores/afifo_w3/afifo_w3.xci | 434 + .../zc706/ip_cores/afifo_w3/afifo_w3.xml | 9715 ++ .../clk_mmcm_memio_unit_tests.xci | 531 + .../memctrl_test/rtl/memctrl_test.v | 17 +- piton/design/include/piton_system.vh | 11 +- piton/design/xilinx/zc706/constraints.xdc | 256 + piton/tools/bin/midas | 28 +- piton/tools/src/proto/block.list | 2 +- piton/tools/src/proto/board.list | 1 + piton/tools/src/proto/fpga_lib.py | 22 +- piton/tools/src/proto/protosyn,2.5 | 57 +- piton/tools/src/proto/vivado/upgrade_ips.tcl | 53 + piton/tools/src/proto/zc706/board.tcl | 34 + piton/tools/src/sims/sims,1.262 | 33 +- 120 files changed, 297381 insertions(+), 67 deletions(-) create mode 100644 piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w3_d16/afifo_w3_d16.xci create mode 100644 piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w3_d16/afifo_w3_d16.xml create mode 100644 piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w64_d16/afifo_w64_d16.xci create mode 100644 piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w64_d16/afifo_w64_d16.xml create mode 100644 piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w3_d16/fifo_w3_d16.xci create mode 100644 piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w3_d16/fifo_w3_d16.xml create mode 100644 piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w64_d16/fifo_w64_d16.xci create mode 100644 piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w64_d16/fifo_w64_d16.xml create mode 100644 piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x128/bram_512x128.xci create mode 100644 piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x128/bram_512x128.xml create mode 100644 piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x32/bram_512x32.xci create mode 100644 piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x32/bram_512x32.xml create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_1024x64/bram_1024x64.xci create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_1024x64/bram_1024x64.xml create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2048x144/bram_2048x144.xci create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2048x144/bram_2048x144.xml create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_256x104/bram_256x104.xci create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_256x104/bram_256x104.xml create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_128x176/bram_2p_128x176.xci create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_128x176/bram_2p_128x176.xml create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_256x176/bram_2p_256x176.xci create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_256x176/bram_2p_256x176.xml create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_4096x144/bram_4096x144.xci create mode 100644 piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_4096x144/bram_4096x144.xml create mode 100644 piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x132/bram_128x132.xci create mode 100644 piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x132/bram_128x132.xml create mode 100644 piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x576/bram_128x576.xci create mode 100644 piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x576/bram_128x576.xml create mode 100644 piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x78/bram_128x78.xci create mode 100644 piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x78/bram_128x78.xml create mode 100644 piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_256x272/bram_256x272.xci create mode 100644 piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_256x272/bram_256x272.xml create mode 100644 piton/design/chip/xilinx/zc706/ip_cores/clk_mmcm_chip/clk_mmcm_chip.xci create mode 100644 piton/design/chip/xilinx/zc706/ip_cores/clk_mmcm_chip/clk_mmcm_chip.xml create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/atg_uart_init.xci create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/atg_uart_init.xml create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/uart_addr.coe create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/uart_data.coe create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/bram_16384x512.xci create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/bram_16384x512.xml create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/obp.coe create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_256x512/bram_256x512.xci create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_256x512/bram_256x512.xml create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/mem_uart_done/mem_uart_done.xci create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/mem_uart_done/mem_uart_done.xml create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_16550/uart_16550.xci create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_16550/uart_16550.xml create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_mig_afifo/uart_mig_afifo.xci create mode 100644 piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_mig_afifo/uart_mig_afifo.xml create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.veo create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.xci create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.xml create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/datasheet.txt create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/docs/phy_only_support_readme.txt create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/log.txt create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/par/example_top.xdc create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/par/readme.txt create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/example_top.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_afifo.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_cmd_gen.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_cmd_prbs_gen.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_data_prbs_gen.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_init_mem_pattern_ctr.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_memc_flow_vcontrol.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_memc_traffic_gen.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_rd_data_gen.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_read_data_path.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_read_posted_fifo.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_s7ven_data_gen.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_tg_prbs_gen.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_tg_status.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_traffic_gen_top.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_vio_init_pattern_bram.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_wr_data_gen.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_write_data_path.v create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ddr3_model.sv create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ddr3_model_parameters.vh create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ies_run.sh create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/readme.txt create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/sim.do create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/sim_tb_top.v create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/vcs_run.sh create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/wiredly.v create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_files.prj create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_options.tcl create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_run.sh create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/mig.prj create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/log.txt create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v create mode 100644 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0_xmdf.tcl create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_b.prj create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/tcl.log create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in create mode 100755 piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out create mode 100644 piton/design/chipset/xilinx/zc706/ip_cores/afifo_w64_d128_std/afifo_w64_d128_std.xci create mode 100644 piton/design/chipset/xilinx/zc706/ip_cores/afifo_w64_d128_std/afifo_w64_d128_std.xml create mode 100644 piton/design/chipset/xilinx/zc706/ip_cores/clk_mmcm/clk_mmcm.xci create mode 100644 piton/design/chipset/xilinx/zc706/ip_cores/clk_mmcm/clk_mmcm.xml create mode 100644 piton/design/chipset/xilinx/zc706/ip_cores/mac_eth_axi_lite/mac_eth_axi_lite.xci create mode 100644 piton/design/chipset/xilinx/zc706/ip_cores/mac_eth_axi_lite/mac_eth_axi_lite.xml create mode 100644 piton/design/common/fpga_bridge/common/xilinx/zc706/ip_cores/afifo_w64/afifo_w64.xci create mode 100644 piton/design/common/fpga_bridge/common/xilinx/zc706/ip_cores/afifo_w64/afifo_w64.xml create mode 100644 piton/design/common/fpga_bridge/fpga_rcv/xilinx/zc706/ip_cores/afifo_w3/afifo_w3.xci create mode 100644 piton/design/common/fpga_bridge/fpga_rcv/xilinx/zc706/ip_cores/afifo_w3/afifo_w3.xml create mode 100644 piton/design/fpga_tests/memio_unit_tests/common/xilinx/zc706/ip_cores/clk_mmcm_memio_unit_tests/clk_mmcm_memio_unit_tests.xci create mode 100644 piton/design/xilinx/zc706/constraints.xdc create mode 100644 piton/tools/src/proto/vivado/upgrade_ips.tcl create mode 100644 piton/tools/src/proto/zc706/board.tcl diff --git a/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w3_d16/afifo_w3_d16.xci b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w3_d16/afifo_w3_d16.xci new file mode 100644 index 0000000..ad5fb31 --- /dev/null +++ b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w3_d16/afifo_w3_d16.xci @@ -0,0 +1,430 @@ + + + xilinx.com + xci + unknown + 1.0 + + + afifo_w3_d16 + + + 100000000 + 100000000 + 100000000 + 100000000 + 100000000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 1 + 1 + 1 + 4 + 0 + 32 + 1 + 1 + 1 + 64 + 1 + 8 + 1 + 1 + 1 + 1 + 0 + 0 + 4 + BlankString + 3 + 1 + 32 + 64 + 1 + 64 + 2 + 0 + 3 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + zynq + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + BlankString + 1 + 0 + 0 + 0 + 0 + 1 + 512x36 + 1kx18 + 512x36 + 1kx36 + 512x36 + 1kx36 + 512x36 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 15 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 14 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 16 + 1 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 16 + 1024 + 16 + 1024 + 16 + 1024 + 16 + 1 + 4 + 10 + 4 + 10 + 4 + 10 + 4 + 1 + 32 + 0 + 0 + false + false + false + 0 + 0 + Slave_Interface_Clock_Enable + Common_Clock + afifo_w3_d16 + 64 + false + 4 + false + false + 0 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + false + false + false + false + false + false + false + false + false + Hard_ECC + false + false + false + false + false + false + true + false + false + true + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Independent_Clocks_Block_RAM + 1 + 15 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 14 + false + false + false + 0 + Native + false + false + false + false + false + false + false + false + false + false + false + false + false + false + 3 + 16 + 1024 + 16 + 1024 + 16 + 1024 + 16 + false + 3 + 16 + Embedded_Reg + false + false + Active_High + Active_High + AXI4 + First_Word_Fall_Through + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + READ_WRITE + 0 + 1 + false + 4 + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + true + Asynchronous_Reset + false + 1 + 0 + 0 + 1 + 1 + 4 + false + false + Active_High + Active_High + true + false + false + false + false + Active_High + 0 + false + Active_High + 1 + false + 4 + false + FIFO + false + false + false + false + FIFO + FIFO + 2 + 2 + false + FIFO + FIFO + FIFO + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 4 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w3_d16/afifo_w3_d16.xml b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w3_d16/afifo_w3_d16.xml new file mode 100644 index 0000000..6fd3269 --- /dev/null +++ b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w3_d16/afifo_w3_d16.xml @@ -0,0 +1,9708 @@ + + + xilinx.com + customized_ip + afifo_w3_d16 + 1.0 + + + M_AXIS + + + + + + + TDATA + + + m_axis_tdata + + + + + TDEST + + + m_axis_tdest + + + + + TID + + + m_axis_tid + + + + + TKEEP + + + m_axis_tkeep + + + + + TLAST + + + m_axis_tlast + + + + + TREADY + + + m_axis_tready + + + + + TSTRB + + + m_axis_tstrb + + + + + TUSER + + + m_axis_tuser + + + + + TVALID + + + m_axis_tvalid + + + + + + + false + + + + + + S_AXIS + + + + + + + TDATA + + + s_axis_tdata + + + + + TDEST + + + s_axis_tdest + + + + + TID + + + s_axis_tid + + + + + TKEEP + + + s_axis_tkeep + + + + + TLAST + + + s_axis_tlast + + + + + TREADY + + + s_axis_tready + + + + + TSTRB + + + s_axis_tstrb + + + + + TUSER + + + s_axis_tuser + + + + + TVALID + + + s_axis_tvalid + + + + + + + false + + + + + + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARREGION + + + s_axi_arregion + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWREGION + + + s_axi_awregion + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BUSER + + + s_axi_buser + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RUSER + + + s_axi_ruser + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WID + + + s_axi_wid + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WUSER + + + s_axi_wuser + + + + + WVALID + + + s_axi_wvalid + + + + + + BD_ATTRIBUTE.TYPE + INTERIOR + + + + + + false + + + + + + M_AXI + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARREGION + + + m_axi_arregion + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWREGION + + + m_axi_awregion + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BUSER + + + m_axi_buser + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RUSER + + + m_axi_ruser + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WID + + + m_axi_wid + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WUSER + + + m_axi_wuser + + + + + WVALID + + + m_axi_wvalid + + + + + + + false + + + + + + core_clk + + + + + + + CLK + + + clk + + + + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port clk + 100000000 + + + + + + false + + + + + + master_aclk + + + + + + + CLK + + + m_aclk + + + + + + ASSOCIATED_BUSIF + M_AXIS:M_AXI + + + FREQ_HZ + m_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + slave_aclk + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + S_AXIS:S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + FREQ_HZ + s_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + write_clk + + + + + + + CLK + + + wr_clk + + + + + + FREQ_HZ + write clock frequency + specify frequency of the clock connected to port wr_clk + 100000000 + + + + + + true + + + + + + read_clk + + + + + + + CLK + + + rd_clk + + + + + + FREQ_HZ + read clock frequency + specify frequency of the clock connected to port rd_clk + 100000000 + + + + + + true + + + + + + slave_aresetn + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + FIFO_WRITE + FIFO_WRITE + + + + + + + ALMOST_FULL + + + almost_full + + + + + FULL + + + full + + + + + WR_DATA + + + din + + + + + WR_EN + + + wr_en + + + + + + + true + + + + + + FIFO_READ + FIFO_READ + + + + + + + ALMOST_EMPTY + + + almost_empty + + + + + EMPTY + + + empty + + + + + RD_DATA + + + dout + + + + + RD_EN + + + rd_en + + + + + + + true + + + + + + + + + backup + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + backup_marker + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + srst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wr_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + wr_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + din + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + wr_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_assert + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_negate + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_assert + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_negate + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + int_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + dout + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + almost_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_ack + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + almost_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + valid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + data_count + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + rd_data_count + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + wr_data_count + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + prog_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_wid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_buser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wstrb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_buser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_ruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_aruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_ruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tkeep + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tdest + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tuser + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tstrb + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tkeep + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdest + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tuser + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_w_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_b_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_ar_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_r_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axis_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + + + C_COMMON_CLOCK + 0 + + + C_SELECT_XPM + 0 + + + C_COUNT_TYPE + 0 + + + C_DATA_COUNT_WIDTH + 4 + + + C_DEFAULT_VALUE + BlankString + + + C_DIN_WIDTH + 3 + + + C_DOUT_RST_VAL + 0 + + + C_DOUT_WIDTH + 3 + + + C_ENABLE_RLOCS + 0 + + + C_FAMILY + zynq + + + C_FULL_FLAGS_RST_VAL + 1 + + + C_HAS_ALMOST_EMPTY + 0 + + + C_HAS_ALMOST_FULL + 0 + + + C_HAS_BACKUP + 0 + + + C_HAS_DATA_COUNT + 0 + + + C_HAS_INT_CLK + 0 + + + C_HAS_MEMINIT_FILE + 0 + + + C_HAS_OVERFLOW + 0 + + + C_HAS_RD_DATA_COUNT + 0 + + + C_HAS_RD_RST + 0 + + + C_HAS_RST + 1 + + + C_HAS_SRST + 0 + + + C_HAS_UNDERFLOW + 0 + + + C_HAS_VALID + 0 + + + C_HAS_WR_ACK + 0 + + + C_HAS_WR_DATA_COUNT + 0 + + + C_HAS_WR_RST + 0 + + + C_IMPLEMENTATION_TYPE + 2 + + + C_INIT_WR_PNTR_VAL + 0 + + + C_MEMORY_TYPE + 1 + + + C_MIF_FILE_NAME + BlankString + + + C_OPTIMIZATION_MODE + 0 + + + C_OVERFLOW_LOW + 0 + + + C_PRELOAD_LATENCY + 0 + + + C_PRELOAD_REGS + 1 + + + C_PRIM_FIFO_TYPE + 512x36 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL + 4 + + + C_PROG_EMPTY_THRESH_NEGATE_VAL + 5 + + + C_PROG_EMPTY_TYPE + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL + 15 + + + C_PROG_FULL_THRESH_NEGATE_VAL + 14 + + + C_PROG_FULL_TYPE + 0 + + + C_RD_DATA_COUNT_WIDTH + 4 + + + C_RD_DEPTH + 16 + + + C_RD_FREQ + 1 + + + C_RD_PNTR_WIDTH + 4 + + + C_UNDERFLOW_LOW + 0 + + + C_USE_DOUT_RST + 1 + + + C_USE_ECC + 0 + + + C_USE_EMBEDDED_REG + 0 + + + C_USE_PIPELINE_REG + 0 + + + C_POWER_SAVING_MODE + 0 + + + C_USE_FIFO16_FLAGS + 0 + + + C_USE_FWFT_DATA_COUNT + 0 + + + C_VALID_LOW + 0 + + + C_WR_ACK_LOW + 0 + + + C_WR_DATA_COUNT_WIDTH + 4 + + + C_WR_DEPTH + 16 + + + C_WR_FREQ + 1 + + + C_WR_PNTR_WIDTH + 4 + + + C_WR_RESPONSE_LATENCY + 1 + + + C_MSGON_VAL + 1 + + + C_ENABLE_RST_SYNC + 1 + + + C_EN_SAFETY_CKT + 0 + + + C_ERROR_INJECTION_TYPE + 0 + + + C_SYNCHRONIZER_STAGE + 2 + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_HAS_AXI_WR_CHANNEL + 1 + + + C_HAS_AXI_RD_CHANNEL + 1 + + + C_HAS_SLAVE_CE + 0 + + + C_HAS_MASTER_CE + 0 + + + C_ADD_NGC_CONSTRAINT + 0 + + + C_USE_COMMON_OVERFLOW + 0 + + + C_USE_COMMON_UNDERFLOW + 0 + + + C_USE_DEFAULT_SETTINGS + 0 + + + C_AXI_ID_WIDTH + 1 + + + C_AXI_ADDR_WIDTH + 32 + + + C_AXI_DATA_WIDTH + 64 + + + C_AXI_LEN_WIDTH + 8 + + + C_AXI_LOCK_WIDTH + 1 + + + C_HAS_AXI_ID + 0 + + + C_HAS_AXI_AWUSER + 0 + + + C_HAS_AXI_WUSER + 0 + + + C_HAS_AXI_BUSER + 0 + + + C_HAS_AXI_ARUSER + 0 + + + C_HAS_AXI_RUSER + 0 + + + C_AXI_ARUSER_WIDTH + 1 + + + C_AXI_AWUSER_WIDTH + 1 + + + C_AXI_WUSER_WIDTH + 1 + + + C_AXI_BUSER_WIDTH + 1 + + + C_AXI_RUSER_WIDTH + 1 + + + C_HAS_AXIS_TDATA + 1 + + + C_HAS_AXIS_TID + 0 + + + C_HAS_AXIS_TDEST + 0 + + + C_HAS_AXIS_TUSER + 1 + + + C_HAS_AXIS_TREADY + 1 + + + C_HAS_AXIS_TLAST + 0 + + + C_HAS_AXIS_TSTRB + 0 + + + C_HAS_AXIS_TKEEP + 0 + + + C_AXIS_TDATA_WIDTH + 8 + + + C_AXIS_TID_WIDTH + 1 + + + C_AXIS_TDEST_WIDTH + 1 + + + C_AXIS_TUSER_WIDTH + 4 + + + C_AXIS_TSTRB_WIDTH + 1 + + + C_AXIS_TKEEP_WIDTH + 1 + + + C_WACH_TYPE + 0 + + + C_WDCH_TYPE + 0 + + + C_WRCH_TYPE + 0 + + + C_RACH_TYPE + 0 + + + C_RDCH_TYPE + 0 + + + C_AXIS_TYPE + 0 + + + C_IMPLEMENTATION_TYPE_WACH + 1 + + + C_IMPLEMENTATION_TYPE_WDCH + 1 + + + C_IMPLEMENTATION_TYPE_WRCH + 1 + + + C_IMPLEMENTATION_TYPE_RACH + 1 + + + C_IMPLEMENTATION_TYPE_RDCH + 1 + + + C_IMPLEMENTATION_TYPE_AXIS + 1 + + + C_APPLICATION_TYPE_WACH + 0 + + + C_APPLICATION_TYPE_WDCH + 0 + + + C_APPLICATION_TYPE_WRCH + 0 + + + C_APPLICATION_TYPE_RACH + 0 + + + C_APPLICATION_TYPE_RDCH + 0 + + + C_APPLICATION_TYPE_AXIS + 0 + + + C_PRIM_FIFO_TYPE_WACH + 512x36 + + + C_PRIM_FIFO_TYPE_WDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_WRCH + 512x36 + + + C_PRIM_FIFO_TYPE_RACH + 512x36 + + + C_PRIM_FIFO_TYPE_RDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_AXIS + 1kx18 + + + C_USE_ECC_WACH + 0 + + + C_USE_ECC_WDCH + 0 + + + C_USE_ECC_WRCH + 0 + + + C_USE_ECC_RACH + 0 + + + C_USE_ECC_RDCH + 0 + + + C_USE_ECC_AXIS + 0 + + + C_ERROR_INJECTION_TYPE_WACH + 0 + + + C_ERROR_INJECTION_TYPE_WDCH + 0 + + + C_ERROR_INJECTION_TYPE_WRCH + 0 + + + C_ERROR_INJECTION_TYPE_RACH + 0 + + + C_ERROR_INJECTION_TYPE_RDCH + 0 + + + C_ERROR_INJECTION_TYPE_AXIS + 0 + + + C_DIN_WIDTH_WACH + 1 + + + C_DIN_WIDTH_WDCH + 64 + + + C_DIN_WIDTH_WRCH + 2 + + + C_DIN_WIDTH_RACH + 32 + + + C_DIN_WIDTH_RDCH + 64 + + + C_DIN_WIDTH_AXIS + 1 + + + C_WR_DEPTH_WACH + 16 + + + C_WR_DEPTH_WDCH + 1024 + + + C_WR_DEPTH_WRCH + 16 + + + C_WR_DEPTH_RACH + 16 + + + C_WR_DEPTH_RDCH + 1024 + + + C_WR_DEPTH_AXIS + 1024 + + + C_WR_PNTR_WIDTH_WACH + 4 + + + C_WR_PNTR_WIDTH_WDCH + 10 + + + C_WR_PNTR_WIDTH_WRCH + 4 + + + C_WR_PNTR_WIDTH_RACH + 4 + + + C_WR_PNTR_WIDTH_RDCH + 10 + + + C_WR_PNTR_WIDTH_AXIS + 10 + + + C_HAS_DATA_COUNTS_WACH + 0 + + + C_HAS_DATA_COUNTS_WDCH + 0 + + + C_HAS_DATA_COUNTS_WRCH + 0 + + + C_HAS_DATA_COUNTS_RACH + 0 + + + C_HAS_DATA_COUNTS_RDCH + 0 + + + C_HAS_DATA_COUNTS_AXIS + 0 + + + C_HAS_PROG_FLAGS_WACH + 0 + + + C_HAS_PROG_FLAGS_WDCH + 0 + + + C_HAS_PROG_FLAGS_WRCH + 0 + + + C_HAS_PROG_FLAGS_RACH + 0 + + + C_HAS_PROG_FLAGS_RDCH + 0 + + + C_HAS_PROG_FLAGS_AXIS + 0 + + + C_PROG_FULL_TYPE_WACH + 0 + + + C_PROG_FULL_TYPE_WDCH + 0 + + + C_PROG_FULL_TYPE_WRCH + 0 + + + C_PROG_FULL_TYPE_RACH + 0 + + + C_PROG_FULL_TYPE_RDCH + 0 + + + C_PROG_FULL_TYPE_AXIS + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WRCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_AXIS + 1023 + + + C_PROG_EMPTY_TYPE_WACH + 0 + + + C_PROG_EMPTY_TYPE_WDCH + 0 + + + C_PROG_EMPTY_TYPE_WRCH + 0 + + + C_PROG_EMPTY_TYPE_RACH + 0 + + + C_PROG_EMPTY_TYPE_RDCH + 0 + + + C_PROG_EMPTY_TYPE_AXIS + 0 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS + 1022 + + + C_REG_SLICE_MODE_WACH + 0 + + + C_REG_SLICE_MODE_WDCH + 0 + + + C_REG_SLICE_MODE_WRCH + 0 + + + C_REG_SLICE_MODE_RACH + 0 + + + C_REG_SLICE_MODE_RDCH + 0 + + + C_REG_SLICE_MODE_AXIS + 0 + + + + + + choice_list_087d29fa + 0 + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_1137720c + 3 + 3 + + + choice_list_165ed04b + 64 + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_bf1143fa + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32768 + 65536 + 131072 + + + choice_pairs_0721dec1 + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Multiple_Programmable_Empty_Threshold_Constants + Single_Programmable_Empty_Threshold_Input_Port + Multiple_Programmable_Empty_Threshold_Input_Ports + + + choice_pairs_08e28d5f + Active_High + Active_Low + + + choice_pairs_26bda4ef + Asynchronous_Reset + + + choice_pairs_2d5d8925 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + Common_Clock_Shift_Register + Common_Clock_Builtin_FIFO + Independent_Clocks_Block_RAM + Independent_Clocks_Distributed_RAM + Independent_Clocks_Builtin_FIFO + + + choice_pairs_3c123ec0 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + + + choice_pairs_53eba4dc + Native + AXI_MEMORY_MAPPED + AXI_STREAM + + + choice_pairs_541ed8d9 + Embedded_Reg + Fabric_Reg + Both + + + choice_pairs_5548b404 + Common_Clock + Independent_Clock + + + choice_pairs_5f1451ad + Standard_FIFO + First_Word_Fall_Through + + + choice_pairs_619f3529 + AXI4 + AXI3 + AXI4_Lite + + + choice_pairs_8334cf20 + Data_FIFO + Packet_FIFO + Low_Latency_Data_FIFO + + + choice_pairs_88535724 + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Multiple_Programmable_Full_Threshold_Constants + Single_Programmable_Full_Threshold_Input_Port + Multiple_Programmable_Full_Threshold_Input_Ports + + + choice_pairs_9b232fe1 + Slave_Interface_Clock_Enable + Master_Interface_Clock_Enable + + + choice_pairs_a8c5818a + Fully_Registered + Light_Weight + + + choice_pairs_b3e9d19b + FIFO + Register_Slice + Pass_Through_Wire + + + choice_pairs_bec132cf + FIFO + Register_Slice + + + choice_pairs_c94a1851 + Hard_ECC + Soft_ECC + + + choice_pairs_ccb14e2b + READ_WRITE + READ_ONLY + WRITE_ONLY + + + choice_pairs_eb98f74b + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Single_Programmable_Empty_Threshold_Input_Port + + + choice_pairs_ec2b452f + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Single_Programmable_Full_Threshold_Input_Port + + + The FIFO Generator is a parameterizable first-in/first-out memory queue generator. Use it to generate resource and performance optimized FIFOs with common or independent read/write clock domains, and optional fixed or programmable full and empty flags and handshaking signals. Choose from a selection of memory resource types for implementation. Optional Hamming code based error detection and correction as well as error injection capability for system test help to insure data integrity. FIFO width and depth are parameterizable, and for native interface FIFOs, asymmetric read and write port widths are also supported. + + + Component_Name + afifo_w3_d16 + + + + true + + + + + + Fifo_Implementation + Independent_Clocks_Block_RAM + + + + true + + + + + + synchronization_stages + 2 + + + + true + + + + + + synchronization_stages_axi + 2 + + + + true + + + + + + INTERFACE_TYPE + Native + + + + true + + + + + + Performance_Options + First_Word_Fall_Through + + + + true + + + + + + asymmetric_port_width + false + + + + false + + + + + + Input_Data_Width + 3 + + + + true + + + + + + Input_Depth + 16 + + + + true + + + + + + Output_Data_Width + 3 + + + + true + + + + + + Output_Depth + 16 + + + + false + + + + + + Enable_ECC + false + + + + true + + + + + + Use_Embedded_Registers + false + + + + true + + + + + + Reset_Pin + true + + + + true + + + + + + Enable_Reset_Synchronization + true + + + + true + + + + + + Reset_Type + Asynchronous_Reset + + + + false + + + + + + Full_Flags_Reset_Value + 1 + + + + true + + + + + + Use_Dout_Reset + true + + + + true + + + + + + Dout_Reset_Value + 0 + + + + true + + + + + + dynamic_power_saving + false + + + + false + + + + + + Almost_Full_Flag + false + + + + true + + + + + + Almost_Empty_Flag + false + + + + true + + + + + + Valid_Flag + false + + + + true + + + + + + Valid_Sense + Active_High + + + + false + + + + + + Underflow_Flag + false + + + + true + + + + + + Underflow_Sense + Active_High + + + + false + + + + + + Write_Acknowledge_Flag + false + + + + true + + + + + + Write_Acknowledge_Sense + Active_High + + + + false + + + + + + Overflow_Flag + false + + + + true + + + + + + Overflow_Sense + Active_High + + + + false + + + + + + Inject_Sbit_Error + false + + + + false + + + + + + Inject_Dbit_Error + false + + + + false + + + + + + ecc_pipeline_reg + false + + + + false + + + + + + Use_Extra_Logic + false + + + + true + + + + + + Data_Count + false + + + + false + + + + + + Data_Count_Width + 4 + + + + false + + + + + + Write_Data_Count + false + + + + true + + + + + + Write_Data_Count_Width + 4 + + + + false + + + + + + Read_Data_Count + false + + + + true + + + + + + Read_Data_Count_Width + 4 + + + + false + + + + + + Disable_Timing_Violations + false + + + + true + + + + + + Read_Clock_Frequency + 1 + + + + false + + + + + + Write_Clock_Frequency + 1 + + + + false + + + + + + Programmable_Full_Type + No_Programmable_Full_Threshold + + + + true + + + + + + Full_Threshold_Assert_Value + 15 + + + + false + + + + + + Full_Threshold_Negate_Value + 14 + + + + false + + + + + + Programmable_Empty_Type + No_Programmable_Empty_Threshold + + + + true + + + + + + Empty_Threshold_Assert_Value + 4 + + + + false + + + + + + Empty_Threshold_Negate_Value + 5 + + + + false + + + + + + PROTOCOL + AXI4 + + + + false + + + + + + Clock_Type_AXI + Common_Clock + + + + true + + + + + + HAS_ACLKEN + false + + + + false + + + + + + Clock_Enable_Type + Slave_Interface_Clock_Enable + + + + false + + + + + + READ_WRITE_MODE + READ_WRITE + + + + true + + + + + + ID_WIDTH + 0 + + + + false + + + + + + ADDRESS_WIDTH + 32 + + + + false + + + + + + DATA_WIDTH + 64 + + + + false + + + + + + AWUSER_Width + 0 + + + + false + + + + + + WUSER_Width + 0 + + + + false + + + + + + BUSER_Width + 0 + + + + false + + + + + + ARUSER_Width + 0 + + + + false + + + + + + RUSER_Width + 0 + + + + false + + + + + + TDATA_NUM_BYTES + 1 + + + + true + + + + + + TID_WIDTH + 0 + + + + false + + + + + + TDEST_WIDTH + 0 + + + + false + + + + + + TUSER_WIDTH + 4 + + + + false + + + + + + Enable_TREADY + true + + + + false + + + + + + Enable_TLAST + false + + + + true + + + + + + HAS_TSTRB + false + + + + false + + + + + + TSTRB_WIDTH + 1 + + + + false + + + + + + HAS_TKEEP + false + + + + false + + + + + + TKEEP_WIDTH + 1 + + + + false + + + + + + wach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wach + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wach + false + + + + false + + + + + + Inject_Sbit_Error_wach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wach + false + + + + false + + + + + + Input_Depth_wach + 16 + + + + true + + + + + + Enable_Data_Counts_wach + false + + + + false + + + + + + Programmable_Full_Type_wach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wdch + false + + + + false + + + + + + Inject_Sbit_Error_wdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wdch + false + + + + false + + + + + + Input_Depth_wdch + 1024 + + + + true + + + + + + Enable_Data_Counts_wdch + false + + + + false + + + + + + Programmable_Full_Type_wdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wrch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wrch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wrch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wrch + false + + + + false + + + + + + Inject_Sbit_Error_wrch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wrch + false + + + + false + + + + + + Input_Depth_wrch + 16 + + + + true + + + + + + Enable_Data_Counts_wrch + false + + + + false + + + + + + Programmable_Full_Type_wrch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wrch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wrch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wrch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rach + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rach + false + + + + false + + + + + + Inject_Sbit_Error_rach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rach + false + + + + false + + + + + + Input_Depth_rach + 16 + + + + true + + + + + + Enable_Data_Counts_rach + false + + + + false + + + + + + Programmable_Full_Type_rach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rdch + false + + + + false + + + + + + Inject_Sbit_Error_rdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rdch + false + + + + false + + + + + + Input_Depth_rdch + 1024 + + + + true + + + + + + Enable_Data_Counts_rdch + false + + + + false + + + + + + Programmable_Full_Type_rdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + axis_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_axis + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_axis + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_axis + false + + + + false + + + + + + Inject_Sbit_Error_axis + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_axis + Double Bit Error Injection + false + + + + false + + + + + + Input_Depth_axis + 1024 + + + + true + + + + + + Enable_Data_Counts_axis + false + + + + false + + + + + + Programmable_Full_Type_axis + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_axis + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_axis + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_axis + Empty Threshold Assert Value + 1022 + + + + false + + + + + + Register_Slice_Mode_wach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wrch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_axis + Register Slice Options + Fully_Registered + + + + true + + + + + + Underflow_Flag_AXI + Underflow Flag + false + + + + true + + + + + + Underflow_Sense_AXI + Underflow (Read Error) + Active_High + + + + true + + + + + + Overflow_Flag_AXI + Overflow Flag + false + + + + true + + + + + + Overflow_Sense_AXI + Overflow (Write Error) + Active_High + + + + true + + + + + + Disable_Timing_Violations_AXI + false + + + + true + + + + + + Add_NGC_Constraint_AXI + false + + + + true + + + + + + Enable_Common_Underflow + false + + + + true + + + + + + Enable_Common_Overflow + false + + + + true + + + + + + enable_read_pointer_increment_by2 + false + + + + true + + + + + + Use_Embedded_Registers_axis + false + + + + false + + + + + + enable_low_latency + false + + + + false + + + + + + use_dout_register + false + + + + false + + + + + + Master_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Slave_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Output_Register_Type + Embedded_Reg + + + + false + + + + + + Enable_Safety_Circuit + false + + + + true + + + + + + Enable_ECC_Type + Hard_ECC + + + + false + + + + + + C_SELECT_XPM + 0 + + + + + FIFO Generator + 4 + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w64_d16/afifo_w64_d16.xci b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w64_d16/afifo_w64_d16.xci new file mode 100644 index 0000000..3160cba --- /dev/null +++ b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w64_d16/afifo_w64_d16.xci @@ -0,0 +1,430 @@ + + + xilinx.com + xci + unknown + 1.0 + + + afifo_w64_d16 + + + 100000000 + 100000000 + 100000000 + 100000000 + 100000000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 1 + 1 + 1 + 4 + 0 + 32 + 1 + 1 + 1 + 64 + 1 + 8 + 1 + 1 + 1 + 1 + 0 + 0 + 4 + BlankString + 64 + 1 + 32 + 64 + 1 + 64 + 2 + 0 + 64 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + zynq + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + BlankString + 1 + 0 + 0 + 0 + 0 + 1 + 512x72 + 1kx18 + 512x36 + 1kx36 + 512x36 + 1kx36 + 512x36 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 15 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 14 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 16 + 1 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 16 + 1024 + 16 + 1024 + 16 + 1024 + 16 + 1 + 4 + 10 + 4 + 10 + 4 + 10 + 4 + 1 + 32 + 0 + 0 + false + false + false + 0 + 0 + Slave_Interface_Clock_Enable + Common_Clock + afifo_w64_d16 + 64 + false + 4 + false + false + 0 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + false + false + false + false + false + false + false + false + false + Hard_ECC + false + false + false + false + false + false + true + false + false + true + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Independent_Clocks_Block_RAM + 1 + 15 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 14 + false + false + false + 0 + Native + false + false + false + false + false + false + false + false + false + false + false + false + false + false + 64 + 16 + 1024 + 16 + 1024 + 16 + 1024 + 16 + false + 64 + 16 + Embedded_Reg + false + false + Active_High + Active_High + AXI4 + First_Word_Fall_Through + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + READ_WRITE + 0 + 1 + false + 4 + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + true + Asynchronous_Reset + false + 1 + 0 + 0 + 1 + 1 + 4 + false + false + Active_High + Active_High + true + false + false + false + false + Active_High + 0 + false + Active_High + 1 + false + 4 + false + FIFO + false + false + false + false + FIFO + FIFO + 2 + 2 + false + FIFO + FIFO + FIFO + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 4 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w64_d16/afifo_w64_d16.xml b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w64_d16/afifo_w64_d16.xml new file mode 100644 index 0000000..a407f77 --- /dev/null +++ b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/afifo_w64_d16/afifo_w64_d16.xml @@ -0,0 +1,9711 @@ + + + xilinx.com + customized_ip + afifo_w64_d16 + 1.0 + + + M_AXIS + + + + + + + TDATA + + + m_axis_tdata + + + + + TDEST + + + m_axis_tdest + + + + + TID + + + m_axis_tid + + + + + TKEEP + + + m_axis_tkeep + + + + + TLAST + + + m_axis_tlast + + + + + TREADY + + + m_axis_tready + + + + + TSTRB + + + m_axis_tstrb + + + + + TUSER + + + m_axis_tuser + + + + + TVALID + + + m_axis_tvalid + + + + + + + false + + + + + + S_AXIS + + + + + + + TDATA + + + s_axis_tdata + + + + + TDEST + + + s_axis_tdest + + + + + TID + + + s_axis_tid + + + + + TKEEP + + + s_axis_tkeep + + + + + TLAST + + + s_axis_tlast + + + + + TREADY + + + s_axis_tready + + + + + TSTRB + + + s_axis_tstrb + + + + + TUSER + + + s_axis_tuser + + + + + TVALID + + + s_axis_tvalid + + + + + + + false + + + + + + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARREGION + + + s_axi_arregion + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWREGION + + + s_axi_awregion + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BUSER + + + s_axi_buser + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RUSER + + + s_axi_ruser + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WID + + + s_axi_wid + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WUSER + + + s_axi_wuser + + + + + WVALID + + + s_axi_wvalid + + + + + + BD_ATTRIBUTE.TYPE + INTERIOR + + + + + + false + + + + + + M_AXI + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARREGION + + + m_axi_arregion + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWREGION + + + m_axi_awregion + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BUSER + + + m_axi_buser + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RUSER + + + m_axi_ruser + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WID + + + m_axi_wid + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WUSER + + + m_axi_wuser + + + + + WVALID + + + m_axi_wvalid + + + + + + + false + + + + + + core_clk + + + + + + + CLK + + + clk + + + + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port clk + 100000000 + + + + + + false + + + + + + master_aclk + + + + + + + CLK + + + m_aclk + + + + + + ASSOCIATED_BUSIF + M_AXIS:M_AXI + + + FREQ_HZ + m_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + slave_aclk + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + S_AXIS:S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + FREQ_HZ + s_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + write_clk + + + + + + + CLK + + + wr_clk + + + + + + FREQ_HZ + write clock frequency + specify frequency of the clock connected to port wr_clk + 100000000 + + + + + + true + + + + + + read_clk + + + + + + + CLK + + + rd_clk + + + + + + FREQ_HZ + read clock frequency + specify frequency of the clock connected to port rd_clk + 100000000 + + + + + + true + + + + + + slave_aresetn + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + FIFO_WRITE + FIFO_WRITE + + + + + + + ALMOST_FULL + + + almost_full + + + + + FULL + + + full + + + + + WR_DATA + + + din + + + + + WR_EN + + + wr_en + + + + + + + true + + + + + + FIFO_READ + FIFO_READ + + + + + + + ALMOST_EMPTY + + + almost_empty + + + + + EMPTY + + + empty + + + + + RD_DATA + + + dout + + + + + RD_EN + + + rd_en + + + + + + + true + + + + + + + + + backup + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + backup_marker + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + srst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wr_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + wr_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + din + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + wr_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_assert + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_negate + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_assert + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_negate + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + int_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + dout + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + almost_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_ack + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + almost_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + valid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + data_count + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + rd_data_count + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + wr_data_count + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + prog_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_wid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_buser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wstrb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_buser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_ruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_aruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_ruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tkeep + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tdest + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tuser + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tstrb + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tkeep + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdest + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tuser + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_w_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_b_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_ar_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_r_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axis_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + + + C_COMMON_CLOCK + 0 + + + C_SELECT_XPM + 0 + + + C_COUNT_TYPE + 0 + + + C_DATA_COUNT_WIDTH + 4 + + + C_DEFAULT_VALUE + BlankString + + + C_DIN_WIDTH + 64 + + + C_DOUT_RST_VAL + 0 + + + C_DOUT_WIDTH + 64 + + + C_ENABLE_RLOCS + 0 + + + C_FAMILY + zynq + + + C_FULL_FLAGS_RST_VAL + 1 + + + C_HAS_ALMOST_EMPTY + 0 + + + C_HAS_ALMOST_FULL + 0 + + + C_HAS_BACKUP + 0 + + + C_HAS_DATA_COUNT + 0 + + + C_HAS_INT_CLK + 0 + + + C_HAS_MEMINIT_FILE + 0 + + + C_HAS_OVERFLOW + 0 + + + C_HAS_RD_DATA_COUNT + 0 + + + C_HAS_RD_RST + 0 + + + C_HAS_RST + 1 + + + C_HAS_SRST + 0 + + + C_HAS_UNDERFLOW + 0 + + + C_HAS_VALID + 0 + + + C_HAS_WR_ACK + 0 + + + C_HAS_WR_DATA_COUNT + 0 + + + C_HAS_WR_RST + 0 + + + C_IMPLEMENTATION_TYPE + 2 + + + C_INIT_WR_PNTR_VAL + 0 + + + C_MEMORY_TYPE + 1 + + + C_MIF_FILE_NAME + BlankString + + + C_OPTIMIZATION_MODE + 0 + + + C_OVERFLOW_LOW + 0 + + + C_PRELOAD_LATENCY + 0 + + + C_PRELOAD_REGS + 1 + + + C_PRIM_FIFO_TYPE + 512x72 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL + 4 + + + C_PROG_EMPTY_THRESH_NEGATE_VAL + 5 + + + C_PROG_EMPTY_TYPE + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL + 15 + + + C_PROG_FULL_THRESH_NEGATE_VAL + 14 + + + C_PROG_FULL_TYPE + 0 + + + C_RD_DATA_COUNT_WIDTH + 4 + + + C_RD_DEPTH + 16 + + + C_RD_FREQ + 1 + + + C_RD_PNTR_WIDTH + 4 + + + C_UNDERFLOW_LOW + 0 + + + C_USE_DOUT_RST + 1 + + + C_USE_ECC + 0 + + + C_USE_EMBEDDED_REG + 0 + + + C_USE_PIPELINE_REG + 0 + + + C_POWER_SAVING_MODE + 0 + + + C_USE_FIFO16_FLAGS + 0 + + + C_USE_FWFT_DATA_COUNT + 0 + + + C_VALID_LOW + 0 + + + C_WR_ACK_LOW + 0 + + + C_WR_DATA_COUNT_WIDTH + 4 + + + C_WR_DEPTH + 16 + + + C_WR_FREQ + 1 + + + C_WR_PNTR_WIDTH + 4 + + + C_WR_RESPONSE_LATENCY + 1 + + + C_MSGON_VAL + 1 + + + C_ENABLE_RST_SYNC + 1 + + + C_EN_SAFETY_CKT + 0 + + + C_ERROR_INJECTION_TYPE + 0 + + + C_SYNCHRONIZER_STAGE + 2 + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_HAS_AXI_WR_CHANNEL + 1 + + + C_HAS_AXI_RD_CHANNEL + 1 + + + C_HAS_SLAVE_CE + 0 + + + C_HAS_MASTER_CE + 0 + + + C_ADD_NGC_CONSTRAINT + 0 + + + C_USE_COMMON_OVERFLOW + 0 + + + C_USE_COMMON_UNDERFLOW + 0 + + + C_USE_DEFAULT_SETTINGS + 0 + + + C_AXI_ID_WIDTH + 1 + + + C_AXI_ADDR_WIDTH + 32 + + + C_AXI_DATA_WIDTH + 64 + + + C_AXI_LEN_WIDTH + 8 + + + C_AXI_LOCK_WIDTH + 1 + + + C_HAS_AXI_ID + 0 + + + C_HAS_AXI_AWUSER + 0 + + + C_HAS_AXI_WUSER + 0 + + + C_HAS_AXI_BUSER + 0 + + + C_HAS_AXI_ARUSER + 0 + + + C_HAS_AXI_RUSER + 0 + + + C_AXI_ARUSER_WIDTH + 1 + + + C_AXI_AWUSER_WIDTH + 1 + + + C_AXI_WUSER_WIDTH + 1 + + + C_AXI_BUSER_WIDTH + 1 + + + C_AXI_RUSER_WIDTH + 1 + + + C_HAS_AXIS_TDATA + 1 + + + C_HAS_AXIS_TID + 0 + + + C_HAS_AXIS_TDEST + 0 + + + C_HAS_AXIS_TUSER + 1 + + + C_HAS_AXIS_TREADY + 1 + + + C_HAS_AXIS_TLAST + 0 + + + C_HAS_AXIS_TSTRB + 0 + + + C_HAS_AXIS_TKEEP + 0 + + + C_AXIS_TDATA_WIDTH + 8 + + + C_AXIS_TID_WIDTH + 1 + + + C_AXIS_TDEST_WIDTH + 1 + + + C_AXIS_TUSER_WIDTH + 4 + + + C_AXIS_TSTRB_WIDTH + 1 + + + C_AXIS_TKEEP_WIDTH + 1 + + + C_WACH_TYPE + 0 + + + C_WDCH_TYPE + 0 + + + C_WRCH_TYPE + 0 + + + C_RACH_TYPE + 0 + + + C_RDCH_TYPE + 0 + + + C_AXIS_TYPE + 0 + + + C_IMPLEMENTATION_TYPE_WACH + 1 + + + C_IMPLEMENTATION_TYPE_WDCH + 1 + + + C_IMPLEMENTATION_TYPE_WRCH + 1 + + + C_IMPLEMENTATION_TYPE_RACH + 1 + + + C_IMPLEMENTATION_TYPE_RDCH + 1 + + + C_IMPLEMENTATION_TYPE_AXIS + 1 + + + C_APPLICATION_TYPE_WACH + 0 + + + C_APPLICATION_TYPE_WDCH + 0 + + + C_APPLICATION_TYPE_WRCH + 0 + + + C_APPLICATION_TYPE_RACH + 0 + + + C_APPLICATION_TYPE_RDCH + 0 + + + C_APPLICATION_TYPE_AXIS + 0 + + + C_PRIM_FIFO_TYPE_WACH + 512x36 + + + C_PRIM_FIFO_TYPE_WDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_WRCH + 512x36 + + + C_PRIM_FIFO_TYPE_RACH + 512x36 + + + C_PRIM_FIFO_TYPE_RDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_AXIS + 1kx18 + + + C_USE_ECC_WACH + 0 + + + C_USE_ECC_WDCH + 0 + + + C_USE_ECC_WRCH + 0 + + + C_USE_ECC_RACH + 0 + + + C_USE_ECC_RDCH + 0 + + + C_USE_ECC_AXIS + 0 + + + C_ERROR_INJECTION_TYPE_WACH + 0 + + + C_ERROR_INJECTION_TYPE_WDCH + 0 + + + C_ERROR_INJECTION_TYPE_WRCH + 0 + + + C_ERROR_INJECTION_TYPE_RACH + 0 + + + C_ERROR_INJECTION_TYPE_RDCH + 0 + + + C_ERROR_INJECTION_TYPE_AXIS + 0 + + + C_DIN_WIDTH_WACH + 1 + + + C_DIN_WIDTH_WDCH + 64 + + + C_DIN_WIDTH_WRCH + 2 + + + C_DIN_WIDTH_RACH + 32 + + + C_DIN_WIDTH_RDCH + 64 + + + C_DIN_WIDTH_AXIS + 1 + + + C_WR_DEPTH_WACH + 16 + + + C_WR_DEPTH_WDCH + 1024 + + + C_WR_DEPTH_WRCH + 16 + + + C_WR_DEPTH_RACH + 16 + + + C_WR_DEPTH_RDCH + 1024 + + + C_WR_DEPTH_AXIS + 1024 + + + C_WR_PNTR_WIDTH_WACH + 4 + + + C_WR_PNTR_WIDTH_WDCH + 10 + + + C_WR_PNTR_WIDTH_WRCH + 4 + + + C_WR_PNTR_WIDTH_RACH + 4 + + + C_WR_PNTR_WIDTH_RDCH + 10 + + + C_WR_PNTR_WIDTH_AXIS + 10 + + + C_HAS_DATA_COUNTS_WACH + 0 + + + C_HAS_DATA_COUNTS_WDCH + 0 + + + C_HAS_DATA_COUNTS_WRCH + 0 + + + C_HAS_DATA_COUNTS_RACH + 0 + + + C_HAS_DATA_COUNTS_RDCH + 0 + + + C_HAS_DATA_COUNTS_AXIS + 0 + + + C_HAS_PROG_FLAGS_WACH + 0 + + + C_HAS_PROG_FLAGS_WDCH + 0 + + + C_HAS_PROG_FLAGS_WRCH + 0 + + + C_HAS_PROG_FLAGS_RACH + 0 + + + C_HAS_PROG_FLAGS_RDCH + 0 + + + C_HAS_PROG_FLAGS_AXIS + 0 + + + C_PROG_FULL_TYPE_WACH + 0 + + + C_PROG_FULL_TYPE_WDCH + 0 + + + C_PROG_FULL_TYPE_WRCH + 0 + + + C_PROG_FULL_TYPE_RACH + 0 + + + C_PROG_FULL_TYPE_RDCH + 0 + + + C_PROG_FULL_TYPE_AXIS + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WRCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_AXIS + 1023 + + + C_PROG_EMPTY_TYPE_WACH + 0 + + + C_PROG_EMPTY_TYPE_WDCH + 0 + + + C_PROG_EMPTY_TYPE_WRCH + 0 + + + C_PROG_EMPTY_TYPE_RACH + 0 + + + C_PROG_EMPTY_TYPE_RDCH + 0 + + + C_PROG_EMPTY_TYPE_AXIS + 0 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS + 1022 + + + C_REG_SLICE_MODE_WACH + 0 + + + C_REG_SLICE_MODE_WDCH + 0 + + + C_REG_SLICE_MODE_WRCH + 0 + + + C_REG_SLICE_MODE_RACH + 0 + + + C_REG_SLICE_MODE_RDCH + 0 + + + C_REG_SLICE_MODE_AXIS + 0 + + + + + + choice_list_087d29fa + 0 + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_165ed04b + 64 + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_a0d0de43 + 64 + 8 + 16 + 32 + 64 + + + choice_list_bf1143fa + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32768 + 65536 + 131072 + + + choice_pairs_0721dec1 + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Multiple_Programmable_Empty_Threshold_Constants + Single_Programmable_Empty_Threshold_Input_Port + Multiple_Programmable_Empty_Threshold_Input_Ports + + + choice_pairs_08e28d5f + Active_High + Active_Low + + + choice_pairs_26bda4ef + Asynchronous_Reset + + + choice_pairs_2d5d8925 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + Common_Clock_Shift_Register + Common_Clock_Builtin_FIFO + Independent_Clocks_Block_RAM + Independent_Clocks_Distributed_RAM + Independent_Clocks_Builtin_FIFO + + + choice_pairs_3c123ec0 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + + + choice_pairs_53eba4dc + Native + AXI_MEMORY_MAPPED + AXI_STREAM + + + choice_pairs_541ed8d9 + Embedded_Reg + Fabric_Reg + Both + + + choice_pairs_5548b404 + Common_Clock + Independent_Clock + + + choice_pairs_5f1451ad + Standard_FIFO + First_Word_Fall_Through + + + choice_pairs_619f3529 + AXI4 + AXI3 + AXI4_Lite + + + choice_pairs_8334cf20 + Data_FIFO + Packet_FIFO + Low_Latency_Data_FIFO + + + choice_pairs_88535724 + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Multiple_Programmable_Full_Threshold_Constants + Single_Programmable_Full_Threshold_Input_Port + Multiple_Programmable_Full_Threshold_Input_Ports + + + choice_pairs_9b232fe1 + Slave_Interface_Clock_Enable + Master_Interface_Clock_Enable + + + choice_pairs_a8c5818a + Fully_Registered + Light_Weight + + + choice_pairs_b3e9d19b + FIFO + Register_Slice + Pass_Through_Wire + + + choice_pairs_bec132cf + FIFO + Register_Slice + + + choice_pairs_c94a1851 + Hard_ECC + Soft_ECC + + + choice_pairs_ccb14e2b + READ_WRITE + READ_ONLY + WRITE_ONLY + + + choice_pairs_eb98f74b + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Single_Programmable_Empty_Threshold_Input_Port + + + choice_pairs_ec2b452f + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Single_Programmable_Full_Threshold_Input_Port + + + The FIFO Generator is a parameterizable first-in/first-out memory queue generator. Use it to generate resource and performance optimized FIFOs with common or independent read/write clock domains, and optional fixed or programmable full and empty flags and handshaking signals. Choose from a selection of memory resource types for implementation. Optional Hamming code based error detection and correction as well as error injection capability for system test help to insure data integrity. FIFO width and depth are parameterizable, and for native interface FIFOs, asymmetric read and write port widths are also supported. + + + Component_Name + afifo_w64_d16 + + + + true + + + + + + Fifo_Implementation + Independent_Clocks_Block_RAM + + + + true + + + + + + synchronization_stages + 2 + + + + true + + + + + + synchronization_stages_axi + 2 + + + + true + + + + + + INTERFACE_TYPE + Native + + + + true + + + + + + Performance_Options + First_Word_Fall_Through + + + + true + + + + + + asymmetric_port_width + false + + + + false + + + + + + Input_Data_Width + 64 + + + + true + + + + + + Input_Depth + 16 + + + + true + + + + + + Output_Data_Width + 64 + + + + true + + + + + + Output_Depth + 16 + + + + false + + + + + + Enable_ECC + false + + + + true + + + + + + Use_Embedded_Registers + false + + + + true + + + + + + Reset_Pin + true + + + + true + + + + + + Enable_Reset_Synchronization + true + + + + true + + + + + + Reset_Type + Asynchronous_Reset + + + + false + + + + + + Full_Flags_Reset_Value + 1 + + + + true + + + + + + Use_Dout_Reset + true + + + + true + + + + + + Dout_Reset_Value + 0 + + + + true + + + + + + dynamic_power_saving + false + + + + false + + + + + + Almost_Full_Flag + false + + + + true + + + + + + Almost_Empty_Flag + false + + + + true + + + + + + Valid_Flag + false + + + + true + + + + + + Valid_Sense + Active_High + + + + false + + + + + + Underflow_Flag + false + + + + true + + + + + + Underflow_Sense + Active_High + + + + false + + + + + + Write_Acknowledge_Flag + false + + + + true + + + + + + Write_Acknowledge_Sense + Active_High + + + + false + + + + + + Overflow_Flag + false + + + + true + + + + + + Overflow_Sense + Active_High + + + + false + + + + + + Inject_Sbit_Error + false + + + + false + + + + + + Inject_Dbit_Error + false + + + + false + + + + + + ecc_pipeline_reg + false + + + + false + + + + + + Use_Extra_Logic + false + + + + true + + + + + + Data_Count + false + + + + false + + + + + + Data_Count_Width + 4 + + + + false + + + + + + Write_Data_Count + false + + + + true + + + + + + Write_Data_Count_Width + 4 + + + + false + + + + + + Read_Data_Count + false + + + + true + + + + + + Read_Data_Count_Width + 4 + + + + false + + + + + + Disable_Timing_Violations + false + + + + true + + + + + + Read_Clock_Frequency + 1 + + + + false + + + + + + Write_Clock_Frequency + 1 + + + + false + + + + + + Programmable_Full_Type + No_Programmable_Full_Threshold + + + + true + + + + + + Full_Threshold_Assert_Value + 15 + + + + false + + + + + + Full_Threshold_Negate_Value + 14 + + + + false + + + + + + Programmable_Empty_Type + No_Programmable_Empty_Threshold + + + + true + + + + + + Empty_Threshold_Assert_Value + 4 + + + + false + + + + + + Empty_Threshold_Negate_Value + 5 + + + + false + + + + + + PROTOCOL + AXI4 + + + + false + + + + + + Clock_Type_AXI + Common_Clock + + + + true + + + + + + HAS_ACLKEN + false + + + + false + + + + + + Clock_Enable_Type + Slave_Interface_Clock_Enable + + + + false + + + + + + READ_WRITE_MODE + READ_WRITE + + + + true + + + + + + ID_WIDTH + 0 + + + + false + + + + + + ADDRESS_WIDTH + 32 + + + + false + + + + + + DATA_WIDTH + 64 + + + + false + + + + + + AWUSER_Width + 0 + + + + false + + + + + + WUSER_Width + 0 + + + + false + + + + + + BUSER_Width + 0 + + + + false + + + + + + ARUSER_Width + 0 + + + + false + + + + + + RUSER_Width + 0 + + + + false + + + + + + TDATA_NUM_BYTES + 1 + + + + true + + + + + + TID_WIDTH + 0 + + + + false + + + + + + TDEST_WIDTH + 0 + + + + false + + + + + + TUSER_WIDTH + 4 + + + + false + + + + + + Enable_TREADY + true + + + + false + + + + + + Enable_TLAST + false + + + + true + + + + + + HAS_TSTRB + false + + + + false + + + + + + TSTRB_WIDTH + 1 + + + + false + + + + + + HAS_TKEEP + false + + + + false + + + + + + TKEEP_WIDTH + 1 + + + + false + + + + + + wach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wach + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wach + false + + + + false + + + + + + Inject_Sbit_Error_wach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wach + false + + + + false + + + + + + Input_Depth_wach + 16 + + + + true + + + + + + Enable_Data_Counts_wach + false + + + + false + + + + + + Programmable_Full_Type_wach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wdch + false + + + + false + + + + + + Inject_Sbit_Error_wdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wdch + false + + + + false + + + + + + Input_Depth_wdch + 1024 + + + + true + + + + + + Enable_Data_Counts_wdch + false + + + + false + + + + + + Programmable_Full_Type_wdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wrch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wrch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wrch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wrch + false + + + + false + + + + + + Inject_Sbit_Error_wrch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wrch + false + + + + false + + + + + + Input_Depth_wrch + 16 + + + + true + + + + + + Enable_Data_Counts_wrch + false + + + + false + + + + + + Programmable_Full_Type_wrch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wrch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wrch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wrch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rach + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rach + false + + + + false + + + + + + Inject_Sbit_Error_rach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rach + false + + + + false + + + + + + Input_Depth_rach + 16 + + + + true + + + + + + Enable_Data_Counts_rach + false + + + + false + + + + + + Programmable_Full_Type_rach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rdch + false + + + + false + + + + + + Inject_Sbit_Error_rdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rdch + false + + + + false + + + + + + Input_Depth_rdch + 1024 + + + + true + + + + + + Enable_Data_Counts_rdch + false + + + + false + + + + + + Programmable_Full_Type_rdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + axis_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_axis + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_axis + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_axis + false + + + + false + + + + + + Inject_Sbit_Error_axis + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_axis + Double Bit Error Injection + false + + + + false + + + + + + Input_Depth_axis + 1024 + + + + true + + + + + + Enable_Data_Counts_axis + false + + + + false + + + + + + Programmable_Full_Type_axis + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_axis + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_axis + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_axis + Empty Threshold Assert Value + 1022 + + + + false + + + + + + Register_Slice_Mode_wach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wrch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_axis + Register Slice Options + Fully_Registered + + + + true + + + + + + Underflow_Flag_AXI + Underflow Flag + false + + + + true + + + + + + Underflow_Sense_AXI + Underflow (Read Error) + Active_High + + + + true + + + + + + Overflow_Flag_AXI + Overflow Flag + false + + + + true + + + + + + Overflow_Sense_AXI + Overflow (Write Error) + Active_High + + + + true + + + + + + Disable_Timing_Violations_AXI + false + + + + true + + + + + + Add_NGC_Constraint_AXI + false + + + + true + + + + + + Enable_Common_Underflow + false + + + + true + + + + + + Enable_Common_Overflow + false + + + + true + + + + + + enable_read_pointer_increment_by2 + false + + + + true + + + + + + Use_Embedded_Registers_axis + false + + + + false + + + + + + enable_low_latency + false + + + + false + + + + + + use_dout_register + false + + + + false + + + + + + Master_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Slave_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Output_Register_Type + Embedded_Reg + + + + false + + + + + + Enable_Safety_Circuit + false + + + + true + + + + + + Enable_ECC_Type + Hard_ECC + + + + false + + + + + + C_SELECT_XPM + 0 + + + + + FIFO Generator + 4 + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w3_d16/fifo_w3_d16.xci b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w3_d16/fifo_w3_d16.xci new file mode 100644 index 0000000..8d3145b --- /dev/null +++ b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w3_d16/fifo_w3_d16.xci @@ -0,0 +1,428 @@ + + + xilinx.com + xci + unknown + 1.0 + + + fifo_w3_d16 + + + 100000000 + 100000000 + 100000000 + 100000000 + 100000000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 1 + 1 + 1 + 4 + 0 + 32 + 1 + 1 + 1 + 64 + 1 + 8 + 1 + 1 + 1 + 1 + 1 + 0 + 5 + BlankString + 3 + 1 + 32 + 64 + 1 + 64 + 2 + 0 + 3 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + zynq + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + BlankString + 1 + 0 + 0 + 0 + 0 + 1 + 512x36 + 1kx18 + 512x36 + 1kx36 + 512x36 + 1kx36 + 512x36 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 15 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 14 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 16 + 1 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 16 + 1024 + 16 + 1024 + 16 + 1024 + 16 + 1 + 4 + 10 + 4 + 10 + 4 + 10 + 4 + 1 + 32 + 0 + 0 + false + false + false + 0 + 0 + Slave_Interface_Clock_Enable + Common_Clock + fifo_w3_d16 + 64 + false + 5 + false + false + 0 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + false + false + false + false + false + false + false + false + false + Hard_ECC + false + false + false + false + false + false + true + false + false + true + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + 0 + 15 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 14 + false + false + false + 0 + Native + false + false + false + false + false + false + false + false + false + false + false + false + false + false + 3 + 16 + 1024 + 16 + 1024 + 16 + 1024 + 16 + false + 3 + 16 + Embedded_Reg + false + false + Active_High + Active_High + AXI4 + First_Word_Fall_Through + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + READ_WRITE + 0 + 1 + false + 5 + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + true + Synchronous_Reset + false + 1 + 0 + 0 + 1 + 1 + 4 + false + false + Active_High + Active_High + true + false + false + true + false + Active_High + 0 + false + Active_High + 1 + false + 5 + false + FIFO + false + false + false + false + FIFO + FIFO + 2 + 2 + false + FIFO + FIFO + FIFO + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 4 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w3_d16/fifo_w3_d16.xml b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w3_d16/fifo_w3_d16.xml new file mode 100644 index 0000000..f0cc057 --- /dev/null +++ b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w3_d16/fifo_w3_d16.xml @@ -0,0 +1,9707 @@ + + + xilinx.com + customized_ip + fifo_w3_d16 + 1.0 + + + M_AXIS + + + + + + + TDATA + + + m_axis_tdata + + + + + TDEST + + + m_axis_tdest + + + + + TID + + + m_axis_tid + + + + + TKEEP + + + m_axis_tkeep + + + + + TLAST + + + m_axis_tlast + + + + + TREADY + + + m_axis_tready + + + + + TSTRB + + + m_axis_tstrb + + + + + TUSER + + + m_axis_tuser + + + + + TVALID + + + m_axis_tvalid + + + + + + + false + + + + + + S_AXIS + + + + + + + TDATA + + + s_axis_tdata + + + + + TDEST + + + s_axis_tdest + + + + + TID + + + s_axis_tid + + + + + TKEEP + + + s_axis_tkeep + + + + + TLAST + + + s_axis_tlast + + + + + TREADY + + + s_axis_tready + + + + + TSTRB + + + s_axis_tstrb + + + + + TUSER + + + s_axis_tuser + + + + + TVALID + + + s_axis_tvalid + + + + + + + false + + + + + + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARREGION + + + s_axi_arregion + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWREGION + + + s_axi_awregion + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BUSER + + + s_axi_buser + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RUSER + + + s_axi_ruser + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WID + + + s_axi_wid + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WUSER + + + s_axi_wuser + + + + + WVALID + + + s_axi_wvalid + + + + + + BD_ATTRIBUTE.TYPE + INTERIOR + + + + + + false + + + + + + M_AXI + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARREGION + + + m_axi_arregion + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWREGION + + + m_axi_awregion + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BUSER + + + m_axi_buser + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RUSER + + + m_axi_ruser + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WID + + + m_axi_wid + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WUSER + + + m_axi_wuser + + + + + WVALID + + + m_axi_wvalid + + + + + + + false + + + + + + core_clk + + + + + + + CLK + + + clk + + + + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port clk + 100000000 + + + + + + true + + + + + + master_aclk + + + + + + + CLK + + + m_aclk + + + + + + ASSOCIATED_BUSIF + M_AXIS:M_AXI + + + FREQ_HZ + m_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + slave_aclk + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + S_AXIS:S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + FREQ_HZ + s_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + write_clk + + + + + + + CLK + + + wr_clk + + + + + + FREQ_HZ + write clock frequency + specify frequency of the clock connected to port wr_clk + 100000000 + + + + + + false + + + + + + read_clk + + + + + + + CLK + + + rd_clk + + + + + + FREQ_HZ + read clock frequency + specify frequency of the clock connected to port rd_clk + 100000000 + + + + + + false + + + + + + slave_aresetn + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + FIFO_WRITE + FIFO_WRITE + + + + + + + ALMOST_FULL + + + almost_full + + + + + FULL + + + full + + + + + WR_DATA + + + din + + + + + WR_EN + + + wr_en + + + + + + + true + + + + + + FIFO_READ + FIFO_READ + + + + + + + ALMOST_EMPTY + + + almost_empty + + + + + EMPTY + + + empty + + + + + RD_DATA + + + dout + + + + + RD_EN + + + rd_en + + + + + + + true + + + + + + + + + backup + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + backup_marker + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + srst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + wr_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wr_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + din + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + wr_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_assert + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_negate + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_assert + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_negate + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + int_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + dout + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + almost_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_ack + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + almost_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + valid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + prog_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_wid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_buser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wstrb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_buser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_ruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_aruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_ruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tkeep + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tdest + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tuser + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tstrb + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tkeep + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdest + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tuser + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_w_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_b_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_ar_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_r_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axis_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + + + C_COMMON_CLOCK + 1 + + + C_SELECT_XPM + 0 + + + C_COUNT_TYPE + 0 + + + C_DATA_COUNT_WIDTH + 5 + + + C_DEFAULT_VALUE + BlankString + + + C_DIN_WIDTH + 3 + + + C_DOUT_RST_VAL + 0 + + + C_DOUT_WIDTH + 3 + + + C_ENABLE_RLOCS + 0 + + + C_FAMILY + zynq + + + C_FULL_FLAGS_RST_VAL + 0 + + + C_HAS_ALMOST_EMPTY + 0 + + + C_HAS_ALMOST_FULL + 0 + + + C_HAS_BACKUP + 0 + + + C_HAS_DATA_COUNT + 0 + + + C_HAS_INT_CLK + 0 + + + C_HAS_MEMINIT_FILE + 0 + + + C_HAS_OVERFLOW + 0 + + + C_HAS_RD_DATA_COUNT + 0 + + + C_HAS_RD_RST + 0 + + + C_HAS_RST + 0 + + + C_HAS_SRST + 1 + + + C_HAS_UNDERFLOW + 0 + + + C_HAS_VALID + 0 + + + C_HAS_WR_ACK + 0 + + + C_HAS_WR_DATA_COUNT + 0 + + + C_HAS_WR_RST + 0 + + + C_IMPLEMENTATION_TYPE + 0 + + + C_INIT_WR_PNTR_VAL + 0 + + + C_MEMORY_TYPE + 1 + + + C_MIF_FILE_NAME + BlankString + + + C_OPTIMIZATION_MODE + 0 + + + C_OVERFLOW_LOW + 0 + + + C_PRELOAD_LATENCY + 0 + + + C_PRELOAD_REGS + 1 + + + C_PRIM_FIFO_TYPE + 512x36 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL + 4 + + + C_PROG_EMPTY_THRESH_NEGATE_VAL + 5 + + + C_PROG_EMPTY_TYPE + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL + 15 + + + C_PROG_FULL_THRESH_NEGATE_VAL + 14 + + + C_PROG_FULL_TYPE + 0 + + + C_RD_DATA_COUNT_WIDTH + 5 + + + C_RD_DEPTH + 16 + + + C_RD_FREQ + 1 + + + C_RD_PNTR_WIDTH + 4 + + + C_UNDERFLOW_LOW + 0 + + + C_USE_DOUT_RST + 1 + + + C_USE_ECC + 0 + + + C_USE_EMBEDDED_REG + 0 + + + C_USE_PIPELINE_REG + 0 + + + C_POWER_SAVING_MODE + 0 + + + C_USE_FIFO16_FLAGS + 0 + + + C_USE_FWFT_DATA_COUNT + 1 + + + C_VALID_LOW + 0 + + + C_WR_ACK_LOW + 0 + + + C_WR_DATA_COUNT_WIDTH + 5 + + + C_WR_DEPTH + 16 + + + C_WR_FREQ + 1 + + + C_WR_PNTR_WIDTH + 4 + + + C_WR_RESPONSE_LATENCY + 1 + + + C_MSGON_VAL + 1 + + + C_ENABLE_RST_SYNC + 1 + + + C_EN_SAFETY_CKT + 0 + + + C_ERROR_INJECTION_TYPE + 0 + + + C_SYNCHRONIZER_STAGE + 2 + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_HAS_AXI_WR_CHANNEL + 1 + + + C_HAS_AXI_RD_CHANNEL + 1 + + + C_HAS_SLAVE_CE + 0 + + + C_HAS_MASTER_CE + 0 + + + C_ADD_NGC_CONSTRAINT + 0 + + + C_USE_COMMON_OVERFLOW + 0 + + + C_USE_COMMON_UNDERFLOW + 0 + + + C_USE_DEFAULT_SETTINGS + 0 + + + C_AXI_ID_WIDTH + 1 + + + C_AXI_ADDR_WIDTH + 32 + + + C_AXI_DATA_WIDTH + 64 + + + C_AXI_LEN_WIDTH + 8 + + + C_AXI_LOCK_WIDTH + 1 + + + C_HAS_AXI_ID + 0 + + + C_HAS_AXI_AWUSER + 0 + + + C_HAS_AXI_WUSER + 0 + + + C_HAS_AXI_BUSER + 0 + + + C_HAS_AXI_ARUSER + 0 + + + C_HAS_AXI_RUSER + 0 + + + C_AXI_ARUSER_WIDTH + 1 + + + C_AXI_AWUSER_WIDTH + 1 + + + C_AXI_WUSER_WIDTH + 1 + + + C_AXI_BUSER_WIDTH + 1 + + + C_AXI_RUSER_WIDTH + 1 + + + C_HAS_AXIS_TDATA + 1 + + + C_HAS_AXIS_TID + 0 + + + C_HAS_AXIS_TDEST + 0 + + + C_HAS_AXIS_TUSER + 1 + + + C_HAS_AXIS_TREADY + 1 + + + C_HAS_AXIS_TLAST + 0 + + + C_HAS_AXIS_TSTRB + 0 + + + C_HAS_AXIS_TKEEP + 0 + + + C_AXIS_TDATA_WIDTH + 8 + + + C_AXIS_TID_WIDTH + 1 + + + C_AXIS_TDEST_WIDTH + 1 + + + C_AXIS_TUSER_WIDTH + 4 + + + C_AXIS_TSTRB_WIDTH + 1 + + + C_AXIS_TKEEP_WIDTH + 1 + + + C_WACH_TYPE + 0 + + + C_WDCH_TYPE + 0 + + + C_WRCH_TYPE + 0 + + + C_RACH_TYPE + 0 + + + C_RDCH_TYPE + 0 + + + C_AXIS_TYPE + 0 + + + C_IMPLEMENTATION_TYPE_WACH + 1 + + + C_IMPLEMENTATION_TYPE_WDCH + 1 + + + C_IMPLEMENTATION_TYPE_WRCH + 1 + + + C_IMPLEMENTATION_TYPE_RACH + 1 + + + C_IMPLEMENTATION_TYPE_RDCH + 1 + + + C_IMPLEMENTATION_TYPE_AXIS + 1 + + + C_APPLICATION_TYPE_WACH + 0 + + + C_APPLICATION_TYPE_WDCH + 0 + + + C_APPLICATION_TYPE_WRCH + 0 + + + C_APPLICATION_TYPE_RACH + 0 + + + C_APPLICATION_TYPE_RDCH + 0 + + + C_APPLICATION_TYPE_AXIS + 0 + + + C_PRIM_FIFO_TYPE_WACH + 512x36 + + + C_PRIM_FIFO_TYPE_WDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_WRCH + 512x36 + + + C_PRIM_FIFO_TYPE_RACH + 512x36 + + + C_PRIM_FIFO_TYPE_RDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_AXIS + 1kx18 + + + C_USE_ECC_WACH + 0 + + + C_USE_ECC_WDCH + 0 + + + C_USE_ECC_WRCH + 0 + + + C_USE_ECC_RACH + 0 + + + C_USE_ECC_RDCH + 0 + + + C_USE_ECC_AXIS + 0 + + + C_ERROR_INJECTION_TYPE_WACH + 0 + + + C_ERROR_INJECTION_TYPE_WDCH + 0 + + + C_ERROR_INJECTION_TYPE_WRCH + 0 + + + C_ERROR_INJECTION_TYPE_RACH + 0 + + + C_ERROR_INJECTION_TYPE_RDCH + 0 + + + C_ERROR_INJECTION_TYPE_AXIS + 0 + + + C_DIN_WIDTH_WACH + 1 + + + C_DIN_WIDTH_WDCH + 64 + + + C_DIN_WIDTH_WRCH + 2 + + + C_DIN_WIDTH_RACH + 32 + + + C_DIN_WIDTH_RDCH + 64 + + + C_DIN_WIDTH_AXIS + 1 + + + C_WR_DEPTH_WACH + 16 + + + C_WR_DEPTH_WDCH + 1024 + + + C_WR_DEPTH_WRCH + 16 + + + C_WR_DEPTH_RACH + 16 + + + C_WR_DEPTH_RDCH + 1024 + + + C_WR_DEPTH_AXIS + 1024 + + + C_WR_PNTR_WIDTH_WACH + 4 + + + C_WR_PNTR_WIDTH_WDCH + 10 + + + C_WR_PNTR_WIDTH_WRCH + 4 + + + C_WR_PNTR_WIDTH_RACH + 4 + + + C_WR_PNTR_WIDTH_RDCH + 10 + + + C_WR_PNTR_WIDTH_AXIS + 10 + + + C_HAS_DATA_COUNTS_WACH + 0 + + + C_HAS_DATA_COUNTS_WDCH + 0 + + + C_HAS_DATA_COUNTS_WRCH + 0 + + + C_HAS_DATA_COUNTS_RACH + 0 + + + C_HAS_DATA_COUNTS_RDCH + 0 + + + C_HAS_DATA_COUNTS_AXIS + 0 + + + C_HAS_PROG_FLAGS_WACH + 0 + + + C_HAS_PROG_FLAGS_WDCH + 0 + + + C_HAS_PROG_FLAGS_WRCH + 0 + + + C_HAS_PROG_FLAGS_RACH + 0 + + + C_HAS_PROG_FLAGS_RDCH + 0 + + + C_HAS_PROG_FLAGS_AXIS + 0 + + + C_PROG_FULL_TYPE_WACH + 0 + + + C_PROG_FULL_TYPE_WDCH + 0 + + + C_PROG_FULL_TYPE_WRCH + 0 + + + C_PROG_FULL_TYPE_RACH + 0 + + + C_PROG_FULL_TYPE_RDCH + 0 + + + C_PROG_FULL_TYPE_AXIS + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WRCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_AXIS + 1023 + + + C_PROG_EMPTY_TYPE_WACH + 0 + + + C_PROG_EMPTY_TYPE_WDCH + 0 + + + C_PROG_EMPTY_TYPE_WRCH + 0 + + + C_PROG_EMPTY_TYPE_RACH + 0 + + + C_PROG_EMPTY_TYPE_RDCH + 0 + + + C_PROG_EMPTY_TYPE_AXIS + 0 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS + 1022 + + + C_REG_SLICE_MODE_WACH + 0 + + + C_REG_SLICE_MODE_WDCH + 0 + + + C_REG_SLICE_MODE_WRCH + 0 + + + C_REG_SLICE_MODE_RACH + 0 + + + C_REG_SLICE_MODE_RDCH + 0 + + + C_REG_SLICE_MODE_AXIS + 0 + + + + + + choice_list_087d29fa + 0 + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_1137720c + 3 + 3 + + + choice_list_165ed04b + 64 + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_bf1143fa + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32768 + 65536 + 131072 + + + choice_pairs_0721dec1 + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Multiple_Programmable_Empty_Threshold_Constants + Single_Programmable_Empty_Threshold_Input_Port + Multiple_Programmable_Empty_Threshold_Input_Ports + + + choice_pairs_08e28d5f + Active_High + Active_Low + + + choice_pairs_2d5d8925 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + Common_Clock_Shift_Register + Common_Clock_Builtin_FIFO + Independent_Clocks_Block_RAM + Independent_Clocks_Distributed_RAM + Independent_Clocks_Builtin_FIFO + + + choice_pairs_3c123ec0 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + + + choice_pairs_53eba4dc + Native + AXI_MEMORY_MAPPED + AXI_STREAM + + + choice_pairs_541ed8d9 + Embedded_Reg + Fabric_Reg + Both + + + choice_pairs_5548b404 + Common_Clock + Independent_Clock + + + choice_pairs_5f1451ad + Standard_FIFO + First_Word_Fall_Through + + + choice_pairs_619f3529 + AXI4 + AXI3 + AXI4_Lite + + + choice_pairs_8334cf20 + Data_FIFO + Packet_FIFO + Low_Latency_Data_FIFO + + + choice_pairs_88535724 + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Multiple_Programmable_Full_Threshold_Constants + Single_Programmable_Full_Threshold_Input_Port + Multiple_Programmable_Full_Threshold_Input_Ports + + + choice_pairs_9b232fe1 + Slave_Interface_Clock_Enable + Master_Interface_Clock_Enable + + + choice_pairs_a8c5818a + Fully_Registered + Light_Weight + + + choice_pairs_ae1178b5 + Asynchronous_Reset + Synchronous_Reset + + + choice_pairs_b3e9d19b + FIFO + Register_Slice + Pass_Through_Wire + + + choice_pairs_bec132cf + FIFO + Register_Slice + + + choice_pairs_c94a1851 + Hard_ECC + Soft_ECC + + + choice_pairs_ccb14e2b + READ_WRITE + READ_ONLY + WRITE_ONLY + + + choice_pairs_eb98f74b + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Single_Programmable_Empty_Threshold_Input_Port + + + choice_pairs_ec2b452f + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Single_Programmable_Full_Threshold_Input_Port + + + The FIFO Generator is a parameterizable first-in/first-out memory queue generator. Use it to generate resource and performance optimized FIFOs with common or independent read/write clock domains, and optional fixed or programmable full and empty flags and handshaking signals. Choose from a selection of memory resource types for implementation. Optional Hamming code based error detection and correction as well as error injection capability for system test help to insure data integrity. FIFO width and depth are parameterizable, and for native interface FIFOs, asymmetric read and write port widths are also supported. + + + Component_Name + fifo_w3_d16 + + + + true + + + + + + Fifo_Implementation + Common_Clock_Block_RAM + + + + true + + + + + + synchronization_stages + 2 + + + + true + + + + + + synchronization_stages_axi + 2 + + + + true + + + + + + INTERFACE_TYPE + Native + + + + true + + + + + + Performance_Options + First_Word_Fall_Through + + + + true + + + + + + asymmetric_port_width + false + + + + false + + + + + + Input_Data_Width + 3 + + + + true + + + + + + Input_Depth + 16 + + + + true + + + + + + Output_Data_Width + 3 + + + + true + + + + + + Output_Depth + 16 + + + + false + + + + + + Enable_ECC + false + + + + true + + + + + + Use_Embedded_Registers + false + + + + true + + + + + + Reset_Pin + true + + + + true + + + + + + Enable_Reset_Synchronization + true + + + + false + + + + + + Reset_Type + Synchronous_Reset + + + + true + + + + + + Full_Flags_Reset_Value + 0 + + + + false + + + + + + Use_Dout_Reset + true + + + + true + + + + + + Dout_Reset_Value + 0 + + + + true + + + + + + dynamic_power_saving + false + + + + false + + + + + + Almost_Full_Flag + false + + + + true + + + + + + Almost_Empty_Flag + false + + + + true + + + + + + Valid_Flag + false + + + + true + + + + + + Valid_Sense + Active_High + + + + false + + + + + + Underflow_Flag + false + + + + true + + + + + + Underflow_Sense + Active_High + + + + false + + + + + + Write_Acknowledge_Flag + false + + + + true + + + + + + Write_Acknowledge_Sense + Active_High + + + + false + + + + + + Overflow_Flag + false + + + + true + + + + + + Overflow_Sense + Active_High + + + + false + + + + + + Inject_Sbit_Error + false + + + + false + + + + + + Inject_Dbit_Error + false + + + + false + + + + + + ecc_pipeline_reg + false + + + + false + + + + + + Use_Extra_Logic + true + + + + false + + + + + + Data_Count + false + + + + true + + + + + + Data_Count_Width + 5 + + + + false + + + + + + Write_Data_Count + false + + + + false + + + + + + Write_Data_Count_Width + 5 + + + + false + + + + + + Read_Data_Count + false + + + + false + + + + + + Read_Data_Count_Width + 5 + + + + false + + + + + + Disable_Timing_Violations + false + + + + false + + + + + + Read_Clock_Frequency + 1 + + + + false + + + + + + Write_Clock_Frequency + 1 + + + + false + + + + + + Programmable_Full_Type + No_Programmable_Full_Threshold + + + + true + + + + + + Full_Threshold_Assert_Value + 15 + + + + false + + + + + + Full_Threshold_Negate_Value + 14 + + + + false + + + + + + Programmable_Empty_Type + No_Programmable_Empty_Threshold + + + + true + + + + + + Empty_Threshold_Assert_Value + 4 + + + + false + + + + + + Empty_Threshold_Negate_Value + 5 + + + + false + + + + + + PROTOCOL + AXI4 + + + + false + + + + + + Clock_Type_AXI + Common_Clock + + + + true + + + + + + HAS_ACLKEN + false + + + + false + + + + + + Clock_Enable_Type + Slave_Interface_Clock_Enable + + + + false + + + + + + READ_WRITE_MODE + READ_WRITE + + + + true + + + + + + ID_WIDTH + 0 + + + + false + + + + + + ADDRESS_WIDTH + 32 + + + + false + + + + + + DATA_WIDTH + 64 + + + + false + + + + + + AWUSER_Width + 0 + + + + false + + + + + + WUSER_Width + 0 + + + + false + + + + + + BUSER_Width + 0 + + + + false + + + + + + ARUSER_Width + 0 + + + + false + + + + + + RUSER_Width + 0 + + + + false + + + + + + TDATA_NUM_BYTES + 1 + + + + true + + + + + + TID_WIDTH + 0 + + + + false + + + + + + TDEST_WIDTH + 0 + + + + false + + + + + + TUSER_WIDTH + 4 + + + + false + + + + + + Enable_TREADY + true + + + + false + + + + + + Enable_TLAST + false + + + + true + + + + + + HAS_TSTRB + false + + + + false + + + + + + TSTRB_WIDTH + 1 + + + + false + + + + + + HAS_TKEEP + false + + + + false + + + + + + TKEEP_WIDTH + 1 + + + + false + + + + + + wach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wach + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wach + false + + + + false + + + + + + Inject_Sbit_Error_wach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wach + false + + + + false + + + + + + Input_Depth_wach + 16 + + + + true + + + + + + Enable_Data_Counts_wach + false + + + + false + + + + + + Programmable_Full_Type_wach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wdch + false + + + + false + + + + + + Inject_Sbit_Error_wdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wdch + false + + + + false + + + + + + Input_Depth_wdch + 1024 + + + + true + + + + + + Enable_Data_Counts_wdch + false + + + + false + + + + + + Programmable_Full_Type_wdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wrch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wrch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wrch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wrch + false + + + + false + + + + + + Inject_Sbit_Error_wrch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wrch + false + + + + false + + + + + + Input_Depth_wrch + 16 + + + + true + + + + + + Enable_Data_Counts_wrch + false + + + + false + + + + + + Programmable_Full_Type_wrch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wrch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wrch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wrch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rach + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rach + false + + + + false + + + + + + Inject_Sbit_Error_rach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rach + false + + + + false + + + + + + Input_Depth_rach + 16 + + + + true + + + + + + Enable_Data_Counts_rach + false + + + + false + + + + + + Programmable_Full_Type_rach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rdch + false + + + + false + + + + + + Inject_Sbit_Error_rdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rdch + false + + + + false + + + + + + Input_Depth_rdch + 1024 + + + + true + + + + + + Enable_Data_Counts_rdch + false + + + + false + + + + + + Programmable_Full_Type_rdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + axis_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_axis + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_axis + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_axis + false + + + + false + + + + + + Inject_Sbit_Error_axis + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_axis + Double Bit Error Injection + false + + + + false + + + + + + Input_Depth_axis + 1024 + + + + true + + + + + + Enable_Data_Counts_axis + false + + + + false + + + + + + Programmable_Full_Type_axis + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_axis + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_axis + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_axis + Empty Threshold Assert Value + 1022 + + + + false + + + + + + Register_Slice_Mode_wach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wrch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_axis + Register Slice Options + Fully_Registered + + + + true + + + + + + Underflow_Flag_AXI + Underflow Flag + false + + + + true + + + + + + Underflow_Sense_AXI + Underflow (Read Error) + Active_High + + + + true + + + + + + Overflow_Flag_AXI + Overflow Flag + false + + + + true + + + + + + Overflow_Sense_AXI + Overflow (Write Error) + Active_High + + + + true + + + + + + Disable_Timing_Violations_AXI + false + + + + true + + + + + + Add_NGC_Constraint_AXI + false + + + + true + + + + + + Enable_Common_Underflow + false + + + + true + + + + + + Enable_Common_Overflow + false + + + + true + + + + + + enable_read_pointer_increment_by2 + false + + + + true + + + + + + Use_Embedded_Registers_axis + false + + + + false + + + + + + enable_low_latency + false + + + + false + + + + + + use_dout_register + false + + + + false + + + + + + Master_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Slave_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Output_Register_Type + Embedded_Reg + + + + false + + + + + + Enable_Safety_Circuit + false + + + + false + + + + + + Enable_ECC_Type + Hard_ECC + + + + false + + + + + + C_SELECT_XPM + 0 + + + + + FIFO Generator + 4 + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w64_d16/fifo_w64_d16.xci b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w64_d16/fifo_w64_d16.xci new file mode 100644 index 0000000..c2e3e0b --- /dev/null +++ b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w64_d16/fifo_w64_d16.xci @@ -0,0 +1,428 @@ + + + xilinx.com + xci + unknown + 1.0 + + + fifo_w64_d16 + + + 100000000 + 100000000 + 100000000 + 100000000 + 100000000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 1 + 1 + 1 + 4 + 0 + 32 + 1 + 1 + 1 + 64 + 1 + 8 + 1 + 1 + 1 + 1 + 1 + 0 + 5 + BlankString + 64 + 1 + 32 + 64 + 1 + 64 + 2 + 0 + 64 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + zynq + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + BlankString + 1 + 0 + 0 + 0 + 0 + 1 + 512x72 + 1kx18 + 512x36 + 1kx36 + 512x36 + 1kx36 + 512x36 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 15 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 14 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 16 + 1 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 16 + 1024 + 16 + 1024 + 16 + 1024 + 16 + 1 + 4 + 10 + 4 + 10 + 4 + 10 + 4 + 1 + 32 + 0 + 0 + false + false + false + 0 + 0 + Slave_Interface_Clock_Enable + Common_Clock + fifo_w64_d16 + 64 + false + 5 + false + false + 0 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + false + false + false + false + false + false + false + false + false + Hard_ECC + false + false + false + false + false + false + true + false + false + true + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + 0 + 15 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 14 + false + false + false + 0 + Native + false + false + false + false + false + false + false + false + false + false + false + false + false + false + 64 + 16 + 1024 + 16 + 1024 + 16 + 1024 + 16 + false + 64 + 16 + Embedded_Reg + false + false + Active_High + Active_High + AXI4 + First_Word_Fall_Through + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + READ_WRITE + 0 + 1 + false + 5 + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + true + Synchronous_Reset + false + 1 + 0 + 0 + 1 + 1 + 4 + false + false + Active_High + Active_High + true + false + false + true + false + Active_High + 0 + false + Active_High + 1 + false + 5 + false + FIFO + false + false + false + false + FIFO + FIFO + 2 + 2 + false + FIFO + FIFO + FIFO + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 4 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w64_d16/fifo_w64_d16.xml b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w64_d16/fifo_w64_d16.xml new file mode 100644 index 0000000..7b1a3a4 --- /dev/null +++ b/piton/design/chip/chip_bridge/xilinx/zc706/ip_cores/fifo_w64_d16/fifo_w64_d16.xml @@ -0,0 +1,9710 @@ + + + xilinx.com + customized_ip + fifo_w64_d16 + 1.0 + + + M_AXIS + + + + + + + TDATA + + + m_axis_tdata + + + + + TDEST + + + m_axis_tdest + + + + + TID + + + m_axis_tid + + + + + TKEEP + + + m_axis_tkeep + + + + + TLAST + + + m_axis_tlast + + + + + TREADY + + + m_axis_tready + + + + + TSTRB + + + m_axis_tstrb + + + + + TUSER + + + m_axis_tuser + + + + + TVALID + + + m_axis_tvalid + + + + + + + false + + + + + + S_AXIS + + + + + + + TDATA + + + s_axis_tdata + + + + + TDEST + + + s_axis_tdest + + + + + TID + + + s_axis_tid + + + + + TKEEP + + + s_axis_tkeep + + + + + TLAST + + + s_axis_tlast + + + + + TREADY + + + s_axis_tready + + + + + TSTRB + + + s_axis_tstrb + + + + + TUSER + + + s_axis_tuser + + + + + TVALID + + + s_axis_tvalid + + + + + + + false + + + + + + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARREGION + + + s_axi_arregion + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWREGION + + + s_axi_awregion + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BUSER + + + s_axi_buser + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RUSER + + + s_axi_ruser + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WID + + + s_axi_wid + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WUSER + + + s_axi_wuser + + + + + WVALID + + + s_axi_wvalid + + + + + + BD_ATTRIBUTE.TYPE + INTERIOR + + + + + + false + + + + + + M_AXI + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARREGION + + + m_axi_arregion + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWREGION + + + m_axi_awregion + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BUSER + + + m_axi_buser + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RUSER + + + m_axi_ruser + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WID + + + m_axi_wid + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WUSER + + + m_axi_wuser + + + + + WVALID + + + m_axi_wvalid + + + + + + + false + + + + + + core_clk + + + + + + + CLK + + + clk + + + + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port clk + 100000000 + + + + + + true + + + + + + master_aclk + + + + + + + CLK + + + m_aclk + + + + + + ASSOCIATED_BUSIF + M_AXIS:M_AXI + + + FREQ_HZ + m_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + slave_aclk + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + S_AXIS:S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + FREQ_HZ + s_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + write_clk + + + + + + + CLK + + + wr_clk + + + + + + FREQ_HZ + write clock frequency + specify frequency of the clock connected to port wr_clk + 100000000 + + + + + + false + + + + + + read_clk + + + + + + + CLK + + + rd_clk + + + + + + FREQ_HZ + read clock frequency + specify frequency of the clock connected to port rd_clk + 100000000 + + + + + + false + + + + + + slave_aresetn + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + FIFO_WRITE + FIFO_WRITE + + + + + + + ALMOST_FULL + + + almost_full + + + + + FULL + + + full + + + + + WR_DATA + + + din + + + + + WR_EN + + + wr_en + + + + + + + true + + + + + + FIFO_READ + FIFO_READ + + + + + + + ALMOST_EMPTY + + + almost_empty + + + + + EMPTY + + + empty + + + + + RD_DATA + + + dout + + + + + RD_EN + + + rd_en + + + + + + + true + + + + + + + + + backup + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + backup_marker + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + srst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + wr_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wr_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + din + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + wr_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_assert + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_negate + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_assert + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_negate + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + int_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + dout + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + almost_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_ack + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + almost_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + valid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + prog_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_wid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_buser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wstrb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_buser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_ruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_aruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_ruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tkeep + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tdest + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tuser + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tstrb + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tkeep + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdest + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tuser + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_w_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_b_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_ar_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_r_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axis_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + + + C_COMMON_CLOCK + 1 + + + C_SELECT_XPM + 0 + + + C_COUNT_TYPE + 0 + + + C_DATA_COUNT_WIDTH + 5 + + + C_DEFAULT_VALUE + BlankString + + + C_DIN_WIDTH + 64 + + + C_DOUT_RST_VAL + 0 + + + C_DOUT_WIDTH + 64 + + + C_ENABLE_RLOCS + 0 + + + C_FAMILY + zynq + + + C_FULL_FLAGS_RST_VAL + 0 + + + C_HAS_ALMOST_EMPTY + 0 + + + C_HAS_ALMOST_FULL + 0 + + + C_HAS_BACKUP + 0 + + + C_HAS_DATA_COUNT + 0 + + + C_HAS_INT_CLK + 0 + + + C_HAS_MEMINIT_FILE + 0 + + + C_HAS_OVERFLOW + 0 + + + C_HAS_RD_DATA_COUNT + 0 + + + C_HAS_RD_RST + 0 + + + C_HAS_RST + 0 + + + C_HAS_SRST + 1 + + + C_HAS_UNDERFLOW + 0 + + + C_HAS_VALID + 0 + + + C_HAS_WR_ACK + 0 + + + C_HAS_WR_DATA_COUNT + 0 + + + C_HAS_WR_RST + 0 + + + C_IMPLEMENTATION_TYPE + 0 + + + C_INIT_WR_PNTR_VAL + 0 + + + C_MEMORY_TYPE + 1 + + + C_MIF_FILE_NAME + BlankString + + + C_OPTIMIZATION_MODE + 0 + + + C_OVERFLOW_LOW + 0 + + + C_PRELOAD_LATENCY + 0 + + + C_PRELOAD_REGS + 1 + + + C_PRIM_FIFO_TYPE + 512x72 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL + 4 + + + C_PROG_EMPTY_THRESH_NEGATE_VAL + 5 + + + C_PROG_EMPTY_TYPE + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL + 15 + + + C_PROG_FULL_THRESH_NEGATE_VAL + 14 + + + C_PROG_FULL_TYPE + 0 + + + C_RD_DATA_COUNT_WIDTH + 5 + + + C_RD_DEPTH + 16 + + + C_RD_FREQ + 1 + + + C_RD_PNTR_WIDTH + 4 + + + C_UNDERFLOW_LOW + 0 + + + C_USE_DOUT_RST + 1 + + + C_USE_ECC + 0 + + + C_USE_EMBEDDED_REG + 0 + + + C_USE_PIPELINE_REG + 0 + + + C_POWER_SAVING_MODE + 0 + + + C_USE_FIFO16_FLAGS + 0 + + + C_USE_FWFT_DATA_COUNT + 1 + + + C_VALID_LOW + 0 + + + C_WR_ACK_LOW + 0 + + + C_WR_DATA_COUNT_WIDTH + 5 + + + C_WR_DEPTH + 16 + + + C_WR_FREQ + 1 + + + C_WR_PNTR_WIDTH + 4 + + + C_WR_RESPONSE_LATENCY + 1 + + + C_MSGON_VAL + 1 + + + C_ENABLE_RST_SYNC + 1 + + + C_EN_SAFETY_CKT + 0 + + + C_ERROR_INJECTION_TYPE + 0 + + + C_SYNCHRONIZER_STAGE + 2 + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_HAS_AXI_WR_CHANNEL + 1 + + + C_HAS_AXI_RD_CHANNEL + 1 + + + C_HAS_SLAVE_CE + 0 + + + C_HAS_MASTER_CE + 0 + + + C_ADD_NGC_CONSTRAINT + 0 + + + C_USE_COMMON_OVERFLOW + 0 + + + C_USE_COMMON_UNDERFLOW + 0 + + + C_USE_DEFAULT_SETTINGS + 0 + + + C_AXI_ID_WIDTH + 1 + + + C_AXI_ADDR_WIDTH + 32 + + + C_AXI_DATA_WIDTH + 64 + + + C_AXI_LEN_WIDTH + 8 + + + C_AXI_LOCK_WIDTH + 1 + + + C_HAS_AXI_ID + 0 + + + C_HAS_AXI_AWUSER + 0 + + + C_HAS_AXI_WUSER + 0 + + + C_HAS_AXI_BUSER + 0 + + + C_HAS_AXI_ARUSER + 0 + + + C_HAS_AXI_RUSER + 0 + + + C_AXI_ARUSER_WIDTH + 1 + + + C_AXI_AWUSER_WIDTH + 1 + + + C_AXI_WUSER_WIDTH + 1 + + + C_AXI_BUSER_WIDTH + 1 + + + C_AXI_RUSER_WIDTH + 1 + + + C_HAS_AXIS_TDATA + 1 + + + C_HAS_AXIS_TID + 0 + + + C_HAS_AXIS_TDEST + 0 + + + C_HAS_AXIS_TUSER + 1 + + + C_HAS_AXIS_TREADY + 1 + + + C_HAS_AXIS_TLAST + 0 + + + C_HAS_AXIS_TSTRB + 0 + + + C_HAS_AXIS_TKEEP + 0 + + + C_AXIS_TDATA_WIDTH + 8 + + + C_AXIS_TID_WIDTH + 1 + + + C_AXIS_TDEST_WIDTH + 1 + + + C_AXIS_TUSER_WIDTH + 4 + + + C_AXIS_TSTRB_WIDTH + 1 + + + C_AXIS_TKEEP_WIDTH + 1 + + + C_WACH_TYPE + 0 + + + C_WDCH_TYPE + 0 + + + C_WRCH_TYPE + 0 + + + C_RACH_TYPE + 0 + + + C_RDCH_TYPE + 0 + + + C_AXIS_TYPE + 0 + + + C_IMPLEMENTATION_TYPE_WACH + 1 + + + C_IMPLEMENTATION_TYPE_WDCH + 1 + + + C_IMPLEMENTATION_TYPE_WRCH + 1 + + + C_IMPLEMENTATION_TYPE_RACH + 1 + + + C_IMPLEMENTATION_TYPE_RDCH + 1 + + + C_IMPLEMENTATION_TYPE_AXIS + 1 + + + C_APPLICATION_TYPE_WACH + 0 + + + C_APPLICATION_TYPE_WDCH + 0 + + + C_APPLICATION_TYPE_WRCH + 0 + + + C_APPLICATION_TYPE_RACH + 0 + + + C_APPLICATION_TYPE_RDCH + 0 + + + C_APPLICATION_TYPE_AXIS + 0 + + + C_PRIM_FIFO_TYPE_WACH + 512x36 + + + C_PRIM_FIFO_TYPE_WDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_WRCH + 512x36 + + + C_PRIM_FIFO_TYPE_RACH + 512x36 + + + C_PRIM_FIFO_TYPE_RDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_AXIS + 1kx18 + + + C_USE_ECC_WACH + 0 + + + C_USE_ECC_WDCH + 0 + + + C_USE_ECC_WRCH + 0 + + + C_USE_ECC_RACH + 0 + + + C_USE_ECC_RDCH + 0 + + + C_USE_ECC_AXIS + 0 + + + C_ERROR_INJECTION_TYPE_WACH + 0 + + + C_ERROR_INJECTION_TYPE_WDCH + 0 + + + C_ERROR_INJECTION_TYPE_WRCH + 0 + + + C_ERROR_INJECTION_TYPE_RACH + 0 + + + C_ERROR_INJECTION_TYPE_RDCH + 0 + + + C_ERROR_INJECTION_TYPE_AXIS + 0 + + + C_DIN_WIDTH_WACH + 1 + + + C_DIN_WIDTH_WDCH + 64 + + + C_DIN_WIDTH_WRCH + 2 + + + C_DIN_WIDTH_RACH + 32 + + + C_DIN_WIDTH_RDCH + 64 + + + C_DIN_WIDTH_AXIS + 1 + + + C_WR_DEPTH_WACH + 16 + + + C_WR_DEPTH_WDCH + 1024 + + + C_WR_DEPTH_WRCH + 16 + + + C_WR_DEPTH_RACH + 16 + + + C_WR_DEPTH_RDCH + 1024 + + + C_WR_DEPTH_AXIS + 1024 + + + C_WR_PNTR_WIDTH_WACH + 4 + + + C_WR_PNTR_WIDTH_WDCH + 10 + + + C_WR_PNTR_WIDTH_WRCH + 4 + + + C_WR_PNTR_WIDTH_RACH + 4 + + + C_WR_PNTR_WIDTH_RDCH + 10 + + + C_WR_PNTR_WIDTH_AXIS + 10 + + + C_HAS_DATA_COUNTS_WACH + 0 + + + C_HAS_DATA_COUNTS_WDCH + 0 + + + C_HAS_DATA_COUNTS_WRCH + 0 + + + C_HAS_DATA_COUNTS_RACH + 0 + + + C_HAS_DATA_COUNTS_RDCH + 0 + + + C_HAS_DATA_COUNTS_AXIS + 0 + + + C_HAS_PROG_FLAGS_WACH + 0 + + + C_HAS_PROG_FLAGS_WDCH + 0 + + + C_HAS_PROG_FLAGS_WRCH + 0 + + + C_HAS_PROG_FLAGS_RACH + 0 + + + C_HAS_PROG_FLAGS_RDCH + 0 + + + C_HAS_PROG_FLAGS_AXIS + 0 + + + C_PROG_FULL_TYPE_WACH + 0 + + + C_PROG_FULL_TYPE_WDCH + 0 + + + C_PROG_FULL_TYPE_WRCH + 0 + + + C_PROG_FULL_TYPE_RACH + 0 + + + C_PROG_FULL_TYPE_RDCH + 0 + + + C_PROG_FULL_TYPE_AXIS + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WRCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_AXIS + 1023 + + + C_PROG_EMPTY_TYPE_WACH + 0 + + + C_PROG_EMPTY_TYPE_WDCH + 0 + + + C_PROG_EMPTY_TYPE_WRCH + 0 + + + C_PROG_EMPTY_TYPE_RACH + 0 + + + C_PROG_EMPTY_TYPE_RDCH + 0 + + + C_PROG_EMPTY_TYPE_AXIS + 0 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS + 1022 + + + C_REG_SLICE_MODE_WACH + 0 + + + C_REG_SLICE_MODE_WDCH + 0 + + + C_REG_SLICE_MODE_WRCH + 0 + + + C_REG_SLICE_MODE_RACH + 0 + + + C_REG_SLICE_MODE_RDCH + 0 + + + C_REG_SLICE_MODE_AXIS + 0 + + + + + + choice_list_087d29fa + 0 + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_165ed04b + 64 + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_a0d0de43 + 64 + 8 + 16 + 32 + 64 + + + choice_list_bf1143fa + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32768 + 65536 + 131072 + + + choice_pairs_0721dec1 + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Multiple_Programmable_Empty_Threshold_Constants + Single_Programmable_Empty_Threshold_Input_Port + Multiple_Programmable_Empty_Threshold_Input_Ports + + + choice_pairs_08e28d5f + Active_High + Active_Low + + + choice_pairs_2d5d8925 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + Common_Clock_Shift_Register + Common_Clock_Builtin_FIFO + Independent_Clocks_Block_RAM + Independent_Clocks_Distributed_RAM + Independent_Clocks_Builtin_FIFO + + + choice_pairs_3c123ec0 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + + + choice_pairs_53eba4dc + Native + AXI_MEMORY_MAPPED + AXI_STREAM + + + choice_pairs_541ed8d9 + Embedded_Reg + Fabric_Reg + Both + + + choice_pairs_5548b404 + Common_Clock + Independent_Clock + + + choice_pairs_5f1451ad + Standard_FIFO + First_Word_Fall_Through + + + choice_pairs_619f3529 + AXI4 + AXI3 + AXI4_Lite + + + choice_pairs_8334cf20 + Data_FIFO + Packet_FIFO + Low_Latency_Data_FIFO + + + choice_pairs_88535724 + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Multiple_Programmable_Full_Threshold_Constants + Single_Programmable_Full_Threshold_Input_Port + Multiple_Programmable_Full_Threshold_Input_Ports + + + choice_pairs_9b232fe1 + Slave_Interface_Clock_Enable + Master_Interface_Clock_Enable + + + choice_pairs_a8c5818a + Fully_Registered + Light_Weight + + + choice_pairs_ae1178b5 + Asynchronous_Reset + Synchronous_Reset + + + choice_pairs_b3e9d19b + FIFO + Register_Slice + Pass_Through_Wire + + + choice_pairs_bec132cf + FIFO + Register_Slice + + + choice_pairs_c94a1851 + Hard_ECC + Soft_ECC + + + choice_pairs_ccb14e2b + READ_WRITE + READ_ONLY + WRITE_ONLY + + + choice_pairs_eb98f74b + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Single_Programmable_Empty_Threshold_Input_Port + + + choice_pairs_ec2b452f + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Single_Programmable_Full_Threshold_Input_Port + + + The FIFO Generator is a parameterizable first-in/first-out memory queue generator. Use it to generate resource and performance optimized FIFOs with common or independent read/write clock domains, and optional fixed or programmable full and empty flags and handshaking signals. Choose from a selection of memory resource types for implementation. Optional Hamming code based error detection and correction as well as error injection capability for system test help to insure data integrity. FIFO width and depth are parameterizable, and for native interface FIFOs, asymmetric read and write port widths are also supported. + + + Component_Name + fifo_w64_d16 + + + + true + + + + + + Fifo_Implementation + Common_Clock_Block_RAM + + + + true + + + + + + synchronization_stages + 2 + + + + true + + + + + + synchronization_stages_axi + 2 + + + + true + + + + + + INTERFACE_TYPE + Native + + + + true + + + + + + Performance_Options + First_Word_Fall_Through + + + + true + + + + + + asymmetric_port_width + false + + + + false + + + + + + Input_Data_Width + 64 + + + + true + + + + + + Input_Depth + 16 + + + + true + + + + + + Output_Data_Width + 64 + + + + true + + + + + + Output_Depth + 16 + + + + false + + + + + + Enable_ECC + false + + + + true + + + + + + Use_Embedded_Registers + false + + + + true + + + + + + Reset_Pin + true + + + + true + + + + + + Enable_Reset_Synchronization + true + + + + false + + + + + + Reset_Type + Synchronous_Reset + + + + true + + + + + + Full_Flags_Reset_Value + 0 + + + + false + + + + + + Use_Dout_Reset + true + + + + true + + + + + + Dout_Reset_Value + 0 + + + + true + + + + + + dynamic_power_saving + false + + + + false + + + + + + Almost_Full_Flag + false + + + + true + + + + + + Almost_Empty_Flag + false + + + + true + + + + + + Valid_Flag + false + + + + true + + + + + + Valid_Sense + Active_High + + + + false + + + + + + Underflow_Flag + false + + + + true + + + + + + Underflow_Sense + Active_High + + + + false + + + + + + Write_Acknowledge_Flag + false + + + + true + + + + + + Write_Acknowledge_Sense + Active_High + + + + false + + + + + + Overflow_Flag + false + + + + true + + + + + + Overflow_Sense + Active_High + + + + false + + + + + + Inject_Sbit_Error + false + + + + false + + + + + + Inject_Dbit_Error + false + + + + false + + + + + + ecc_pipeline_reg + false + + + + false + + + + + + Use_Extra_Logic + true + + + + false + + + + + + Data_Count + false + + + + true + + + + + + Data_Count_Width + 5 + + + + false + + + + + + Write_Data_Count + false + + + + false + + + + + + Write_Data_Count_Width + 5 + + + + false + + + + + + Read_Data_Count + false + + + + false + + + + + + Read_Data_Count_Width + 5 + + + + false + + + + + + Disable_Timing_Violations + false + + + + false + + + + + + Read_Clock_Frequency + 1 + + + + false + + + + + + Write_Clock_Frequency + 1 + + + + false + + + + + + Programmable_Full_Type + No_Programmable_Full_Threshold + + + + true + + + + + + Full_Threshold_Assert_Value + 15 + + + + false + + + + + + Full_Threshold_Negate_Value + 14 + + + + false + + + + + + Programmable_Empty_Type + No_Programmable_Empty_Threshold + + + + true + + + + + + Empty_Threshold_Assert_Value + 4 + + + + false + + + + + + Empty_Threshold_Negate_Value + 5 + + + + false + + + + + + PROTOCOL + AXI4 + + + + false + + + + + + Clock_Type_AXI + Common_Clock + + + + true + + + + + + HAS_ACLKEN + false + + + + false + + + + + + Clock_Enable_Type + Slave_Interface_Clock_Enable + + + + false + + + + + + READ_WRITE_MODE + READ_WRITE + + + + true + + + + + + ID_WIDTH + 0 + + + + false + + + + + + ADDRESS_WIDTH + 32 + + + + false + + + + + + DATA_WIDTH + 64 + + + + false + + + + + + AWUSER_Width + 0 + + + + false + + + + + + WUSER_Width + 0 + + + + false + + + + + + BUSER_Width + 0 + + + + false + + + + + + ARUSER_Width + 0 + + + + false + + + + + + RUSER_Width + 0 + + + + false + + + + + + TDATA_NUM_BYTES + 1 + + + + true + + + + + + TID_WIDTH + 0 + + + + false + + + + + + TDEST_WIDTH + 0 + + + + false + + + + + + TUSER_WIDTH + 4 + + + + false + + + + + + Enable_TREADY + true + + + + false + + + + + + Enable_TLAST + false + + + + true + + + + + + HAS_TSTRB + false + + + + false + + + + + + TSTRB_WIDTH + 1 + + + + false + + + + + + HAS_TKEEP + false + + + + false + + + + + + TKEEP_WIDTH + 1 + + + + false + + + + + + wach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wach + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wach + false + + + + false + + + + + + Inject_Sbit_Error_wach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wach + false + + + + false + + + + + + Input_Depth_wach + 16 + + + + true + + + + + + Enable_Data_Counts_wach + false + + + + false + + + + + + Programmable_Full_Type_wach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wdch + false + + + + false + + + + + + Inject_Sbit_Error_wdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wdch + false + + + + false + + + + + + Input_Depth_wdch + 1024 + + + + true + + + + + + Enable_Data_Counts_wdch + false + + + + false + + + + + + Programmable_Full_Type_wdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wrch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wrch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wrch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wrch + false + + + + false + + + + + + Inject_Sbit_Error_wrch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wrch + false + + + + false + + + + + + Input_Depth_wrch + 16 + + + + true + + + + + + Enable_Data_Counts_wrch + false + + + + false + + + + + + Programmable_Full_Type_wrch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wrch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wrch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wrch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rach + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rach + false + + + + false + + + + + + Inject_Sbit_Error_rach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rach + false + + + + false + + + + + + Input_Depth_rach + 16 + + + + true + + + + + + Enable_Data_Counts_rach + false + + + + false + + + + + + Programmable_Full_Type_rach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rdch + false + + + + false + + + + + + Inject_Sbit_Error_rdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rdch + false + + + + false + + + + + + Input_Depth_rdch + 1024 + + + + true + + + + + + Enable_Data_Counts_rdch + false + + + + false + + + + + + Programmable_Full_Type_rdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + axis_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_axis + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_axis + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_axis + false + + + + false + + + + + + Inject_Sbit_Error_axis + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_axis + Double Bit Error Injection + false + + + + false + + + + + + Input_Depth_axis + 1024 + + + + true + + + + + + Enable_Data_Counts_axis + false + + + + false + + + + + + Programmable_Full_Type_axis + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_axis + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_axis + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_axis + Empty Threshold Assert Value + 1022 + + + + false + + + + + + Register_Slice_Mode_wach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wrch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_axis + Register Slice Options + Fully_Registered + + + + true + + + + + + Underflow_Flag_AXI + Underflow Flag + false + + + + true + + + + + + Underflow_Sense_AXI + Underflow (Read Error) + Active_High + + + + true + + + + + + Overflow_Flag_AXI + Overflow Flag + false + + + + true + + + + + + Overflow_Sense_AXI + Overflow (Write Error) + Active_High + + + + true + + + + + + Disable_Timing_Violations_AXI + false + + + + true + + + + + + Add_NGC_Constraint_AXI + false + + + + true + + + + + + Enable_Common_Underflow + false + + + + true + + + + + + Enable_Common_Overflow + false + + + + true + + + + + + enable_read_pointer_increment_by2 + false + + + + true + + + + + + Use_Embedded_Registers_axis + false + + + + false + + + + + + enable_low_latency + false + + + + false + + + + + + use_dout_register + false + + + + false + + + + + + Master_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Slave_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Output_Register_Type + Embedded_Reg + + + + false + + + + + + Enable_Safety_Circuit + false + + + + false + + + + + + Enable_ECC_Type + Hard_ECC + + + + false + + + + + + C_SELECT_XPM + 0 + + + + + FIFO Generator + 4 + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x128/bram_512x128.xci b/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x128/bram_512x128.xci new file mode 100644 index 0000000..8eb7efa --- /dev/null +++ b/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x128/bram_512x128.xci @@ -0,0 +1,200 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_512x128 + + + 4096 + 9 + 9 + 1 + 4 + 0 + 1 + 9 + 1 + 0 + 2 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 13.9322 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_512x128.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 512 + 512 + 128 + 128 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 512 + 512 + NO_CHANGE + READ_FIRST + 128 + 128 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_512x128 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 128 + 128 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 512 + 128 + 128 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x128/bram_512x128.xml b/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x128/bram_512x128.xml new file mode 100644 index 0000000..4ae77e5 --- /dev/null +++ b/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x128/bram_512x128.xml @@ -0,0 +1,3399 @@ + + + xilinx.com + customized_ip + bram_512x128 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 8 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 127 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 127 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 8 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 127 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 127 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 8 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 127 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 127 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 8 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_512x128.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 128 + + + C_READ_WIDTH_A + 128 + + + C_WRITE_DEPTH_A + 512 + + + C_READ_DEPTH_A + 512 + + + C_ADDRA_WIDTH + 9 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 128 + + + C_READ_WIDTH_B + 128 + + + C_WRITE_DEPTH_B + 512 + + + C_READ_DEPTH_B + 512 + + + C_ADDRB_WIDTH + 9 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 2 + + + C_COUNT_18K_BRAM + 0 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 13.9322 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_68be50e5 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_512x128 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 128 + + + + true + + + + + + Write_Depth_A + 512 + + + + true + + + + + + Read_Width_A + 128 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 128 + + + + true + + + + + + Read_Width_B + 128 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x32/bram_512x32.xci b/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x32/bram_512x32.xci new file mode 100644 index 0000000..aa17943 --- /dev/null +++ b/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x32/bram_512x32.xci @@ -0,0 +1,200 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_512x32 + + + 4096 + 9 + 9 + 1 + 4 + 0 + 1 + 9 + 1 + 1 + 0 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 3.68295 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_512x32.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 512 + 512 + 32 + 32 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 512 + 512 + NO_CHANGE + READ_FIRST + 32 + 32 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_512x32 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 32 + 32 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 512 + 32 + 32 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x32/bram_512x32.xml b/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x32/bram_512x32.xml new file mode 100644 index 0000000..5aac151 --- /dev/null +++ b/piton/design/chip/tile/l15/xilinx/zc706/ip_cores/bram_512x32/bram_512x32.xml @@ -0,0 +1,3399 @@ + + + xilinx.com + customized_ip + bram_512x32 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 8 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 8 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 8 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 8 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_512x32.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 32 + + + C_READ_WIDTH_A + 32 + + + C_WRITE_DEPTH_A + 512 + + + C_READ_DEPTH_A + 512 + + + C_ADDRA_WIDTH + 9 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 32 + + + C_READ_WIDTH_B + 32 + + + C_WRITE_DEPTH_B + 512 + + + C_READ_DEPTH_B + 512 + + + C_ADDRB_WIDTH + 9 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 0 + + + C_COUNT_18K_BRAM + 1 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 3.68295 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_784e1e2a + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_512x32 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 32 + + + + true + + + + + + Write_Depth_A + 512 + + + + true + + + + + + Read_Width_A + 32 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 32 + + + + true + + + + + + Read_Width_B + 32 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_1024x64/bram_1024x64.xci b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_1024x64/bram_1024x64.xci new file mode 100644 index 0000000..85fe12e --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_1024x64/bram_1024x64.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_1024x64 + + + 4096 + 10 + 10 + 1 + 4 + 0 + 1 + 9 + 1 + 0 + 2 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 10.882749 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_1024x64.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 1024 + 1024 + 64 + 64 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1024 + 1024 + NO_CHANGE + READ_FIRST + 64 + 64 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_1024x64 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 64 + 64 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 1024 + 64 + 64 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_1024x64/bram_1024x64.xml b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_1024x64/bram_1024x64.xml new file mode 100644 index 0000000..4c9674c --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_1024x64/bram_1024x64.xml @@ -0,0 +1,3397 @@ + + + xilinx.com + customized_ip + bram_1024x64 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_1024x64.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 64 + + + C_READ_WIDTH_A + 64 + + + C_WRITE_DEPTH_A + 1024 + + + C_READ_DEPTH_A + 1024 + + + C_ADDRA_WIDTH + 10 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 64 + + + C_READ_WIDTH_B + 64 + + + C_WRITE_DEPTH_B + 1024 + + + C_READ_DEPTH_B + 1024 + + + C_ADDRB_WIDTH + 10 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 2 + + + C_COUNT_18K_BRAM + 0 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 10.882749 mW + + + + + + choice_list_0e6ad450 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_1024x64 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 64 + + + + true + + + + + + Write_Depth_A + 1024 + + + + true + + + + + + Read_Width_A + 64 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 64 + + + + true + + + + + + Read_Width_B + 64 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2048x144/bram_2048x144.xci b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2048x144/bram_2048x144.xci new file mode 100644 index 0000000..f152826 --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2048x144/bram_2048x144.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_2048x144 + + + 4096 + 11 + 11 + 1 + 4 + 0 + 1 + 9 + 1 + 0 + 8 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 40.295204 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_2048x144.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 2048 + 2048 + 144 + 144 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2048 + 2048 + NO_CHANGE + READ_FIRST + 144 + 144 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_2048x144 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 144 + 144 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 2048 + 144 + 144 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2048x144/bram_2048x144.xml b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2048x144/bram_2048x144.xml new file mode 100644 index 0000000..33b6406 --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2048x144/bram_2048x144.xml @@ -0,0 +1,3396 @@ + + + xilinx.com + customized_ip + bram_2048x144 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_2048x144.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 144 + + + C_READ_WIDTH_A + 144 + + + C_WRITE_DEPTH_A + 2048 + + + C_READ_DEPTH_A + 2048 + + + C_ADDRA_WIDTH + 11 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 144 + + + C_READ_WIDTH_B + 144 + + + C_WRITE_DEPTH_B + 2048 + + + C_READ_DEPTH_B + 2048 + + + C_ADDRB_WIDTH + 11 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 8 + + + C_COUNT_18K_BRAM + 0 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 40.295204 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_71cb065d + 9 + 18 + 36 + 72 + 144 + 288 + 576 + 1152 + 2304 + 4608 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_2048x144 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 144 + + + + true + + + + + + Write_Depth_A + 2048 + + + + true + + + + + + Read_Width_A + 144 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 144 + + + + true + + + + + + Read_Width_B + 144 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_256x104/bram_256x104.xci b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_256x104/bram_256x104.xci new file mode 100644 index 0000000..b5c0bcd --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_256x104/bram_256x104.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_256x104 + + + 4096 + 8 + 8 + 1 + 4 + 0 + 1 + 9 + 1 + 1 + 1 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 10.95625 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_256x104.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 256 + 256 + 104 + 104 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 256 + 256 + NO_CHANGE + READ_FIRST + 104 + 104 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_256x104 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 104 + 104 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 256 + 104 + 104 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_256x104/bram_256x104.xml b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_256x104/bram_256x104.xml new file mode 100644 index 0000000..97cd8c4 --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_256x104/bram_256x104.xml @@ -0,0 +1,3395 @@ + + + xilinx.com + customized_ip + bram_256x104 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 103 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 103 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 103 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 103 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 103 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 103 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_256x104.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 104 + + + C_READ_WIDTH_A + 104 + + + C_WRITE_DEPTH_A + 256 + + + C_READ_DEPTH_A + 256 + + + C_ADDRA_WIDTH + 8 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 104 + + + C_READ_WIDTH_B + 104 + + + C_WRITE_DEPTH_B + 256 + + + C_READ_DEPTH_B + 256 + + + C_ADDRB_WIDTH + 8 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 1 + + + C_COUNT_18K_BRAM + 1 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 10.95625 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_7cf1a9ce + 13 + 26 + 52 + 104 + 208 + 416 + 832 + 1664 + 3328 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_256x104 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 104 + + + + true + + + + + + Write_Depth_A + 256 + + + + true + + + + + + Read_Width_A + 104 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 104 + + + + true + + + + + + Read_Width_B + 104 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_128x176/bram_2p_128x176.xci b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_128x176/bram_2p_128x176.xci new file mode 100644 index 0000000..197d7e6 --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_128x176/bram_2p_128x176.xci @@ -0,0 +1,199 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_2p_128x176 + + + 4096 + 7 + 7 + 1 + 4 + 0 + 1 + 8 + 1 + 1 + 5 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 32.7112 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_2p_128x176.mem + no_coe_file_loaded + 0 + 0 + 2 + 0 + 1 + 128 + 128 + 176 + 176 + 0 + 0 + CE + CE + ALL + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 22 + 22 + 128 + 128 + WRITE_FIRST + WRITE_FIRST + 176 + 176 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 8 + NONE + no_coe_file_loaded + ALL + bram_2p_128x176 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + True_Dual_Port_RAM + WRITE_FIRST + WRITE_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 50 + 8kx2 + false + false + 176 + 176 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + true + false + false + false + false + false + 128 + 176 + 176 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_128x176/bram_2p_128x176.xml b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_128x176/bram_2p_128x176.xml new file mode 100644 index 0000000..a4a3b3b --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_128x176/bram_2p_128x176.xml @@ -0,0 +1,3385 @@ + + + xilinx.com + customized_ip + bram_2p_128x176 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 21 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 21 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addrb + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + doutb + + out + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 21 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 2 + + + C_BYTE_SIZE + 8 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_2p_128x176.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 1 + + + C_WEA_WIDTH + 22 + + + C_WRITE_MODE_A + WRITE_FIRST + + + C_WRITE_WIDTH_A + 176 + + + C_READ_WIDTH_A + 176 + + + C_WRITE_DEPTH_A + 128 + + + C_READ_DEPTH_A + 128 + + + C_ADDRA_WIDTH + 7 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 1 + + + C_WEB_WIDTH + 22 + + + C_WRITE_MODE_B + WRITE_FIRST + + + C_WRITE_WIDTH_B + 176 + + + C_READ_WIDTH_B + 176 + + + C_WRITE_DEPTH_B + 128 + + + C_READ_DEPTH_B + 128 + + + C_ADDRB_WIDTH + 7 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 5 + + + C_COUNT_18K_BRAM + 1 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 32.7112 mW + + + + + + choice_list_302d3091 + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5b7139a3 + 88 + 176 + 352 + 704 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_246d8066 + WRITE_FIRST + READ_FIRST + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_2p_128x176 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + True_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + false + + + + + + ECC + false + + + + false + + + + + + softecc + false + + + + false + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + true + + + + true + + + + + + Byte_Size + 8 + + + + true + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 176 + + + + true + + + + + + Write_Depth_A + 128 + + + + true + + + + + + Read_Width_A + 176 + + + + true + + + + + + Operating_Mode_A + WRITE_FIRST + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 176 + + + + true + + + + + + Read_Width_B + 176 + + + + true + + + + + + Operating_Mode_B + WRITE_FIRST + + + + true + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + true + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 50 + + + + true + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_256x176/bram_2p_256x176.xci b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_256x176/bram_2p_256x176.xci new file mode 100644 index 0000000..ace728c --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_256x176/bram_2p_256x176.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_2p_256x176 + + + 4096 + 8 + 8 + 1 + 4 + 0 + 1 + 8 + 1 + 1 + 5 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 32.7112 mW + zynq + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_2p_256x176.mem + no_coe_file_loaded + 0 + 0 + 2 + 0 + 1 + 256 + 256 + 176 + 176 + 0 + 0 + CE + CE + ALL + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 22 + 22 + 256 + 256 + WRITE_FIRST + WRITE_FIRST + 176 + 176 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 8 + NONE + no_coe_file_loaded + ALL + bram_2p_256x176 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + True_Dual_Port_RAM + WRITE_FIRST + WRITE_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 50 + 8kx2 + false + false + 176 + 176 + false + true + false + false + 0 + false + false + CE + CE + SYNC + false + true + false + false + false + false + false + 256 + 176 + 176 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_256x176/bram_2p_256x176.xml b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_256x176/bram_2p_256x176.xml new file mode 100644 index 0000000..d4a94cf --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_2p_256x176/bram_2p_256x176.xml @@ -0,0 +1,3384 @@ + + + xilinx.com + customized_ip + bram_2p_256x176 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 21 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 21 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + doutb + + out + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 21 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 175 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 2 + + + C_BYTE_SIZE + 8 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_2p_256x176.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 1 + + + C_WEA_WIDTH + 22 + + + C_WRITE_MODE_A + WRITE_FIRST + + + C_WRITE_WIDTH_A + 176 + + + C_READ_WIDTH_A + 176 + + + C_WRITE_DEPTH_A + 256 + + + C_READ_DEPTH_A + 256 + + + C_ADDRA_WIDTH + 8 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 1 + + + C_WEB_WIDTH + 22 + + + C_WRITE_MODE_B + WRITE_FIRST + + + C_WRITE_WIDTH_B + 176 + + + C_READ_WIDTH_B + 176 + + + C_WRITE_DEPTH_B + 256 + + + C_READ_DEPTH_B + 256 + + + C_ADDRB_WIDTH + 8 + + + C_HAS_MEM_OUTPUT_REGS_A + 1 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 5 + + + C_COUNT_18K_BRAM + 1 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 32.7112 mW + + + + + + choice_list_302d3091 + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5b7139a3 + 88 + 176 + 352 + 704 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_246d8066 + WRITE_FIRST + READ_FIRST + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_2p_256x176 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + True_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + false + + + + + + ECC + false + + + + false + + + + + + softecc + false + + + + false + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + true + + + + true + + + + + + Byte_Size + 8 + + + + true + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 176 + + + + true + + + + + + Write_Depth_A + 256 + + + + true + + + + + + Read_Width_A + 176 + + + + true + + + + + + Operating_Mode_A + WRITE_FIRST + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 176 + + + + true + + + + + + Read_Width_B + 176 + + + + true + + + + + + Operating_Mode_B + WRITE_FIRST + + + + true + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + true + + + + true + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEA_Pin + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + true + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 50 + + + + true + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_4096x144/bram_4096x144.xci b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_4096x144/bram_4096x144.xci new file mode 100644 index 0000000..4ebaf1c --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_4096x144/bram_4096x144.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_4096x144 + + + 4096 + 12 + 12 + 1 + 4 + 0 + 1 + 9 + 1 + 0 + 16 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 76.356808 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_4096x144.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 4096 + 4096 + 144 + 144 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 4096 + 4096 + NO_CHANGE + READ_FIRST + 144 + 144 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_4096x144 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 144 + 144 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 4096 + 144 + 144 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_4096x144/bram_4096x144.xml b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_4096x144/bram_4096x144.xml new file mode 100644 index 0000000..50bc867 --- /dev/null +++ b/piton/design/chip/tile/l2/xilinx/zc706/ip_cores/bram_4096x144/bram_4096x144.xml @@ -0,0 +1,3396 @@ + + + xilinx.com + customized_ip + bram_4096x144 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 11 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 11 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 11 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 143 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 11 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_4096x144.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 144 + + + C_READ_WIDTH_A + 144 + + + C_WRITE_DEPTH_A + 4096 + + + C_READ_DEPTH_A + 4096 + + + C_ADDRA_WIDTH + 12 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 144 + + + C_READ_WIDTH_B + 144 + + + C_WRITE_DEPTH_B + 4096 + + + C_READ_DEPTH_B + 4096 + + + C_ADDRB_WIDTH + 12 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 16 + + + C_COUNT_18K_BRAM + 0 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 76.356808 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_71cb065d + 9 + 18 + 36 + 72 + 144 + 288 + 576 + 1152 + 2304 + 4608 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_4096x144 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 144 + + + + true + + + + + + Write_Depth_A + 4096 + + + + true + + + + + + Read_Width_A + 144 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 144 + + + + true + + + + + + Read_Width_B + 144 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x132/bram_128x132.xci b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x132/bram_128x132.xci new file mode 100644 index 0000000..c136893 --- /dev/null +++ b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x132/bram_128x132.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_128x132 + + + 4096 + 7 + 7 + 1 + 4 + 0 + 1 + 9 + 1 + 0 + 2 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 14.072999 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_128x132.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 128 + 128 + 132 + 132 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 128 + 128 + NO_CHANGE + READ_FIRST + 132 + 132 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_128x132 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 132 + 132 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 128 + 132 + 132 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x132/bram_128x132.xml b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x132/bram_128x132.xml new file mode 100644 index 0000000..95067bf --- /dev/null +++ b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x132/bram_128x132.xml @@ -0,0 +1,3394 @@ + + + xilinx.com + customized_ip + bram_128x132 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 131 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 131 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 131 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 131 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 131 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 131 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_128x132.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 132 + + + C_READ_WIDTH_A + 132 + + + C_WRITE_DEPTH_A + 128 + + + C_READ_DEPTH_A + 128 + + + C_ADDRA_WIDTH + 7 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 132 + + + C_READ_WIDTH_B + 132 + + + C_WRITE_DEPTH_B + 128 + + + C_READ_DEPTH_B + 128 + + + C_ADDRB_WIDTH + 7 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 2 + + + C_COUNT_18K_BRAM + 0 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 14.072999 mW + + + + + + choice_list_3efa6a7e + 33 + 66 + 132 + 264 + 528 + 1056 + 2112 + 4224 + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_128x132 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 132 + + + + true + + + + + + Write_Depth_A + 128 + + + + true + + + + + + Read_Width_A + 132 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 132 + + + + true + + + + + + Read_Width_B + 132 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x576/bram_128x576.xci b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x576/bram_128x576.xci new file mode 100644 index 0000000..aba2bcc --- /dev/null +++ b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x576/bram_128x576.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_128x576 + + + 4096 + 7 + 7 + 1 + 4 + 0 + 1 + 9 + 1 + 0 + 8 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 57.9816 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_128x576.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 128 + 128 + 576 + 576 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 128 + 128 + NO_CHANGE + READ_FIRST + 576 + 576 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_128x576 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 576 + 576 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 128 + 576 + 576 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x576/bram_128x576.xml b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x576/bram_128x576.xml new file mode 100644 index 0000000..b744d73 --- /dev/null +++ b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x576/bram_128x576.xml @@ -0,0 +1,3395 @@ + + + xilinx.com + customized_ip + bram_128x576 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 575 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 575 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 575 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 575 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 575 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 575 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_128x576.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 576 + + + C_READ_WIDTH_A + 576 + + + C_WRITE_DEPTH_A + 128 + + + C_READ_DEPTH_A + 128 + + + C_ADDRA_WIDTH + 7 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 576 + + + C_READ_WIDTH_B + 576 + + + C_WRITE_DEPTH_B + 128 + + + C_READ_DEPTH_B + 128 + + + C_ADDRB_WIDTH + 7 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 8 + + + C_COUNT_18K_BRAM + 0 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 57.9816 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_list_cf86248f + 18 + 36 + 72 + 144 + 288 + 576 + 1152 + 2304 + 4608 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_128x576 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 576 + + + + true + + + + + + Write_Depth_A + 128 + + + + true + + + + + + Read_Width_A + 576 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 576 + + + + true + + + + + + Read_Width_B + 576 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x78/bram_128x78.xci b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x78/bram_128x78.xci new file mode 100644 index 0000000..5c2d25b --- /dev/null +++ b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x78/bram_128x78.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_128x78 + + + 4096 + 7 + 7 + 1 + 4 + 0 + 1 + 9 + 1 + 1 + 1 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 10.041051 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_128x78.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 128 + 128 + 78 + 78 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 128 + 128 + NO_CHANGE + READ_FIRST + 78 + 78 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_128x78 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 78 + 78 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 128 + 78 + 78 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x78/bram_128x78.xml b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x78/bram_128x78.xml new file mode 100644 index 0000000..9577c1f --- /dev/null +++ b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_128x78/bram_128x78.xml @@ -0,0 +1,3393 @@ + + + xilinx.com + customized_ip + bram_128x78 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 77 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 77 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 77 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 77 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 77 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 77 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_128x78.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 78 + + + C_READ_WIDTH_A + 78 + + + C_WRITE_DEPTH_A + 128 + + + C_READ_DEPTH_A + 128 + + + C_ADDRA_WIDTH + 7 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 78 + + + C_READ_WIDTH_B + 78 + + + C_WRITE_DEPTH_B + 128 + + + C_READ_DEPTH_B + 128 + + + C_ADDRB_WIDTH + 7 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 1 + + + C_COUNT_18K_BRAM + 1 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 10.041051 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_79835d7a + 39 + 78 + 156 + 312 + 624 + 1248 + 2496 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_128x78 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 78 + + + + true + + + + + + Write_Depth_A + 128 + + + + true + + + + + + Read_Width_A + 78 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 78 + + + + true + + + + + + Read_Width_B + 78 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_256x272/bram_256x272.xci b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_256x272/bram_256x272.xci new file mode 100644 index 0000000..8523d1b --- /dev/null +++ b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_256x272/bram_256x272.xci @@ -0,0 +1,198 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_256x272 + + + 4096 + 8 + 8 + 1 + 4 + 0 + 1 + 9 + 1 + 0 + 4 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 28.4276 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_256x272.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 256 + 256 + 272 + 272 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 256 + 256 + NO_CHANGE + READ_FIRST + 272 + 272 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_256x272 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 272 + 272 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 256 + 272 + 272 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_256x272/bram_256x272.xml b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_256x272/bram_256x272.xml new file mode 100644 index 0000000..d269d6d --- /dev/null +++ b/piton/design/chip/tile/sparc/srams/xilinx/zc706/ip_cores/bram_256x272/bram_256x272.xml @@ -0,0 +1,3395 @@ + + + xilinx.com + customized_ip + bram_256x272 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 271 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 271 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 271 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 271 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 271 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 271 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_256x272.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 272 + + + C_READ_WIDTH_A + 272 + + + C_WRITE_DEPTH_A + 256 + + + C_READ_DEPTH_A + 256 + + + C_ADDRA_WIDTH + 8 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 272 + + + C_READ_WIDTH_B + 272 + + + C_WRITE_DEPTH_B + 256 + + + C_READ_DEPTH_B + 256 + + + C_ADDRB_WIDTH + 8 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 4 + + + C_COUNT_18K_BRAM + 0 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 28.4276 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_84c88649 + 17 + 34 + 68 + 136 + 272 + 544 + 1088 + 2176 + 4352 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_256x272 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 272 + + + + true + + + + + + Write_Depth_A + 256 + + + + true + + + + + + Read_Width_A + 272 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 272 + + + + true + + + + + + Read_Width_B + 272 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chip/xilinx/zc706/ip_cores/clk_mmcm_chip/clk_mmcm_chip.xci b/piton/design/chip/xilinx/zc706/ip_cores/clk_mmcm_chip/clk_mmcm_chip.xci new file mode 100644 index 0000000..ff129cf --- /dev/null +++ b/piton/design/chip/xilinx/zc706/ip_cores/clk_mmcm_chip/clk_mmcm_chip.xci @@ -0,0 +1,632 @@ + + + xilinx.com + xci + unknown + 1.0 + + + clk_mmcm_chip + + + MMCM + cddcdone + cddcreq + 0000 + 0000 + clkfb_in_n + clkfb_in + clkfb_in_p + SINGLE + clkfb_out_n + clkfb_out + clkfb_out_p + clkfb_stopped + 50.0 + 100.0 + 0000 + 0000 + 60.000 + 0000 + 0000 + 100.000 + BUFG + 50.0 + false + 60.000 + 0.000 + 50.0 + 60.000 + 0.000 + 1 + 0000 + 0000 + 100.000 + BUFG + 50.000 + false + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + 0000 + 0000 + 100.000 + BUFG + 50.000 + false + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + 0000 + 0000 + 100.000 + BUFG + 50.000 + false + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + 0000 + 0000 + 100.000 + BUFG + 50.000 + false + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + 0000 + 0000 + 100.000 + BUFG + 50.000 + false + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + BUFG + 50.000 + false + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + VCO + clk_in_sel + core_ref_clk + clk_out2 + clk_out3 + clk_out4 + clk_out5 + clk_out6 + clk_out7 + CLK_VALID + NA + daddr + dclk + den + din + 0000 + 1 + 0.6 + 0.6 + 0.6 + 0.6 + 0.6 + 0.6 + dout + drdy + dwe + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + FDBK_AUTO + 0000 + 0000 + 0 + Input Clock Freq (MHz) Input Jitter (UI) + __primary_________200.000____________0.010 + no_secondary_input_clock + input_clk_stopped + 0 + Units_MHz + No_Jitter + locked + 0000 + 0000 + 0000 + false + false + false + false + false + false + false + false + OPTIMIZED + 49.875 + 0.000 + FALSE + 5.000 + 10.0 + 16.625 + 0.500 + 0.000 + FALSE + 1 + 0.500 + 0.000 + FALSE + 1 + 0.500 + 0.000 + FALSE + 1 + 0.500 + 0.000 + FALSE + FALSE + 1 + 0.500 + 0.000 + FALSE + 1 + 0.500 + 0.000 + FALSE + 1 + 0.500 + 0.000 + FALSE + FALSE + ZHOLD + 10 + None + 0.010 + 0.010 + FALSE + 1 + Output Output Phase Duty Cycle Pk-to-Pk Phase + Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) + core_ref_clk____60.000______0.000______50.0______257.607____293.793 + no_CLK_OUT2_output + no_CLK_OUT3_output + no_CLK_OUT4_output + no_CLK_OUT5_output + no_CLK_OUT6_output + no_CLK_OUT7_output + 0 + 0 + WAVEFORM + UNKNOWN + false + false + false + false + false + OPTIMIZED + 1 + 0.000 + 1.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + CLKFBOUT + SYSTEM_SYNCHRONOUS + 1 + No notes + 0.010 + power_down + 0000 + 1 + clk_in1 + MMCM + AUTO + 200.000 + 0.010 + 10.000 + Differential_clock_capable_pin + psclk + psdone + psen + psincdec + 100.0 + 0 + reset + 100.000 + 0.010 + 10.000 + clk_in2 + Single_ended_clock_capable_pin + CENTER_HIGH + 4000 + 0.004 + STATUS + 11 + 32 + 100.0 + 100.0 + 100.0 + 100.0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + clk_mmcm_chip + MMCM + false + empty + cddcdone + cddcreq + clkfb_in_n + clkfb_in + clkfb_in_p + SINGLE + clkfb_out_n + clkfb_out + clkfb_out_p + clkfb_stopped + 50.0 + 0.010 + 100.0 + 0.010 + BUFG + 257.607 + false + 293.793 + 50.0 + 60.000 + 0.000 + 1 + true + BUFG + 112.316 + false + 89.971 + 50.000 + 100.000 + 0.000 + 1 + false + BUFG + 67.587 + false + 266.425 + 50.000 + 100.000 + 0.000 + 1 + false + BUFG + 67.587 + false + 266.425 + 50.000 + 100.000 + 0.000 + 1 + false + BUFG + 0.0 + false + 0.0 + 50.000 + 100.000 + 0.000 + 1 + false + BUFG + 0.0 + false + 0.0 + 50.000 + 100.000 + 0.000 + 1 + false + BUFG + 0.0 + false + 0.0 + 50.000 + 100.000 + 0.000 + 1 + false + 600.000 + Custom + Custom + clk_in_sel + core_ref_clk + false + clk_out2 + false + clk_out3 + false + clk_out4 + false + clk_out5 + false + clk_out6 + false + clk_out7 + false + CLK_VALID + auto + clk_mmcm_chip + daddr + dclk + den + Custom + Custom + din + dout + drdy + dwe + false + false + false + false + false + false + false + false + false + FDBK_AUTO + input_clk_stopped + frequency + Enable_AXI + Units_MHz + Units_UI + UI + No_Jitter + locked + OPTIMIZED + 49.875 + 0.000 + false + 5.000 + 10.0 + 16.625 + 0.500 + 0.000 + false + 1 + 0.500 + 0.000 + false + 1 + 0.500 + 0.000 + false + 1 + 0.500 + 0.000 + false + false + 1 + 0.500 + 0.000 + false + 1 + 0.500 + 0.000 + false + 1 + 0.500 + 0.000 + false + false + ZHOLD + 10 + None + 0.010 + 0.010 + false + 1 + false + false + WAVEFORM + false + UNKNOWN + OPTIMIZED + 4 + 0.000 + 10.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + CLKFBOUT + SYSTEM_SYNCHRONOUS + 1 + None + 0.010 + power_down + 1 + clk_in1 + MMCM + mmcm_adv + 200.000 + 0.010 + 10.000 + Differential_clock_capable_pin + psclk + psdone + psen + psincdec + 100.0 + REL_PRIMARY + Custom + reset + ACTIVE_HIGH + 100.000 + 0.010 + 10.000 + clk_in2 + Single_ended_clock_capable_pin + CENTER_HIGH + 250 + 0.004 + STATUS + empty + 100.0 + 100.0 + 100.0 + 100.0 + false + false + false + false + false + false + false + true + false + false + true + false + false + false + true + false + true + false + false + false + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 0 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chip/xilinx/zc706/ip_cores/clk_mmcm_chip/clk_mmcm_chip.xml b/piton/design/chip/xilinx/zc706/ip_cores/clk_mmcm_chip/clk_mmcm_chip.xml new file mode 100644 index 0000000..2ccb220 --- /dev/null +++ b/piton/design/chip/xilinx/zc706/ip_cores/clk_mmcm_chip/clk_mmcm_chip.xml @@ -0,0 +1,3879 @@ + + + xilinx.com + customized_ip + clk_mmcm_chip + 1.0 + + + s_axi_lite + S_AXI_LITE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARREADY + + + s_axi_arready + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWREADY + + + s_axi_awready + + + + + AWVALID + + + s_axi_awvalid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + s_axi_aclk + s_axi_aclk + + + + + + + CLK + + + s_axi_aclk + + + + + + ASSOCIATED_BUSIF + s_axi_lite + + + ASSOCIATED_RESET + aresetn + + + + + + false + + + + + + ref_clk + ref_clk + + + + + + + CLK + + + ref_clk + + + + + + + false + + + + + + s_axi_resetn + S_AXI_RESETN + + + + + + + RST + + + s_axi_aresetn + + + + + + ASSOCIATED_RESET + aresetn + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + intr + Intr + + + + + + + INTERRUPT + + + ip2intc_irpt + + + + + + + false + + + + + + CLK_IN1_D + CLK_IN1_D + Differential Clock input + + + + + + + CLK_N + + + clk_in1_n + + + + + CLK_P + + + clk_in1_p + + + + + + BOARD.ASSOCIATED_PARAM + CLK_IN1_BOARD_INTERFACE + + + + required + + + + + + + + + true + + + + + + CLK_IN2_D + CLK_IN2_D + Differential Clock input + + + + + + + CLK_N + + + clk_in2_n + + + + + CLK_P + + + clk_in2_p + + + + + + BOARD.ASSOCIATED_PARAM + CLK_IN2_BOARD_INTERFACE + + + + required + + + + + + + + + false + + + + + + CLKFB_IN_D + CLKFB_IN_D + Differential Feedback Clock input + + + + + + + CLK_N + + + clkfb_in_n + + + + + CLK_P + + + clkfb_in_p + + + + + + + false + + + + + + CLKFB_OUT_D + CLKFB_OUT_D + Differential Feeback Clock Output + + + + + + + CLK_N + + + clkfb_out_n + + + + + CLK_P + + + clkfb_out_p + + + + + + + false + + + + + + reset + reset + + + + + + + RST + + + reset + + + + + + POLARITY + ACTIVE_HIGH + + + BOARD.ASSOCIATED_PARAM + RESET_BOARD_INTERFACE + + + + + + true + + + + + + resetn + resetn + + + + + + + RST + + + resetn + + + + + + POLARITY + ACTIVE_LOW + + + BOARD.ASSOCIATED_PARAM + RESET_BOARD_INTERFACE + + + + + + false + + + + + + clock_CLK_OUT1 + + + + + + + CLK_OUT1 + + + core_ref_clk + + + + + + + + + xilinx_elaborateports + Elaborate Ports + :vivado.xilinx.com:elaborate.ports + + + outputProductCRC + 7:b527fcb3 + + + + + + + s_axi_aclk + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_aresetn + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 10 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_wdata + + in + + 31 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 3 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 10 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_rdata + + out + + 31 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_in1_p + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + true + + + + + + clk_in1_n + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + true + + + + + + clk_in2_p + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_in2_n + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clkfb_in_p + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clkfb_in_n + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clkfb_out_p + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + clkfb_out_n + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + reset + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + true + + + + + + resetn + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + ref_clk + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_stop + + out + + 3 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_glitch + + out + + 3 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + interrupt + + out + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_oor + + out + + 3 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + user_clk0 + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + user_clk1 + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + user_clk2 + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + user_clk3 + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + core_ref_clk + + out + + + std_logic + xilinx_elaborateports + + + + + + locked + + out + + + std_logic + xilinx_elaborateports + + + + + + + + C_CLKOUT2_USED + 0 + + + C_USER_CLK_FREQ0 + 100.0 + + + C_AUTO_PRIMITIVE + MMCM + + + C_USER_CLK_FREQ1 + 100.0 + + + C_USER_CLK_FREQ2 + 100.0 + + + C_USER_CLK_FREQ3 + 100.0 + + + C_ENABLE_CLOCK_MONITOR + 0 + + + C_ENABLE_USER_CLOCK0 + 0 + + + C_ENABLE_USER_CLOCK1 + 0 + + + C_ENABLE_USER_CLOCK2 + 0 + + + C_ENABLE_USER_CLOCK3 + 0 + + + C_Enable_PLL0 + 0 + + + C_Enable_PLL1 + 0 + + + C_REF_CLK_FREQ + 100.0 + + + C_PRECISION + 1 + + + C_CLKOUT3_USED + 0 + + + C_CLKOUT4_USED + 0 + + + C_CLKOUT5_USED + 0 + + + C_CLKOUT6_USED + 0 + + + C_CLKOUT7_USED + 0 + + + C_USE_CLKOUT1_BAR + 0 + + + C_USE_CLKOUT2_BAR + 0 + + + C_USE_CLKOUT3_BAR + 0 + + + C_USE_CLKOUT4_BAR + 0 + + + c_component_name + clk_mmcm_chip + + + C_PLATFORM + UNKNOWN + + + C_USE_FREQ_SYNTH + 1 + + + C_USE_PHASE_ALIGNMENT + 1 + + + C_PRIM_IN_JITTER + 0.010 + + + C_SECONDARY_IN_JITTER + 0.010 + + + C_JITTER_SEL + No_Jitter + + + C_USE_MIN_POWER + 0 + + + C_USE_MIN_O_JITTER + 0 + + + C_USE_MAX_I_JITTER + 0 + + + C_USE_DYN_PHASE_SHIFT + 0 + + + C_USE_INCLK_SWITCHOVER + 0 + + + C_USE_DYN_RECONFIG + 0 + + + C_USE_SPREAD_SPECTRUM + 0 + + + C_USE_FAST_SIMULATION + 0 + + + C_PRIMTYPE_SEL + AUTO + + + C_USE_CLK_VALID + 0 + + + C_PRIM_IN_FREQ + 200.000 + + + C_PRIM_IN_TIMEPERIOD + 10.000 + + + C_IN_FREQ_UNITS + Units_MHz + + + C_SECONDARY_IN_FREQ + 100.000 + + + C_SECONDARY_IN_TIMEPERIOD + 10.000 + + + C_FEEDBACK_SOURCE + FDBK_AUTO + + + C_PRIM_SOURCE + Differential_clock_capable_pin + + + C_PHASESHIFT_MODE + WAVEFORM + + + C_SECONDARY_SOURCE + Single_ended_clock_capable_pin + + + C_CLKFB_IN_SIGNALING + SINGLE + + + C_USE_RESET + 1 + + + C_RESET_LOW + 0 + + + C_USE_LOCKED + 1 + + + C_USE_INCLK_STOPPED + 0 + + + C_USE_CLKFB_STOPPED + 0 + + + C_USE_POWER_DOWN + 0 + + + C_USE_STATUS + 0 + + + C_USE_FREEZE + 0 + + + C_NUM_OUT_CLKS + 1 + + + C_CLKOUT1_DRIVES + BUFG + + + C_CLKOUT2_DRIVES + BUFG + + + C_CLKOUT3_DRIVES + BUFG + + + C_CLKOUT4_DRIVES + BUFG + + + C_CLKOUT5_DRIVES + BUFG + + + C_CLKOUT6_DRIVES + BUFG + + + C_CLKOUT7_DRIVES + BUFG + + + C_INCLK_SUM_ROW0 + Input Clock Freq (MHz) Input Jitter (UI) + + + C_INCLK_SUM_ROW1 + __primary_________200.000____________0.010 + + + C_INCLK_SUM_ROW2 + no_secondary_input_clock + + + C_OUTCLK_SUM_ROW0A + C Outclk Sum Row0a + Output Output Phase Duty Cycle Pk-to-Pk Phase + + + C_OUTCLK_SUM_ROW0B + Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) + + + C_OUTCLK_SUM_ROW1 + core_ref_clk____60.000______0.000______50.0______257.607____293.793 + + + C_OUTCLK_SUM_ROW2 + no_CLK_OUT2_output + + + C_OUTCLK_SUM_ROW3 + no_CLK_OUT3_output + + + C_OUTCLK_SUM_ROW4 + no_CLK_OUT4_output + + + C_OUTCLK_SUM_ROW5 + no_CLK_OUT5_output + + + C_OUTCLK_SUM_ROW6 + no_CLK_OUT6_output + + + C_OUTCLK_SUM_ROW7 + no_CLK_OUT7_output + + + C_CLKOUT1_REQUESTED_OUT_FREQ + 60.000 + + + C_CLKOUT2_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT3_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT4_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT5_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT6_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT7_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT1_REQUESTED_PHASE + 0.000 + + + C_CLKOUT2_REQUESTED_PHASE + 0.000 + + + C_CLKOUT3_REQUESTED_PHASE + 0.000 + + + C_CLKOUT4_REQUESTED_PHASE + 0.000 + + + C_CLKOUT5_REQUESTED_PHASE + 0.000 + + + C_CLKOUT6_REQUESTED_PHASE + 0.000 + + + C_CLKOUT7_REQUESTED_PHASE + 0.000 + + + C_CLKOUT1_REQUESTED_DUTY_CYCLE + 50.0 + + + C_CLKOUT2_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT3_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT4_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT5_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT6_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT7_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT1_OUT_FREQ + 60.000 + + + C_CLKOUT2_OUT_FREQ + 100.000 + + + C_CLKOUT3_OUT_FREQ + 100.000 + + + C_CLKOUT4_OUT_FREQ + 100.000 + + + C_CLKOUT5_OUT_FREQ + 100.000 + + + C_CLKOUT6_OUT_FREQ + 100.000 + + + C_CLKOUT7_OUT_FREQ + 100.000 + + + C_CLKOUT1_PHASE + 0.000 + + + C_CLKOUT2_PHASE + 0.000 + + + C_CLKOUT3_PHASE + 0.000 + + + C_CLKOUT4_PHASE + 0.000 + + + C_CLKOUT5_PHASE + 0.000 + + + C_CLKOUT6_PHASE + 0.000 + + + C_CLKOUT7_PHASE + 0.000 + + + C_CLKOUT1_DUTY_CYCLE + 50.0 + + + C_CLKOUT2_DUTY_CYCLE + 50.000 + + + C_CLKOUT3_DUTY_CYCLE + 50.000 + + + C_CLKOUT4_DUTY_CYCLE + 50.000 + + + C_CLKOUT5_DUTY_CYCLE + 50.000 + + + C_CLKOUT6_DUTY_CYCLE + 50.000 + + + C_CLKOUT7_DUTY_CYCLE + 50.000 + + + C_USE_SAFE_CLOCK_STARTUP + 0 + + + C_USE_CLOCK_SEQUENCING + 0 + + + C_CLKOUT1_SEQUENCE_NUMBER + 1 + + + C_CLKOUT2_SEQUENCE_NUMBER + 1 + + + C_CLKOUT3_SEQUENCE_NUMBER + 1 + + + C_CLKOUT4_SEQUENCE_NUMBER + 1 + + + C_CLKOUT5_SEQUENCE_NUMBER + 1 + + + C_CLKOUT6_SEQUENCE_NUMBER + 1 + + + C_CLKOUT7_SEQUENCE_NUMBER + 1 + + + C_MMCM_NOTES + None + + + C_MMCM_BANDWIDTH + OPTIMIZED + + + C_MMCM_CLKFBOUT_MULT_F + 49.875 + + + C_MMCM_CLKIN1_PERIOD + 5.000 + + + C_MMCM_CLKIN2_PERIOD + 10.0 + + + C_MMCM_CLKOUT4_CASCADE + FALSE + + + C_MMCM_CLOCK_HOLD + FALSE + + + C_MMCM_COMPENSATION + ZHOLD + + + C_MMCM_DIVCLK_DIVIDE + 10 + + + C_MMCM_REF_JITTER1 + 0.010 + + + C_MMCM_REF_JITTER2 + 0.010 + + + C_MMCM_STARTUP_WAIT + FALSE + + + C_MMCM_CLKOUT0_DIVIDE_F + 16.625 + + + C_MMCM_CLKOUT1_DIVIDE + 1 + + + C_MMCM_CLKOUT2_DIVIDE + 1 + + + C_MMCM_CLKOUT3_DIVIDE + 1 + + + C_MMCM_CLKOUT4_DIVIDE + 1 + + + C_MMCM_CLKOUT5_DIVIDE + 1 + + + C_MMCM_CLKOUT6_DIVIDE + 1 + + + C_MMCM_CLKOUT0_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT1_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT2_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT3_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT4_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT5_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT6_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKFBOUT_PHASE + 0.000 + + + C_MMCM_CLKOUT0_PHASE + 0.000 + + + C_MMCM_CLKOUT1_PHASE + 0.000 + + + C_MMCM_CLKOUT2_PHASE + 0.000 + + + C_MMCM_CLKOUT3_PHASE + 0.000 + + + C_MMCM_CLKOUT4_PHASE + 0.000 + + + C_MMCM_CLKOUT5_PHASE + 0.000 + + + C_MMCM_CLKOUT6_PHASE + 0.000 + + + C_MMCM_CLKFBOUT_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT0_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT1_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT2_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT3_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT4_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT5_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT6_USE_FINE_PS + FALSE + + + C_PLL_NOTES + No notes + + + C_PLL_BANDWIDTH + OPTIMIZED + + + C_PLL_CLK_FEEDBACK + CLKFBOUT + + + C_PLL_CLKFBOUT_MULT + 1 + + + C_PLL_CLKIN_PERIOD + 1.000 + + + C_PLL_COMPENSATION + SYSTEM_SYNCHRONOUS + + + C_PLL_DIVCLK_DIVIDE + 1 + + + C_PLL_REF_JITTER + 0.010 + + + C_PLL_CLKOUT0_DIVIDE + 1 + + + C_PLL_CLKOUT1_DIVIDE + 1 + + + C_PLL_CLKOUT2_DIVIDE + 1 + + + C_PLL_CLKOUT3_DIVIDE + 1 + + + C_PLL_CLKOUT4_DIVIDE + 1 + + + C_PLL_CLKOUT5_DIVIDE + 1 + + + C_PLL_CLKOUT0_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT1_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT2_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT3_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT4_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT5_DUTY_CYCLE + 0.500 + + + C_PLL_CLKFBOUT_PHASE + 0.000 + + + C_PLL_CLKOUT0_PHASE + 0.000 + + + C_PLL_CLKOUT1_PHASE + 0.000 + + + C_PLL_CLKOUT2_PHASE + 0.000 + + + C_PLL_CLKOUT3_PHASE + 0.000 + + + C_PLL_CLKOUT4_PHASE + 0.000 + + + C_PLL_CLKOUT5_PHASE + 0.000 + + + C_CLOCK_MGR_TYPE + NA + + + C_OVERRIDE_MMCM + 0 + + + C_OVERRIDE_PLL + 0 + + + C_PRIMARY_PORT + clk_in1 + + + C_SECONDARY_PORT + clk_in2 + + + C_CLK_OUT1_PORT + core_ref_clk + + + C_CLK_OUT2_PORT + clk_out2 + + + C_CLK_OUT3_PORT + clk_out3 + + + C_CLK_OUT4_PORT + clk_out4 + + + C_CLK_OUT5_PORT + clk_out5 + + + C_CLK_OUT6_PORT + clk_out6 + + + C_CLK_OUT7_PORT + clk_out7 + + + C_RESET_PORT + reset + + + C_LOCKED_PORT + locked + + + C_CLKFB_IN_PORT + clkfb_in + + + C_CLKFB_IN_P_PORT + clkfb_in_p + + + C_CLKFB_IN_N_PORT + clkfb_in_n + + + C_CLKFB_OUT_PORT + clkfb_out + + + C_CLKFB_OUT_P_PORT + clkfb_out_p + + + C_CLKFB_OUT_N_PORT + clkfb_out_n + + + C_POWER_DOWN_PORT + power_down + + + C_DADDR_PORT + daddr + + + C_DCLK_PORT + dclk + + + C_DRDY_PORT + drdy + + + C_DWE_PORT + dwe + + + C_DIN_PORT + din + + + C_DOUT_PORT + dout + + + C_DEN_PORT + den + + + C_PSCLK_PORT + psclk + + + C_PSEN_PORT + psen + + + C_PSINCDEC_PORT + psincdec + + + C_PSDONE_PORT + psdone + + + C_CLK_VALID_PORT + CLK_VALID + + + C_STATUS_PORT + STATUS + + + C_CLK_IN_SEL_PORT + clk_in_sel + + + C_INPUT_CLK_STOPPED_PORT + input_clk_stopped + + + C_CLKFB_STOPPED_PORT + clkfb_stopped + + + C_CLKIN1_JITTER_PS + 50.0 + + + C_CLKIN2_JITTER_PS + 100.0 + + + C_PRIMITIVE + MMCM + + + C_SS_MODE + CENTER_HIGH + + + C_SS_MOD_PERIOD + 4000 + + + C_SS_MOD_TIME + 0.004 + + + C_HAS_CDDC + 0 + + + C_CDDCDONE_PORT + cddcdone + + + C_CDDCREQ_PORT + cddcreq + + + C_CLKOUTPHY_MODE + VCO + + + C_ENABLE_CLKOUTPHY + 0 + + + C_INTERFACE_SELECTION + 0 + + + C_S_AXI_ADDR_WIDTH + C S Axi Addr Width + 11 + + + C_S_AXI_DATA_WIDTH + C S Axi Data Width + 32 + + + C_POWER_REG + 0000 + + + C_CLKOUT0_1 + 0000 + + + C_CLKOUT0_2 + 0000 + + + C_CLKOUT1_1 + 0000 + + + C_CLKOUT1_2 + 0000 + + + C_CLKOUT2_1 + 0000 + + + C_CLKOUT2_2 + 0000 + + + C_CLKOUT3_1 + 0000 + + + C_CLKOUT3_2 + 0000 + + + C_CLKOUT4_1 + 0000 + + + C_CLKOUT4_2 + 0000 + + + C_CLKOUT5_1 + 0000 + + + C_CLKOUT5_2 + 0000 + + + C_CLKOUT6_1 + 0000 + + + C_CLKOUT6_2 + 0000 + + + C_CLKFBOUT_1 + 0000 + + + C_CLKFBOUT_2 + 0000 + + + C_DIVCLK + 0000 + + + C_LOCK_1 + 0000 + + + C_LOCK_2 + 0000 + + + C_LOCK_3 + 0000 + + + C_FILTER_1 + 0000 + + + C_FILTER_2 + 0000 + + + C_DIVIDE1_AUTO + 1 + + + C_DIVIDE2_AUTO + 0.6 + + + C_DIVIDE3_AUTO + 0.6 + + + C_DIVIDE4_AUTO + 0.6 + + + C_DIVIDE5_AUTO + 0.6 + + + C_DIVIDE6_AUTO + 0.6 + + + C_DIVIDE7_AUTO + 0.6 + + + C_PLLBUFGCEDIV + false + + + C_MMCMBUFGCEDIV + false + + + C_PLLBUFGCEDIV1 + false + + + C_PLLBUFGCEDIV2 + false + + + C_PLLBUFGCEDIV3 + false + + + C_PLLBUFGCEDIV4 + false + + + C_MMCMBUFGCEDIV1 + false + + + C_MMCMBUFGCEDIV2 + false + + + C_MMCMBUFGCEDIV3 + false + + + C_MMCMBUFGCEDIV4 + false + + + C_MMCMBUFGCEDIV5 + false + + + C_MMCMBUFGCEDIV6 + false + + + C_MMCMBUFGCEDIV7 + false + + + C_CLKOUT1_MATCHED_ROUTING + false + + + C_CLKOUT2_MATCHED_ROUTING + false + + + C_CLKOUT3_MATCHED_ROUTING + false + + + C_CLKOUT4_MATCHED_ROUTING + false + + + C_CLKOUT5_MATCHED_ROUTING + false + + + C_CLKOUT6_MATCHED_ROUTING + false + + + C_CLKOUT7_MATCHED_ROUTING + false + + + C_CLKOUT0_ACTUAL_FREQ + 60.000 + + + C_CLKOUT1_ACTUAL_FREQ + 100.000 + + + C_CLKOUT2_ACTUAL_FREQ + 100.000 + + + C_CLKOUT3_ACTUAL_FREQ + 100.000 + + + C_CLKOUT4_ACTUAL_FREQ + 100.000 + + + C_CLKOUT5_ACTUAL_FREQ + 100.000 + + + C_CLKOUT6_ACTUAL_FREQ + 100.000 + + + + + + choice_list_1d3de01d + WAVEFORM + LATENCY + + + choice_list_876bfc32 + UI + PS + + + choice_list_a9bdfce0 + LOW + HIGH + OPTIMIZED + + + choice_list_b9d38208 + CLKFBOUT + CLKOUT0 + + + choice_list_ce26ebdb + Custom + reset + + + choice_list_e099fe6c + MMCM + PLL + + + choice_pairs_035ca1c3 + SYSTEM_SYNCHRONOUS + SOURCE_SYNCHRONOUS + INTERNAL + EXTERNAL + + + choice_pairs_0920eb1b + Custom + sys_diff_clock + + + choice_pairs_11d71346 + Single_ended_clock_capable_pin + Differential_clock_capable_pin + Global_buffer + No_buffer + + + choice_pairs_15c806d5 + FDBK_AUTO + FDBK_AUTO_OFFCHIP + FDBK_ONCHIP + FDBK_OFFCHIP + + + choice_pairs_30cf7dfc + Single_ended_clock_capable_pin + Differential_clock_capable_pin + Single_ended_non_clock_pin + Differential_non_clock_pin + Global_buffer + No_buffer + + + choice_pairs_3c2d3ec7 + SINGLE + DIFF + + + choice_pairs_502d9f23 + ZHOLD + EXTERNAL + INTERNAL + BUF_IN + + + choice_pairs_66e4c81f + BUFG + BUFH + BUFGCE + BUFHCE + No_buffer + + + choice_pairs_77d3d587 + MMCM + PLL + BUFGCE_DIV + + + choice_pairs_8b28f1f7 + Enable_AXI + Enable_DRP + + + choice_pairs_8eea9b32 + Units_MHz + Units_ns + + + choice_pairs_a4fbc00c + ACTIVE_HIGH + ACTIVE_LOW + + + choice_pairs_a8642b4c + No_Jitter + Min_O_Jitter + Max_I_Jitter + + + choice_pairs_c5ef7212 + Units_UI + Units_ps + + + choice_pairs_e1c87518 + REL_PRIMARY + REL_SECONDARY + + + choice_pairs_f4e10086 + CENTER_HIGH + CENTER_LOW + DOWN_HIGH + DOWN_LOW + + + choice_pairs_f669c2f5 + frequency + Time + + + The Clocking Wizard creates an HDL file (Verilog or VHDL) that contains a clocking circuit customized to the user's clocking requirements. + + + Component_Name + clk_mmcm_chip + + + USER_CLK_FREQ0 + User Frequency(MHz) + 100.0 + + + USER_CLK_FREQ1 + User Frequency(MHz) + 100.0 + + + USER_CLK_FREQ2 + User Frequency(MHz) + 100.0 + + + USER_CLK_FREQ3 + User Frequency(MHz) + 100.0 + + + ENABLE_CLOCK_MONITOR + Enable Clock Monitoring + false + + + ENABLE_USER_CLOCK0 + User Clock + false + + + ENABLE_USER_CLOCK1 + User Clock + false + + + ENABLE_USER_CLOCK2 + User Clock + false + + + ENABLE_USER_CLOCK3 + User Clock + false + + + Enable_PLL0 + User Clock + false + + + Enable_PLL1 + User Clock + false + + + REF_CLK_FREQ + Reference Frequency(MHz) + 100.0 + + + PRECISION + Tolerance(MHz) + 1 + + + PRIMITIVE + Primitive + MMCM + + + PRIMTYPE_SEL + Primtype Sel + mmcm_adv + + + CLOCK_MGR_TYPE + Clock Mgr Type + auto + + + USE_FREQ_SYNTH + true + + + USE_SPREAD_SPECTRUM + false + + + USE_PHASE_ALIGNMENT + true + + + USE_MIN_POWER + false + + + USE_DYN_PHASE_SHIFT + false + + + USE_DYN_RECONFIG + false + + + JITTER_SEL + No_Jitter + + + PRIM_IN_FREQ + 200.000 + + + PRIM_IN_TIMEPERIOD + 10.000 + + + IN_FREQ_UNITS + Units_MHz + + + PHASESHIFT_MODE + WAVEFORM + + + IN_JITTER_UNITS + Units_UI + + + RELATIVE_INCLK + REL_PRIMARY + + + USE_INCLK_SWITCHOVER + false + + + SECONDARY_IN_FREQ + 100.000 + + + SECONDARY_IN_TIMEPERIOD + 10.000 + + + SECONDARY_PORT + clk_in2 + + + SECONDARY_SOURCE + Single_ended_clock_capable_pin + + + JITTER_OPTIONS + UI + + + CLKIN1_UI_JITTER + 0.010 + + + CLKIN2_UI_JITTER + 0.010 + + + PRIM_IN_JITTER + 0.010 + + + SECONDARY_IN_JITTER + 0.010 + + + CLKIN1_JITTER_PS + 50.0 + + + CLKIN2_JITTER_PS + 100.0 + + + CLKOUT1_USED + true + + + CLKOUT2_USED + false + + + CLKOUT3_USED + false + + + CLKOUT4_USED + false + + + CLKOUT5_USED + false + + + CLKOUT6_USED + false + + + CLKOUT7_USED + false + + + NUM_OUT_CLKS + 1 + + + CLK_OUT1_USE_FINE_PS_GUI + false + + + CLK_OUT2_USE_FINE_PS_GUI + false + + + CLK_OUT3_USE_FINE_PS_GUI + false + + + CLK_OUT4_USE_FINE_PS_GUI + false + + + CLK_OUT5_USE_FINE_PS_GUI + false + + + CLK_OUT6_USE_FINE_PS_GUI + false + + + CLK_OUT7_USE_FINE_PS_GUI + false + + + PRIMARY_PORT + clk_in1 + + + CLK_OUT1_PORT + core_ref_clk + + + CLK_OUT2_PORT + clk_out2 + + + CLK_OUT3_PORT + clk_out3 + + + CLK_OUT4_PORT + clk_out4 + + + CLK_OUT5_PORT + clk_out5 + + + CLK_OUT6_PORT + clk_out6 + + + CLK_OUT7_PORT + clk_out7 + + + DADDR_PORT + daddr + + + DCLK_PORT + dclk + + + DRDY_PORT + drdy + + + DWE_PORT + dwe + + + DIN_PORT + din + + + DOUT_PORT + dout + + + DEN_PORT + den + + + PSCLK_PORT + psclk + + + PSEN_PORT + psen + + + PSINCDEC_PORT + psincdec + + + PSDONE_PORT + psdone + + + CLKOUT1_REQUESTED_OUT_FREQ + 60.000 + + + CLKOUT1_REQUESTED_PHASE + 0.000 + + + CLKOUT1_REQUESTED_DUTY_CYCLE + 50.0 + + + CLKOUT2_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT2_REQUESTED_PHASE + 0.000 + + + CLKOUT2_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT3_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT3_REQUESTED_PHASE + 0.000 + + + CLKOUT3_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT4_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT4_REQUESTED_PHASE + 0.000 + + + CLKOUT4_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT5_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT5_REQUESTED_PHASE + 0.000 + + + CLKOUT5_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT6_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT6_REQUESTED_PHASE + 0.000 + + + CLKOUT6_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT7_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT7_REQUESTED_PHASE + 0.000 + + + CLKOUT7_REQUESTED_DUTY_CYCLE + 50.000 + + + USE_MAX_I_JITTER + false + + + USE_MIN_O_JITTER + false + + + CLKOUT1_MATCHED_ROUTING + false + + + CLKOUT2_MATCHED_ROUTING + false + + + CLKOUT3_MATCHED_ROUTING + false + + + CLKOUT4_MATCHED_ROUTING + false + + + CLKOUT5_MATCHED_ROUTING + false + + + CLKOUT6_MATCHED_ROUTING + false + + + CLKOUT7_MATCHED_ROUTING + false + + + PRIM_SOURCE + Differential_clock_capable_pin + + + CLKOUT1_DRIVES + BUFG + + + CLKOUT2_DRIVES + BUFG + + + CLKOUT3_DRIVES + BUFG + + + CLKOUT4_DRIVES + BUFG + + + CLKOUT5_DRIVES + BUFG + + + CLKOUT6_DRIVES + BUFG + + + CLKOUT7_DRIVES + BUFG + + + FEEDBACK_SOURCE + FDBK_AUTO + + + CLKFB_IN_SIGNALING + SINGLE + + + CLKFB_IN_PORT + clkfb_in + + + CLKFB_IN_P_PORT + clkfb_in_p + + + CLKFB_IN_N_PORT + clkfb_in_n + + + CLKFB_OUT_PORT + clkfb_out + + + CLKFB_OUT_P_PORT + clkfb_out_p + + + CLKFB_OUT_N_PORT + clkfb_out_n + + + PLATFORM + UNKNOWN + + + SUMMARY_STRINGS + empty + + + USE_LOCKED + true + + + CALC_DONE + empty + + + USE_RESET + true + + + USE_POWER_DOWN + false + + + USE_STATUS + false + + + USE_FREEZE + false + + + USE_CLK_VALID + false + + + USE_INCLK_STOPPED + false + + + USE_CLKFB_STOPPED + false + + + RESET_PORT + reset + + + LOCKED_PORT + locked + + + POWER_DOWN_PORT + power_down + + + CLK_VALID_PORT + CLK_VALID + + + STATUS_PORT + STATUS + + + CLK_IN_SEL_PORT + clk_in_sel + + + INPUT_CLK_STOPPED_PORT + input_clk_stopped + + + CLKFB_STOPPED_PORT + clkfb_stopped + + + SS_MODE + CENTER_HIGH + + + SS_MOD_FREQ + 250 + + + SS_MOD_TIME + 0.004 + + + OVERRIDE_MMCM + false + + + MMCM_NOTES + None + + + MMCM_DIVCLK_DIVIDE + 10 + + + MMCM_BANDWIDTH + OPTIMIZED + + + MMCM_CLKFBOUT_MULT_F + 49.875 + + + MMCM_CLKFBOUT_PHASE + 0.000 + + + MMCM_CLKFBOUT_USE_FINE_PS + false + + + MMCM_CLKIN1_PERIOD + 5.000 + + + MMCM_CLKIN2_PERIOD + 10.0 + + + MMCM_CLKOUT4_CASCADE + false + + + MMCM_CLOCK_HOLD + false + + + MMCM_COMPENSATION + ZHOLD + + + MMCM_REF_JITTER1 + 0.010 + + + MMCM_REF_JITTER2 + 0.010 + + + MMCM_STARTUP_WAIT + false + + + MMCM_CLKOUT0_DIVIDE_F + 16.625 + + + MMCM_CLKOUT0_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT0_PHASE + 0.000 + + + MMCM_CLKOUT0_USE_FINE_PS + false + + + MMCM_CLKOUT1_DIVIDE + 1 + + + MMCM_CLKOUT1_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT1_PHASE + 0.000 + + + MMCM_CLKOUT1_USE_FINE_PS + false + + + MMCM_CLKOUT2_DIVIDE + 1 + + + MMCM_CLKOUT2_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT2_PHASE + 0.000 + + + MMCM_CLKOUT2_USE_FINE_PS + false + + + MMCM_CLKOUT3_DIVIDE + 1 + + + MMCM_CLKOUT3_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT3_PHASE + 0.000 + + + MMCM_CLKOUT3_USE_FINE_PS + false + + + MMCM_CLKOUT4_DIVIDE + 1 + + + MMCM_CLKOUT4_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT4_PHASE + 0.000 + + + MMCM_CLKOUT4_USE_FINE_PS + false + + + MMCM_CLKOUT5_DIVIDE + 1 + + + MMCM_CLKOUT5_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT5_PHASE + 0.000 + + + MMCM_CLKOUT5_USE_FINE_PS + false + + + MMCM_CLKOUT6_DIVIDE + 1 + + + MMCM_CLKOUT6_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT6_PHASE + 0.000 + + + MMCM_CLKOUT6_USE_FINE_PS + false + + + OVERRIDE_PLL + false + + + PLL_NOTES + None + + + PLL_BANDWIDTH + OPTIMIZED + + + PLL_CLKFBOUT_MULT + 4 + + + PLL_CLKFBOUT_PHASE + 0.000 + + + PLL_CLK_FEEDBACK + CLKFBOUT + + + PLL_DIVCLK_DIVIDE + 1 + + + PLL_CLKIN_PERIOD + 10.000 + + + PLL_COMPENSATION + SYSTEM_SYNCHRONOUS + + + PLL_REF_JITTER + 0.010 + + + PLL_CLKOUT0_DIVIDE + 1 + + + PLL_CLKOUT0_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT0_PHASE + 0.000 + + + PLL_CLKOUT1_DIVIDE + 1 + + + PLL_CLKOUT1_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT1_PHASE + 0.000 + + + PLL_CLKOUT2_DIVIDE + 1 + + + PLL_CLKOUT2_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT2_PHASE + 0.000 + + + PLL_CLKOUT3_DIVIDE + 1 + + + PLL_CLKOUT3_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT3_PHASE + 0.000 + + + PLL_CLKOUT4_DIVIDE + 1 + + + PLL_CLKOUT4_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT4_PHASE + 0.000 + + + PLL_CLKOUT5_DIVIDE + 1 + + + PLL_CLKOUT5_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT5_PHASE + 0.000 + + + RESET_TYPE + Reset Type + ACTIVE_HIGH + + + USE_SAFE_CLOCK_STARTUP + false + + + USE_CLOCK_SEQUENCING + false + + + CLKOUT1_SEQUENCE_NUMBER + 1 + + + CLKOUT2_SEQUENCE_NUMBER + 1 + + + CLKOUT3_SEQUENCE_NUMBER + 1 + + + CLKOUT4_SEQUENCE_NUMBER + 1 + + + CLKOUT5_SEQUENCE_NUMBER + 1 + + + CLKOUT6_SEQUENCE_NUMBER + 1 + + + CLKOUT7_SEQUENCE_NUMBER + 1 + + + USE_BOARD_FLOW + Generate Board based IO Constraints + false + + + CLK_IN1_BOARD_INTERFACE + Custom + + + CLK_IN2_BOARD_INTERFACE + Custom + + + DIFF_CLK_IN1_BOARD_INTERFACE + Custom + + + DIFF_CLK_IN2_BOARD_INTERFACE + Custom + + + AUTO_PRIMITIVE + MMCM + + + RESET_BOARD_INTERFACE + Custom + + + ENABLE_CDDC + false + + + CDDCDONE_PORT + cddcdone + + + CDDCREQ_PORT + cddcreq + + + ENABLE_CLKOUTPHY + false + + + CLKOUTPHY_REQUESTED_FREQ + 600.000 + + + CLKOUT1_JITTER + Clkout1 Jitter + 257.607 + + + CLKOUT1_PHASE_ERROR + Clkout1 Phase + 293.793 + + + CLKOUT2_JITTER + Clkout2 Jitter + 112.316 + + + CLKOUT2_PHASE_ERROR + Clkout2 Phase + 89.971 + + + CLKOUT3_JITTER + Clkout3 Jitter + 67.587 + + + CLKOUT3_PHASE_ERROR + Clkout3 Phase + 266.425 + + + CLKOUT4_JITTER + Clkout4 Jitter + 67.587 + + + CLKOUT4_PHASE_ERROR + Clkout4 Phase + 266.425 + + + CLKOUT5_JITTER + Clkout5 Jitter + 0.0 + + + CLKOUT5_PHASE_ERROR + Clkout5 Phase + 0.0 + + + CLKOUT6_JITTER + Clkout6 Jitter + 0.0 + + + CLKOUT6_PHASE_ERROR + Clkout6 Phase + 0.0 + + + CLKOUT7_JITTER + Clkout7 Jitter + 0.0 + + + CLKOUT7_PHASE_ERROR + Clkout7 Phase + 0.0 + + + INPUT_MODE + frequency + + + INTERFACE_SELECTION + Enable_AXI + + + AXI_DRP + Write DRP registers + false + + + PHASE_DUTY_CONFIG + Phase Duty Cycle Config + false + + + + + Clocking Wizard + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chipset/include/chipset_define.vh b/piton/design/chipset/include/chipset_define.vh index 7214601..6c1d1c4 100644 --- a/piton/design/chipset/include/chipset_define.vh +++ b/piton/design/chipset/include/chipset_define.vh @@ -1,7 +1,7 @@ // ========== Copyright Header Begin ============================================ // Copyright (c) 2015 Princeton University // All rights reserved. -// +// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // * Redistributions of source code must retain the above copyright @@ -12,7 +12,7 @@ // * Neither the name of Princeton University nor the // names of its contributors may be used to endorse or promote products // derived from this software without specific prior written permission. -// +// // THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -84,6 +84,9 @@ `elsif GENESYS2_BOARD // 32-bit PHY `define ADDR_TRANS_PHYS_WIDTH_ALIGN 5 `define ADDR_TRANS_SECTION_MULT 2 +`elsif ZC706_BOARD // 64-bit PHY + `define ADDR_TRANS_PHYS_WIDTH_ALIGN 6 + `define ADDR_TRANS_SECTION_MULT 1 `else // 64-bit interface by default `define ADDR_TRANS_PHYS_WIDTH_ALIGN 6 `define ADDR_TRANS_SECTION_MULT 1 diff --git a/piton/design/chipset/include/mc_define.h b/piton/design/chipset/include/mc_define.h index 5f1102f..a041820 100644 --- a/piton/design/chipset/include/mc_define.h +++ b/piton/design/chipset/include/mc_define.h @@ -1,7 +1,7 @@ // ========== Copyright Header Begin ============================================ // Copyright (c) 2015 Princeton University // All rights reserved. -// +// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // * Redistributions of source code must retain the above copyright @@ -12,7 +12,7 @@ // * Neither the name of Princeton University nor the // names of its contributors may be used to endorse or promote products // derived from this software without specific prior written permission. -// +// // THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -47,7 +47,7 @@ `define MIG_APP_ADDR_WIDTH 27 `define MIG_APP_CMD_WIDTH 3 `define MIG_APP_DATA_WIDTH 128 - `define MIG_APP_BURST_OFFSET 4 // in bits: logb2(MIG_APP_DATA_WIDTH / 8) + `define MIG_APP_BURST_OFFSET 4 // in bits: logb2(MIG_APP_DATA_WIDTH / 8) `define MIG_APP_MASK_WIDTH 16 `define DDR3_DQ_WIDTH 16 @@ -73,11 +73,26 @@ `define DDR3_CK_WIDTH 1 `define DDR3_CKE_WIDTH 1 `define DDR3_CS_WIDTH 1 +`elsif ZC706_BOARD + `define MIG_APP_ADDR_WIDTH 28 + `define MIG_APP_CMD_WIDTH 3 + `define MIG_APP_DATA_WIDTH 512 + `define MIG_APP_BURST_OFFSET 6 // in bits: logb2(MIG_APP_DATA_WIDTH / 8) + `define MIG_APP_MASK_WIDTH 64 + + `define DDR3_DQ_WIDTH 64 + `define DDR3_DQS_WIDTH 8 + `define DDR3_ADDR_WIDTH 14 + `define DDR3_BA_WIDTH 3 + `define DDR3_DM_WIDTH 8 + `define DDR3_CK_WIDTH 1 + `define DDR3_CKE_WIDTH 1 + `define DDR3_CS_WIDTH 1 `elsif NEXYSVIDEO_BOARD `define MIG_APP_ADDR_WIDTH 29 `define MIG_APP_CMD_WIDTH 3 `define MIG_APP_DATA_WIDTH 128 - `define MIG_APP_BURST_OFFSET 4 // in bits: logb2(MIG_APP_DATA_WIDTH / 8) + `define MIG_APP_BURST_OFFSET 4 // in bits: logb2(MIG_APP_DATA_WIDTH / 8) `define MIG_APP_MASK_WIDTH 16 `define DDR3_DQ_WIDTH 16 diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/atg_uart_init.xci b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/atg_uart_init.xci new file mode 100644 index 0000000..ee65630 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/atg_uart_init.xci @@ -0,0 +1,230 @@ + + + xilinx.com + xci + unknown + 1.0 + + + atg_uart_init + + + 65536 + 100000000 + 0 + 0 + 4 + 16 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 16 + 0x0000000013A00FFF + 0x0000000013A00FFF + 3 + 0 + 0x0000000013A00FFF + 0x0000000013A00FFF + 3 + 0 + 16 + 0 + 1 + 0 + 0xFFFFFFFF + 0x00000000 + 0x000001FF + 0x00000100 + 0x000002FF + 0x00000200 + 0x000003FF + 0x00000300 + 0x000004FF + 0x00000400 + 256 + 1 + atg_uart_init_addr.mif + atg_uart_init_ctrl.mif + atg_uart_init_data.mif + atg_uart_init_mask.mif + "00000000000000000000000000000001" + 0 + 5000 + 1 + 1 + 0 + 0 + 1 + 32 + 8 + 8 + 8 + 0x5A5A + 0x7C9B + 0x00000000 + zynq + 0x0000FFFF + 32 + 8 + 8 + 32 + 1 + 0 + atg_uart_init_default_addrram.mif + atg_uart_init_default_cmdram.mif + NONE + NONE + NONE + atg_uart_init_default_prmram.mif + atg_uart_init_default_mstram.mif + 254 + 0xABCD + 8 + 8 + 32 + 1 + 1 + 100 + Read_Write + 16 + 16 + Custom + 0x5A5A + 0x7C9B + 16 + AXI4-Lite + Advanced + One_Shot + false + Read_Write + 1 + false + false + 16 + 16 + 0x13A00000 + 0x00000000 + 0x13A00FFF + 0x00000000 + 0x12A00000 + 0x00000000 + 0x12A00FFF + 0x00000000 + 16 + System_Init + 0xFFFFFFFF + 0x00000000 + 0x000001FF + 0x00000100 + 0x000002FF + 0x00000200 + 0x000003FF + 0x00000300 + 0x000004FF + 0x00000400 + 256 + uart_addr.coe + no_coe_file_loaded + uart_data.coe + no_coe_file_loaded + 1 + 5000 + true + true + true + true + Master Only + true + 32 + 8 + 8 + 8 + 0x00000000 + 32 + 32 + 0x0000FFFF + 8 + 8 + 32 + 1 + false + default_addrram.mif + default_cmdram.mif + NONE + NONE + NONE + default_prmram.mif + default_mstram.mif + 255 + 8 + 8 + 32 + 1 + true + atg_uart_init + Fixed + 5 + 50 + 32 + 256 + 1 + Random + Fixed + 1 + Read_Write + 50 + 50 + 1000 + 32 + 0x00000000 + 0x00000000 + 0xFFFFFFFF + 0x00000000 + 1 + 2.5 + 50 + 0xABCD + Video + 50 + ISOC + 6 + 60 + 1920 + 8 + 1080 + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 13 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/atg_uart_init.xml b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/atg_uart_init.xml new file mode 100644 index 0000000..2ae6dab --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/atg_uart_init.xml @@ -0,0 +1,8207 @@ + + + xilinx.com + customized_ip + atg_uart_init + 1.0 + + + clock + clock + + + + + + + CLK + + + s_axi_aclk + + + + + + ASSOCIATED_BUSIF + S_AXI:M_AXI:M_AXIS_MASTER:S_AXIS_MASTER:M_AXIS_SLAVE:S_AXIS_SLAVE:M_AXI_LITE_CH1:M_AXI_LITE_CH2:M_AXI_LITE_CH3:M_AXI_LITE_CH4:M_AXI_LITE_CH5 + + + ASSOCIATED_RESET + s_axi_aresetn + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port s_axi_aclk + 100000000 + + + + + reset + reset + + + + + + + RST + + + s_axi_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + S_AXI + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + NUM_READ_OUTSTANDING + 7 + + + NUM_WRITE_OUTSTANDING + 7 + + + + + + false + + + + + + M_AXI + M_AXI + + + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WVALID + + + m_axi_wvalid + + + + + + NUM_READ_OUTSTANDING + 7 + + + NUM_WRITE_OUTSTANDING + 7 + + + + + + false + + + + + + interrupt + interrupt + + + + + + + INTERRUPT + + + irq_out + + + + + + SENSITIVITY + LEVEL_HIGH + + + + + + false + + + + + + error_interrupt + error_interrupt + + + + + + + INTERRUPT + + + err_out + + + + + + SENSITIVITY + LEVEL_HIGH + + + + + + false + + + + + + M_AXIS_MASTER + M_AXIS_MASTER + + + + + + + TDATA + + + m_axis_1_tdata + + + + + TDEST + + + m_axis_1_tdest + + + + + TID + + + m_axis_1_tid + + + + + TKEEP + + + m_axis_1_tkeep + + + + + TLAST + + + m_axis_1_tlast + + + + + TREADY + + + m_axis_1_tready + + + + + TSTRB + + + m_axis_1_tstrb + + + + + TUSER + + + m_axis_1_tuser + + + + + TVALID + + + m_axis_1_tvalid + + + + + + + false + + + + + + M_AXIS_SLAVE + M_AXIS_SLAVE + + + + + + + TDATA + + + m_axis_2_tdata + + + + + TDEST + + + m_axis_2_tdest + + + + + TID + + + m_axis_2_tid + + + + + TKEEP + + + m_axis_2_tkeep + + + + + TLAST + + + m_axis_2_tlast + + + + + TREADY + + + m_axis_2_tready + + + + + TSTRB + + + m_axis_2_tstrb + + + + + TUSER + + + m_axis_2_tuser + + + + + TVALID + + + m_axis_2_tvalid + + + + + + + false + + + + + + S_AXIS_SLAVE + S_AXIS_SLAVE + + + + + + + TDATA + + + s_axis_2_tdata + + + + + TDEST + + + s_axis_2_tdest + + + + + TID + + + s_axis_2_tid + + + + + TKEEP + + + s_axis_2_tkeep + + + + + TLAST + + + s_axis_2_tlast + + + + + TREADY + + + s_axis_2_tready + + + + + TSTRB + + + s_axis_2_tstrb + + + + + TUSER + + + s_axis_2_tuser + + + + + TVALID + + + s_axis_2_tvalid + + + + + + + false + + + + + + M_AXI_LITE_CH1 + M_AXI_LITE_CH1 + + + + + + + + + ARADDR + + + m_axi_lite_ch1_araddr + + + + + ARREADY + + + m_axi_lite_ch1_arready + + + + + ARVALID + + + m_axi_lite_ch1_arvalid + + + + + AWADDR + + + m_axi_lite_ch1_awaddr + + + + + AWPROT + + + m_axi_lite_ch1_awprot + + + + + AWREADY + + + m_axi_lite_ch1_awready + + + + + AWVALID + + + m_axi_lite_ch1_awvalid + + + + + BREADY + + + m_axi_lite_ch1_bready + + + + + BRESP + + + m_axi_lite_ch1_bresp + + + + + BVALID + + + m_axi_lite_ch1_bvalid + + + + + RDATA + + + m_axi_lite_ch1_rdata + + + + + RREADY + + + m_axi_lite_ch1_rready + + + + + RRESP + + + m_axi_lite_ch1_rresp + + + + + RVALID + + + m_axi_lite_ch1_rvalid + + + + + WDATA + + + m_axi_lite_ch1_wdata + + + + + WREADY + + + m_axi_lite_ch1_wready + + + + + WSTRB + + + m_axi_lite_ch1_wstrb + + + + + WVALID + + + m_axi_lite_ch1_wvalid + + + + + + + true + + + + + + S_AXIS_MASTER + S_AXIS_MASTER + + + + + + + TDATA + + + s_axis_1_tdata + + + + + TDEST + + + s_axis_1_tdest + + + + + TID + + + s_axis_1_tid + + + + + TKEEP + + + s_axis_1_tkeep + + + + + TLAST + + + s_axis_1_tlast + + + + + TREADY + + + s_axis_1_tready + + + + + TSTRB + + + s_axis_1_tstrb + + + + + TUSER + + + s_axis_1_tuser + + + + + TVALID + + + s_axis_1_tvalid + + + + + + + false + + + + + + M_AXI_LITE_CH2 + M_AXI_LITE_CH2 + + + + + + + + + ARADDR + + + m_axi_lite_ch2_araddr + + + + + ARREADY + + + m_axi_lite_ch2_arready + + + + + ARVALID + + + m_axi_lite_ch2_arvalid + + + + + AWADDR + + + m_axi_lite_ch2_awaddr + + + + + AWPROT + + + m_axi_lite_ch2_awprot + + + + + AWREADY + + + m_axi_lite_ch2_awready + + + + + AWVALID + + + m_axi_lite_ch2_awvalid + + + + + BREADY + + + m_axi_lite_ch2_bready + + + + + BRESP + + + m_axi_lite_ch2_bresp + + + + + BVALID + + + m_axi_lite_ch2_bvalid + + + + + RDATA + + + m_axi_lite_ch2_rdata + + + + + RREADY + + + m_axi_lite_ch2_rready + + + + + RRESP + + + m_axi_lite_ch2_rresp + + + + + RVALID + + + m_axi_lite_ch2_rvalid + + + + + WDATA + + + m_axi_lite_ch2_wdata + + + + + WREADY + + + m_axi_lite_ch2_wready + + + + + WSTRB + + + m_axi_lite_ch2_wstrb + + + + + WVALID + + + m_axi_lite_ch2_wvalid + + + + + + + false + + + + + + M_AXI_LITE_CH3 + M_AXI_LITE_CH3 + + + + + + + + + ARADDR + + + m_axi_lite_ch3_araddr + + + + + ARREADY + + + m_axi_lite_ch3_arready + + + + + ARVALID + + + m_axi_lite_ch3_arvalid + + + + + AWADDR + + + m_axi_lite_ch3_awaddr + + + + + AWPROT + + + m_axi_lite_ch3_awprot + + + + + AWREADY + + + m_axi_lite_ch3_awready + + + + + AWVALID + + + m_axi_lite_ch3_awvalid + + + + + BREADY + + + m_axi_lite_ch3_bready + + + + + BRESP + + + m_axi_lite_ch3_bresp + + + + + BVALID + + + m_axi_lite_ch3_bvalid + + + + + RDATA + + + m_axi_lite_ch3_rdata + + + + + RREADY + + + m_axi_lite_ch3_rready + + + + + RRESP + + + m_axi_lite_ch3_rresp + + + + + RVALID + + + m_axi_lite_ch3_rvalid + + + + + WDATA + + + m_axi_lite_ch3_wdata + + + + + WREADY + + + m_axi_lite_ch3_wready + + + + + WSTRB + + + m_axi_lite_ch3_wstrb + + + + + WVALID + + + m_axi_lite_ch3_wvalid + + + + + + + false + + + + + + M_AXI_LITE_CH4 + M_AXI_LITE_CH4 + + + + + + + + + ARADDR + + + m_axi_lite_ch4_araddr + + + + + ARREADY + + + m_axi_lite_ch4_arready + + + + + ARVALID + + + m_axi_lite_ch4_arvalid + + + + + AWADDR + + + m_axi_lite_ch4_awaddr + + + + + AWPROT + + + m_axi_lite_ch4_awprot + + + + + AWREADY + + + m_axi_lite_ch4_awready + + + + + AWVALID + + + m_axi_lite_ch4_awvalid + + + + + BREADY + + + m_axi_lite_ch4_bready + + + + + BRESP + + + m_axi_lite_ch4_bresp + + + + + BVALID + + + m_axi_lite_ch4_bvalid + + + + + RDATA + + + m_axi_lite_ch4_rdata + + + + + RREADY + + + m_axi_lite_ch4_rready + + + + + RRESP + + + m_axi_lite_ch4_rresp + + + + + RVALID + + + m_axi_lite_ch4_rvalid + + + + + WDATA + + + m_axi_lite_ch4_wdata + + + + + WREADY + + + m_axi_lite_ch4_wready + + + + + WSTRB + + + m_axi_lite_ch4_wstrb + + + + + WVALID + + + m_axi_lite_ch4_wvalid + + + + + + + false + + + + + + M_AXI_LITE_CH5 + M_AXI_LITE_CH5 + + + + + + + + + ARADDR + + + m_axi_lite_ch5_araddr + + + + + ARREADY + + + m_axi_lite_ch5_arready + + + + + ARVALID + + + m_axi_lite_ch5_arvalid + + + + + AWADDR + + + m_axi_lite_ch5_awaddr + + + + + AWPROT + + + m_axi_lite_ch5_awprot + + + + + AWREADY + + + m_axi_lite_ch5_awready + + + + + AWVALID + + + m_axi_lite_ch5_awvalid + + + + + BREADY + + + m_axi_lite_ch5_bready + + + + + BRESP + + + m_axi_lite_ch5_bresp + + + + + BVALID + + + m_axi_lite_ch5_bvalid + + + + + RDATA + + + m_axi_lite_ch5_rdata + + + + + RREADY + + + m_axi_lite_ch5_rready + + + + + RRESP + + + m_axi_lite_ch5_rresp + + + + + RVALID + + + m_axi_lite_ch5_rvalid + + + + + WDATA + + + m_axi_lite_ch5_wdata + + + + + WREADY + + + m_axi_lite_ch5_wready + + + + + WSTRB + + + m_axi_lite_ch5_wstrb + + + + + WVALID + + + m_axi_lite_ch5_wvalid + + + + + + + false + + + + + + + + Data + 4294967296 + 32 + + + + false + + + + + + Reg1 + 4294967296 + 32 + + + + true + + + + + + Reg2 + 4294967296 + 32 + + + + false + + + + + + Reg3 + 4294967296 + 32 + + + + false + + + + + + Reg4 + 4294967296 + 32 + + + + false + + + + + + Reg5 + 4294967296 + 32 + + + + false + + + + + + + + S_AXI + + Reg0 + 0 + 65536 + 32 + register + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + s_axi_aclk + clock + + in + + + std_logic + dummy_view + + + + 0 + + + + + s_axi_aresetn + reset + + in + + + std_logic + dummy_view + + + + 0 + + + + + core_ext_start + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + core_ext_stop + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awuser + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_wdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_wstrb + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_aruser + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axis_1_tready + + in + + + std_logic + dummy_view + + + + 1 + + + + + + false + + + + + + m_axis_1_tvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axis_1_tlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axis_1_tdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_1_tstrb + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_1_tkeep + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_1_tuser + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_1_tid + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_1_tdest + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axis_1_tready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axis_1_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_1_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_1_tdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_1_tstrb + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0xF + + + + + + false + + + + + + s_axis_1_tkeep + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0xF + + + + + + false + + + + + + s_axis_1_tuser + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_1_tid + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_1_tdest + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_err_count + + out + + 15 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axis_2_tready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axis_2_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_2_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_2_tdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_2_tstrb + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0xF + + + + + + false + + + + + + s_axis_2_tkeep + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0xF + + + + + + false + + + + + + s_axis_2_tuser + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_2_tid + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_2_tdest + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_2_tready + + in + + + std_logic + dummy_view + + + + 1 + + + + + + false + + + + + + m_axis_2_tvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axis_2_tlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axis_2_tdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_2_tstrb + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_2_tkeep + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_2_tuser + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_2_tid + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axis_2_tdest + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + irq_out + interrupt + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + err_out + error_interrupt + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch1_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + m_axi_lite_ch1_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + m_axi_lite_ch1_awvalid + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + m_axi_lite_ch1_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + m_axi_lite_ch1_wdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + m_axi_lite_ch1_wstrb + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + m_axi_lite_ch1_wvalid + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + m_axi_lite_ch1_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + m_axi_lite_ch1_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + m_axi_lite_ch1_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + m_axi_lite_ch1_bready + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + m_axi_lite_ch1_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch1_arvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch1_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch1_rdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch1_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch1_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch1_rready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_awvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch2_wdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_wstrb + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_wvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch2_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch2_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch2_bready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_arvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch2_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch2_rdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch2_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch2_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch2_rready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_awvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch3_wdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_wstrb + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_wvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch3_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch3_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch3_bready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_arvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch3_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch3_rdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch3_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch3_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch3_rready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_awvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch4_wdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_wstrb + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_wvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch4_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch4_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch4_bready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_arvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch4_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch4_rdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch4_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch4_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch4_rready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_awvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch5_wdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_wstrb + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_wvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch5_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch5_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch5_bready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_arvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + m_axi_lite_ch5_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch5_rdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch5_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch5_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_lite_ch5_rready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + done + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + status + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + + + C_FAMILY + zynq + + + C_BASEADDR + Base Address + 0x00000000 + + + C_HIGHADDR + High Address + 0x0000FFFF + + + C_ZERO_INVALID + Force Zero On Invalid + 1 + + + C_NO_EXCL + No Exclusive Access + 0 + + + C_S_AXI_DATA_WIDTH + Slave AXI Data Width + 32 + + + C_S_AXI_AWUSER_WIDTH + Slave AWUSER Width + 8 + + + C_S_AXI_ARUSER_WIDTH + Slave ARUSER Width + 8 + + + C_S_AXI_ID_WIDTH + Slave AXI ID Width + 1 + + + C_M_AXI_THREAD_ID_WIDTH + Master Thread ID Width + 1 + + + C_M_AXI_DATA_WIDTH + Master AXI Data Width + 32 + + + C_M_AXI_ADDR_WIDTH + Master AXI ADDR Width + 32 + + + C_M_AXI_AWUSER_WIDTH + Master AWUSER Width + 8 + + + C_M_AXI_ARUSER_WIDTH + Master ARUSER Width + 8 + + + C_AXIS1_HAS_TKEEP + Enable TKEEP + 1 + + + C_AXIS1_HAS_TSTRB + Enable TSTRB + 1 + + + C_AXIS2_HAS_TKEEP + Enable TKEEP + 0 + + + C_AXIS2_HAS_TSTRB + Enable TSTRB + 0 + + + C_AXIS_TDATA_WIDTH + Data Width + 32 + + + C_AXIS_TUSER_WIDTH + User Width + 8 + + + C_AXIS_TID_WIDTH + Id Width + 8 + + + C_AXIS_TDEST_WIDTH + Destination Width + 8 + + + C_ATG_BASIC_AXI4 + Basic AXI4 Mode + 0 + + + C_ATG_REPEAT_TYPE + 0 + + + C_ATG_HLTP_MODE + 0 + + + C_ATG_STATIC + Static Mode + 0 + + + C_ATG_SYSTEM_INIT + System Init Mode + 1 + + + C_ATG_SYSTEM_TEST + System Test Mode + 0 + + + C_ATG_STREAMING + Streaming Mode + 0 + + + C_ATG_STREAMING_MST_ONLY + Streaming Master Only + 1 + + + C_ATG_STREAMING_MST_LPBK + Streaming Master Loop back + 0 + + + C_ATG_STREAMING_SLV_LPBK + Streaming Slave Loop back + 0 + + + C_ATG_STREAMING_MAX_LEN_BITS + Max Burst Count Width + 16 + + + C_AXIS_SPARSE_EN + Support Sparse Strb Keep + 1 + + + C_ATG_SLAVE_ONLY + Slave Only Mode + 0 + + + C_ATG_STATIC_WR_ADDRESS + Static Mode Address + 0x0000000013A00FFF + + + C_ATG_STATIC_RD_ADDRESS + Static Mode Address + 0x0000000013A00FFF + + + C_ATG_STATIC_WR_HIGH_ADDRESS + Static Mode Address + 0x0000000013A00FFF + + + C_ATG_STATIC_RD_HIGH_ADDRESS + Static Mode Address + 0x0000000013A00FFF + + + C_ATG_STATIC_INCR + Enable Address Sweep + 0 + + + C_ATG_STATIC_EN_READ + Static Mode Read Channel Enable + 1 + + + C_ATG_STATIC_EN_WRITE + Static Mode Write Channel Enable + 1 + + + C_ATG_STATIC_FREE_RUN + Static Mode Debug Counters Enable + 1 + + + C_ATG_STATIC_RD_PIPELINE + 3 + + + C_ATG_STATIC_WR_PIPELINE + 3 + + + C_ATG_STATIC_TRANGAP + 0 + + + C_ATG_STATIC_LENGTH + Static Mode Lenth + 16 + + + C_ATG_SYSTEM_INIT_DATA_MIF + Data COE File + atg_uart_init_data.mif + + + C_ATG_SYSTEM_INIT_ADDR_MIF + Address COE File + atg_uart_init_addr.mif + + + C_ATG_SYSTEM_INIT_CTRL_MIF + Control COE File + atg_uart_init_ctrl.mif + + + C_ATG_SYSTEM_INIT_MASK_MIF + Mask COE File + atg_uart_init_mask.mif + + + C_ATG_MIF_DATA_DEPTH + MIF File Depth + 16 + + + C_ATG_MIF_ADDR_BITS + MIF Addr Bits + 4 + + + C_ATG_SYSTEM_CMD_MAX_RETRY + Command Retry Limit + 256 + + + C_ATG_SYSTEM_TEST_MAX_CLKS + Maximum Clocks to Run + 5000 + + + C_ATG_SYSTEM_MAX_CHANNELS + "00000000000000000000000000000001" + + + C_ATG_SYSTEM_CH1_LOW + 0x00000000 + + + C_ATG_SYSTEM_CH1_HIGH + 0xFFFFFFFF + + + C_ATG_SYSTEM_CH2_LOW + 0x00000100 + + + C_ATG_SYSTEM_CH2_HIGH + 0x000001FF + + + C_ATG_SYSTEM_CH3_LOW + 0x00000200 + + + C_ATG_SYSTEM_CH3_HIGH + 0x000002FF + + + C_ATG_SYSTEM_CH4_LOW + 0x00000300 + + + C_ATG_SYSTEM_CH4_HIGH + 0x000003FF + + + C_ATG_SYSTEM_CH5_LOW + 0x00000400 + + + C_ATG_SYSTEM_CH5_HIGH + 0x000004FF + + + C_RAMINIT_CMDRAM0_F + C Raminit Cmdram0 F + atg_uart_init_default_cmdram.mif + + + C_RAMINIT_CMDRAM1_F + C Raminit Cmdram1 F + NONE + + + C_RAMINIT_CMDRAM2_F + C Raminit Cmdram2 F + NONE + + + C_RAMINIT_CMDRAM3_F + C Raminit Cmdram3 F + NONE + + + C_RAMINIT_SRAM0_F + C Raminit Sram0 F + atg_uart_init_default_mstram.mif + + + C_RAMINIT_PARAMRAM0_F + C Raminit Paramram0 F + atg_uart_init_default_prmram.mif + + + C_RAMINIT_ADDRRAM0_F + C Raminit Addrram0 F + atg_uart_init_default_addrram.mif + + + C_REPEAT_COUNT + Repeat Count + 254 + + + C_STRM_DATA_SEED + 0xABCD + + + C_AXI_WR_ADDR_SEED + 0x7C9B + + + C_AXI_RD_ADDR_SEED + 0x5A5A + + + + + + choice_list_050d110b + ISOC + BULK + + + choice_list_199fd1d4 + Video + PCIe + Ethernet + USB + Data + + + choice_list_1ab9a6bf + 10 + 100 + 1000 + + + choice_list_20622e6a + Custom + High Level Traffic + + + choice_list_24d6eea7 + Fixed + Random + + + choice_list_390e0aec + 2.5 + 5 + 8 + 16 + + + choice_list_3b405220 + Sequential + Fixed + + + choice_list_3c17f100 + Basic + Advanced + Static + + + choice_list_48dcc1a3 + AXI4 + AXI4-Stream + AXI4-Lite + + + choice_list_5b2d4746 + Master Only + Master Loop back + Slave Loop back + + + choice_list_6fc15197 + 32 + + + choice_list_7a7dde49 + true + false + + + choice_list_85010fde + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + + + choice_list_a72aa099 + 8 + 10 + 12 + + + choice_list_cd7079e5 + 16 + 32 + 64 + 128 + 256 + + + choice_list_d6556846 + 32 + 64 + 128 + 256 + 512 + + + choice_list_d8a7aa76 + 60 + 75 + + + choice_list_dd2843c6 + 1 + 2 + 4 + 8 + + + choice_list_f012b454 + 8 + 16 + 24 + 32 + 40 + 48 + 56 + 64 + 72 + 80 + 88 + 96 + 104 + 112 + 120 + 128 + 136 + 144 + 152 + 160 + 168 + 176 + 184 + 192 + 200 + 208 + 216 + 224 + 232 + 240 + 248 + 256 + 264 + 272 + 280 + 288 + 296 + 304 + 312 + 320 + 328 + 336 + 344 + 352 + 360 + 368 + 376 + 384 + 392 + 400 + 408 + 416 + 424 + 432 + 440 + 448 + 456 + 464 + 472 + 480 + 488 + 496 + 504 + 512 + 520 + 528 + 536 + 544 + 552 + 560 + 568 + 576 + 584 + 592 + 600 + 608 + 616 + 624 + 632 + 640 + 648 + 656 + 664 + 672 + 680 + 688 + 696 + 704 + 712 + 720 + 728 + 736 + 744 + 752 + 760 + 768 + 776 + 784 + 792 + 800 + 808 + 816 + 824 + 832 + 840 + 848 + 856 + 864 + 872 + 880 + 888 + 896 + 904 + 912 + 920 + 928 + 936 + 944 + 952 + 960 + 968 + 976 + 984 + 992 + 1000 + 1008 + 1016 + 1024 + + + choice_pairs_0b545f1d + 6 + 4 + 2 + 0 + + + choice_pairs_1bb3ac75 + Repetitive + One_Shot + + + choice_pairs_69631842 + Read_Only + Write_Only + Read_Write + + + choice_pairs_af56b6d7 + System_Init + System_Test + + + choice_pairs_f40ca747 + Read_Only + Read_Write + Write_Only + + + AXI Traffic Generator genertes AXI traffic based on core programming + + + C_M_AXI_ARUSER_WIDTH + Master ARUSER Width + 8 + + + C_M_AXI_AWUSER_WIDTH + Master AWUSER Width + 8 + + + C_M_AXI_DATA_WIDTH + Master AXI Data Width + 32 + + + C_M_AXI_THREAD_ID_WIDTH + Master Thread ID Width + 1 + + + C_S_AXI_ID_WIDTH + Slave AXI ID Width + 1 + + + C_S_AXI_ARUSER_WIDTH + Slave ARUSER Width + 8 + + + C_S_AXI_AWUSER_WIDTH + Slave AWUSER Width + 8 + + + C_S_AXI_DATA_WIDTH + Slave AXI Data Width + 32 + + + C_NO_EXCL + No Exclusive Access + false + + + C_ZERO_INVALID + Force Zero On Invalid + true + + + C_HIGHADDR + High Address + 0x0000FFFF + + + C_BASEADDR + Base Address + 0x00000000 + + + Component_Name + atg_uart_init + + + C_ATG_SYSTEM_TEST_MAX_CLKS + Maximum Clocks to Run + 5000 + + + C_ATG_SYSTEM_CMD_MAX_RETRY + Command Retry Limit + 256 + + + C_ATG_STREAMING_MAX_LEN_BITS + Max Burst Count Width + 16 + + + C_AXIS_SPARSE_EN + Support Sparse Strb Keep + true + + + C_ATG_SLAVE_ONLY + Slave Only Mode + false + + + C_ATG_STATIC_WR_ADDRESS + Write Base Address + 0x12A00000 + + + C_ATG_STATIC_WR_HIGH_ADDRESS + Write High Address + 0x12A00FFF + + + + false + + + + + + C_ATG_STATIC_RD_ADDRESS + Read Base Address + 0x13A00000 + + + C_ATG_STATIC_RD_HIGH_ADDRESS + Read High Address + 0x13A00FFF + + + + false + + + + + + C_ATG_STATIC_WR_ADDRESS_EXT + Write Base Address (MSB) + 0x00000000 + + + + false + + + + + + C_ATG_STATIC_WR_HIGH_ADDRESS_EXT + Write High Address (MSB) + 0x00000000 + + + + false + + + + + + C_ATG_STATIC_RD_ADDRESS_EXT + Read Base Address (MSB) + 0x00000000 + + + + false + + + + + + C_ATG_STATIC_RD_HIGH_ADDRESS_EXT + Read High Address (MSB) + 0x00000000 + + + + false + + + + + + C_ATG_STATIC_INCR + Enable Address Sweep + false + + + C_ATG_STATIC_HLTP_INCR + Enable Address Sweep + false + + + C_ATG_STATIC_LENGTH + Burst Length + 16 + + + C_ATG_STATIC_LENGTH_INCR + Burst Length + 16 + + + + false + + + + + + C_ATG_SYSTEM_INIT_DATA_MIF + Data COE File + uart_data.coe + + + C_ATG_SYSTEM_INIT_ADDR_MIF + Address COE File + uart_addr.coe + + + C_ATG_SYSTEM_INIT_MASK_MIF + Mask COE File + no_coe_file_loaded + + + C_ATG_SYSTEM_INIT_CTRL_MIF + Control COE File + no_coe_file_loaded + + + C_AXIS1_HAS_TKEEP + Enable TKEEP + true + + + C_AXIS1_HAS_TSTRB + Enable TSTRB + true + + + C_AXIS2_HAS_TKEEP + Enable TKEEP + true + + + C_AXIS2_HAS_TSTRB + Enable TSTRB + true + + + C_AXIS_TDATA_WIDTH + Data Width + 32 + + + C_AXIS_TUSER_WIDTH + User Width + 8 + + + C_AXIS_TID_WIDTH + Id Width + 8 + + + C_AXIS_TDEST_WIDTH + Destination Width + 8 + + + C_RAMINIT_PARAMRAM0_F + C Raminit Paramram0 F + default_prmram.mif + + + C_RAMINIT_ADDRRAM0_F + C Raminit Addram0 F + default_addrram.mif + + + C_RAMINIT_SRAM0_F + C Raminit Sram0 F + default_mstram.mif + + + C_RAMINIT_CMDRAM3_F + C Raminit Cmdram3 F + NONE + + + C_RAMINIT_CMDRAM2_F + C Raminit Cmdram2 F + NONE + + + C_RAMINIT_CMDRAM1_F + C Raminit Cmdram1 F + NONE + + + C_RAMINIT_CMDRAM0_F + C Raminit Cmdram0 F + default_cmdram.mif + + + C_ATG_MODE + Protocol + AXI4-Lite + + + C_ATG_MODE_L2 + Mode + Advanced + + + C_AXIS_MODE + Stream Channel Type + Master Only + + + C_ATG_SYSINIT_MODES + System Init Select + System_Init + + + C_ATG_MIF_DATA_DEPTH + 16 + + + C_ATG_STATIC_CH_SELECT + Channel Select + Read_Write + + + C_ATG_STATIC_FREE_RUN + Static Mode Debug Counters Enable + 1 + + + C_ATG_SYSTEM_MAX_CHANNELS + Number of AXI Channels + 1 + + + C_ATG_SYSTEM_CH1_HIGH + High Address (Hex) + 0xFFFFFFFF + + + C_ATG_SYSTEM_CH1_LOW + CH-1 Base Address (Hex) + 0x00000000 + + + C_ATG_SYSTEM_CH2_LOW + CH-2 Base Address (Hex) + 0x00000100 + + + C_ATG_SYSTEM_CH2_HIGH + High Address (Hex) + 0x000001FF + + + C_ATG_SYSTEM_CH3_LOW + CH-3 Base Address (Hex) + 0x00000200 + + + C_ATG_SYSTEM_CH3_HIGH + High Address (Hex) + 0x000002FF + + + C_ATG_SYSTEM_CH4_LOW + CH-4 Base Address (Hex) + 0x00000300 + + + C_ATG_SYSTEM_CH4_HIGH + High Address (Hex) + 0x000003FF + + + C_ATG_SYSTEM_CH5_LOW + CH-5 Base Address (Hex) + 0x00000400 + + + C_ATG_SYSTEM_CH5_HIGH + High Address (Hex) + 0x000004FF + + + TRAFFIC_PROFILE + Traffic Profile + Video + + + VIDEO_HSIZE + Hsize + 1920 + + + VIDEO_VSIZE + Vsize + 1080 + + + VIDEO_FRAME_RATE + Frame Rate + 60 + + + VIDEO_PIXEL_BITS + Pixel Bits + 8 + + + VIDEO_FORMAT + Format + 6 + + + ETHERNET_SPEED + Ethernet Speed (Mbps) + 1000 + + + ETHERNET_LOAD + Ethernet Load ("%") + 50 + + + USB_MODE + Usb Mode + ISOC + + + USB_LOAD + Usb Load ("%") + 50 + + + PCIE_LANES + PCIe Lanes + 1 + + + PCIE_LANE_RATE + PCIe Lane Rate (GT/s) + 2.5 + + + DATA_SIZE_AVG + Transfer Length (Avg) + 32 + + + DATA_SIZE_MIN + Transfer Length (Min) + 1 + + + DATA_SIZE_MAX + Transfer Length (Max) + 256 + + + DATA_TRAFFIC_PATTERN + Traffic Pattern + Random + + + DATA_TRANS_GAP + ITG Type + Fixed + + + DATA_ITG_GAP + ITG (Clocks) + 5 + + + DATA_TRANS_TYPE + Transaction Type + Read_Write + + + DATA_READ_SHARE + Read Share ("%") + 50 + + + DATA_WRITE_SHARE + Write Share ("%") + 50 + + + + false + + + + + + DATA_TRANS_SEED + Transaction Seed + 1 + + + C_ATG_REPEAT_TYPE + Traffic Gen + One_Shot + + + PCIE_LOAD + PCIe Load("%") + 50 + + + DATA_ADDRESS_MODE + Addressing + Fixed + + + + false + + + + + + MASTER_AXI_WIDTH + AXI Master Width + 32 + + + MASTER_HIGH_ADDRESS + AXI High Address + 0xFFFFFFFF + + + MASTER_BASE_ADDRESS + AXI Base Address + 0x00000000 + + + MASTER_HIGH_ADDRESS_EXT + AXI High Address (MSB) + 0x00000000 + + + + false + + + + + + MASTER_BASE_ADDRESS_EXT + AXI Base Address (MSB) + 0x00000000 + + + + false + + + + + + ATG_OPTIONS + Profile Selection + Custom + + + ATG_HLT_STATIC_LENGTH + Burst Length + 16 + + + ATG_HLT_STATIC_LENGTH_INCR + Burst Length + 16 + + + + false + + + + + + ATG_HLT_CH_SELECT + Channel Select + Read_Write + + + ATG_CLK_FREQ_MHZ + ATG Clock Frequency(MHz) + 100 + + + C_REPEAT_COUNT + Repeat Count + 255 + + + C_EXTENDED_ADDRESS_WIDTH + Address Width + Address width on Master AXI interface + 32 + + + + true + + + + + + C_EXTENDED_ADDRESS_WIDTH_HLT + Address Width + Address width on Master AXI interface + 32 + + + + true + + + + + + STRM_DATA_SEED + Data Generator Seed + 0xABCD + + + AXI_WR_ADDR_SEED + Write Address Gen Seed + 0x7C9B + + + + false + + + + + + AXI_RD_ADDR_SEED + Read Address Gen Seed + 0x5A5A + + + + false + + + + + + + + AXI Traffic Generator + 13 + + + + + + + + 2017.1 + + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/uart_addr.coe b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/uart_addr.coe new file mode 100644 index 0000000..250d4e4 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/uart_addr.coe @@ -0,0 +1,19 @@ +; Address file for UART initialization +; +memory_initialization_radix = 16; +memory_initialization_vector = +0000100C, +00001000, +00001004, +0000100C, +00001004, +00000000, +00000000, +00000000, +00000000, +00000000, +00000000, +00000000, +00000000, +00000000, +00000000; \ No newline at end of file diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/uart_data.coe b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/uart_data.coe new file mode 100644 index 0000000..475322a --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/atg_uart_init/uart_data.coe @@ -0,0 +1,2 @@ +memory_initialization_radix=16; +memory_initialization_vector=00000080 00000007 00000000 00000003 00000003 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000; diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/bram_16384x512.xci b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/bram_16384x512.xci new file mode 100644 index 0000000..8ebb1d7 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/bram_16384x512.xci @@ -0,0 +1,201 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_16384x512 + + + 4096 + 14 + 14 + 1 + 4 + 0 + 1 + 9 + 1 + 0 + 228 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 271.966752 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_16384x512.mem + no_coe_file_loaded + 0 + 0 + 1 + 0 + 1 + 16384 + 16384 + 512 + 512 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 16384 + 16384 + NO_CHANGE + READ_FIRST + 512 + 512 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + no_coe_file_loaded + ALL + bram_16384x512 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + false + Native + false + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 512 + 512 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 16384 + 512 + 512 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/bram_16384x512.xml b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/bram_16384x512.xml new file mode 100644 index 0000000..96228c7 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/bram_16384x512.xml @@ -0,0 +1,3398 @@ + + + xilinx.com + customized_ip + bram_16384x512 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 13 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 13 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 13 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 13 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 0 + + + C_INIT_FILE_NAME + no_coe_file_loaded + + + C_INIT_FILE + bram_16384x512.mem + + + C_USE_DEFAULT_DATA + 0 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 512 + + + C_READ_WIDTH_A + 512 + + + C_WRITE_DEPTH_A + 16384 + + + C_READ_DEPTH_A + 16384 + + + C_ADDRA_WIDTH + 14 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 512 + + + C_READ_WIDTH_B + 512 + + + C_WRITE_DEPTH_B + 16384 + + + C_READ_DEPTH_B + 16384 + + + C_ADDRB_WIDTH + 14 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 228 + + + C_COUNT_18K_BRAM + 0 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 271.966752 mW + + + + + + choice_list_47b17181 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_16384x512 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 512 + + + + true + + + + + + Write_Depth_A + 16384 + + + + true + + + + + + Read_Width_A + 512 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 512 + + + + true + + + + + + Read_Width_B + 512 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + false + + + + true + + + + + + Coe_File + no_coe_file_loaded + + + + false + + + + + + Fill_Remaining_Memory_Locations + false + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + false + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/obp.coe b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/obp.coe new file mode 100644 index 0000000..df6e9b5 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_16384x512/obp.coe @@ -0,0 +1,16386 @@ +memory_initialization_radix=16; +memory_initialization_vector= +0000000000000000000000000000000000000000000000003080003800000000000000000000000000000000000000000000000000000000308000b500000000, +000000000000000000000000000000000000000000000000821020033080009d00000000000000000000000000000000000000000000000082102002308000a5, +0000000000000000000000000000000000000000000000003080008d000000000000000000000000000000000000000000000000000000003080009500000000, +0000000000000000000000000000000000000000000000003080007d000000000000000000000000000000000000000000000000000000003080008500000000, +b4100000b6100000b0100000b210000082102007939040008d9020048210000097902000959020059d90200093902000999020079b902000a19020018f902001, +a0102003a19400001667ffefae100000ac10000082a06001a8100000aa100000a4100000a6100000a0100000a2100000bc100000be100000b8100000ba100000, +8f90200105000001821040028198400003000002854800008e100000a1902001a0a420011667fff88a1000008c10000086100000881000008210000084100000, +400000e201000000400000cb01000000400000c40100000002ca0028010000004000007901000000010000009010200183988000400000488590800084102004, +02c80012010000004000008d010000000100000090102001010000000aca0007901020014000007e82102003c2f008a0a19020018f902001400000b701000000, +81c2c00c0100000019000080981320209732f014972af0140b10000097414000861b4003881020018618fc009b2b70209a103f000703fc1f0300000005004000, +9732f014972af0140b10000097414000861b4003881020018618fc009b2b70209a103f000703fc1f030000000500400082102003c2f008a0a19020018f902001, +a0102003a19400008b9000009190200f819828049de3bf508400800181c0800085494000832870050100000091d020019803201081c2c00c1900008098132020, +81903fff83903fff899020008f902006818000008d8000008e10000085800000a0a420011667fff88a1000008c10000086100000881000008210000084100000, +81903fff83903fff87903fff8f90200281903fff83903fff87903fff8f90200381903fff83903fff87903fff8f90200481903fff83903fff87903fff8f902005, +81e800009de3bf50b580400081c7e0088346800082106004c0f04a00c0f04b00c2f009808210201887903fff82103fff81903fff83903fff87903fff8f902001, +126ffffa01000000a534b00180a4401301000000a2046001808ca00112680007a40ca01fa6046004a22c0017a5361011a00c201fae102003a1468000a1343008, +01000000a2046001808ca00112680007a4100018a6102020a00c201fa2102000a1468000a134300881e800009de3bf50b164700181c7e008b010200080a44010, +a22c0017a5361010a00c201fae102003a1468000a134300881e800009de3bf50b164700181c7e008b010200080a44010126ffffa01000000a534b00180a44013, +89293010881120018a116800881020018a1020988b297020026ffffa0100000001000000808ca00180a4001302680010a0042001a534b001a40ca01fa6046004, +9de3bf50a210200181c7e00881e80000c0f24c008143e040c0f00c009210200881e800009de3bf500100000081c7e008c671400002f83fef872c300886110003, +010000002300000801000000010000002300000801000000a0102003a52c301081e800009de3bf500100000081c7e00801000000010000000100000001000000, +81c7e00881e80000166ffffaa52c301023000008a0a420010100000001000000010000000100000023000008a52c3010a52c3010a0102003a0a42001166ffffa, +000000000000000081e80000000000000100000081c7e00801000000010000002100000801000000010000000100000001000000010000009de3bf5021000008, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000003080267200000000010000000100000030802467010000000000000000000000000000000000000000000000000000003080246b00000000, +00000000000000000000000000000000000000000000000030802445000000000000000000000000000000000000000000000000000000003080243f00000000, +00000000000000000000000000000000000000000000000030802443000000000000000000000000000000000000000000000000000000003080244b00000000, +00000000000000000000000000000000000000000000000030802433000000000000000000000000000000000000000000000000000000003080243b00000000, +000000000000000000000000000000000000000000000000308024230000000000000000000000000000000000000000000000000000000030802f7100000000, +00000000000000000000000000000000000000000000000030802413000000000000000000000000000000000000000000000000000000003068426900000000, +00000000000000000000000000000000000000000000000030802403000000000000000000000000000000000000000000000000000000003080240b00000000, +000000000000000000000000000000000000000000000000308023f300000000000000000000000000000000000000000000000000000000308023fb00000000, +00000000000000000000000000000000000000000000000010681f788210201100000000000000000000000000000000000000000000000010681f8082102010, +00000000000000000000000000000000000000000000000010681f688210201300000000000000000000000000000000000000000000000010681f7082102012, +000000000000000000000000000000000000000000000000308023c300000000000000000000000000000000000000000000000000000000308023cb00000000, +000000000000000000000000000000000000000000000000308023b300000000000000000000000000000000000000000000000000000000308023bb00000000, +000000000000000000000000000000000000000000000000308023a300000000000000000000000000000000000000000000000000000000308023ab00000000, +00000000000000000000000000000000000000000000000030802393000000000000000000000000000000000000000000000000000000003080239b00000000, +00000000000000000000000000000000000000000000000030802383000000000000000000000000000000000000000000000000000000003080238b00000000, +00000000000000000000000000000000000000000000000030802373000000000000000000000000000000000000000000000000000000003080237b00000000, +00000000000000000000000000000000000000000000000030802363000000000000000000000000000000000000000000000000000000003080236b00000000, +00000000000000000000000000000000000000000000000030802353000000000000000000000000000000000000000000000000000000003080235b00000000, +96100000981000009210000094100000ae10000090100000aa100000ac100000a6100000a8100000a2100000a410000099940000a0100000a1530000a0042001, +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e10000083f000009a1000009c100000, +00000000000000000000000000000000000000000000000030684171000000000000000000000000000000000000000000000000000000003080232b00000000, +00000000000000000000000000000000000000000000000030802313000000000000000000000000000000000000000000000000000000003080231b00000000, +00000000000000000000000000000000000000000000000030802303000000000000000000000000000000000000000000000000000000003080230b00000000, +000000000000000000000000000000000000000000000000308022f300000000000000000000000000000000000000000000000000000000308022fb00000000, +000000000000000000000000000000000000000000000000308022e30000000000000000000000000000000000000000000000000000000030802e0600000000, +00000000000000000000000000000000000000000000000030684121000000000000000000000000000000000000000000000000000000003068412900000000, +00000000000000000000000000000000000000000000000030802dde0000000000000000000000000000000000000000000000000000000030802de600000000, +00000000000000000000000000000000000000000000000030802dce0000000000000000000000000000000000000000000000000000000030802dd600000000, +00000000000000000000000000000000000000000000000030802dbe0000000000000000000000000000000000000000000000000000000030802dc600000000, +00000000000000000000000000000000000000000000000030802293000000000000000000000000000000000000000000000000000000003080229b00000000, +00000000000000000000000000000000000000000000000030802283000000000000000000000000000000000000000000000000000000003080228b00000000, +10682b50c2d849e08428800382102028070000078610e3ff84102030c4d88b0010682b8dc2d849e08428800382102028070000078610e3ff84102030c4d88a00, +00000000000000000000000000000000000000000000000030802263000000000000000000000000000000000000000000000000000000003080226b00000000, +00000000000000000000000000000000000000000000000030802253000000000000000000000000000000000000000000000000000000003080225b00000000, +00000000000000000000000000000000000000000000000030802243000000000000000000000000000000000000000000000000000000003080224b00000000, +00000000000000000000000000000000000000000000000030802233000000000000000000000000000000000000000000000000000000003080223b00000000, +00000000000000000000000000000000000000000000000030802223000000000000000000000000000000000000000000000000000000003080222b00000000, +00000000000000000000000000000000000000000000000030802213000000000000000000000000000000000000000000000000000000003080221b00000000, +00000000000000000000000000000000000000000000000030802203000000000000000000000000000000000000000000000000000000003080220b00000000, +000000000000000000000000000000000000000000000000308021f300000000000000000000000000000000000000000000000000000000308021fb00000000, +000000000000000000000000000000000000000000000000308021e300000000000000000000000000000000000000000000000000000000308021eb00000000, +000000000000000000000000000000000000000000000000308021d300000000000000000000000000000000000000000000000000000000308021db00000000, +000000000000000000000000000000000000000000000000308021c300000000000000000000000000000000000000000000000000000000308021cb00000000, +000000000000000000000000000000000000000000000000308021b300000000000000000000000000000000000000000000000000000000308021bb00000000, +000000000000000000000000000000000000000000000000308021a300000000000000000000000000000000000000000000000000000000308021ab00000000, +00000000000000000000000000000000000000000000000030802193000000000000000000000000000000000000000000000000000000003080219b00000000, +00000000000000000000000000000000000000000000000030802183000000000000000000000000000000000000000000000000000000003080218b00000000, +0000000000000000000000000000000000000000000000003080217300000000000000000000000000000000000000000000000000000000106878cebf983fff, +00000000000000000000000000000000000000000000000030802163000000000000000000000000c2d849e0000000008210202810685a4a8143e040c4d80e80, +00000000000000000000000000000000000000000000000030682f1c000000000000000000000000000000000000000000000000000000003080215b00000000, +0000000000000000000000000000000000000000000000000000000000000000000000000000000010682a81c2d849e018601cf0821020288354000080a06003, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +0000000000000000000000000000000000000000000000000000000000000000000000000000000010682b31c2d849e018601cd0821020288354000080a06003, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +0000000000000000000000000000000000000000000000000000000000000000c45860f000000000c2d849e010682bef18601cb0821020288354000080a06002, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000308020e300000000000000000000000000000000000000000000000000000000308020eb00000000, +000000000000000000000000000000000000000000000000308020d300000000000000000000000000000000000000000000000000000000308020db00000000, +000000000000000000000000000000000000000000000000308020c30000000000000000000000000000000000000000c2d849e0000000008210202810686902, +000000000000000000000000000000000000000000000000308020b300000000000000000000000000000000000000000000000000000000308020bb00000000, +000000000000000000000000000000000000000000000000308020a300000000000000000000000000000000000000000000000000000000306837d000000000, +00000000000000000000000000000000000000000000000030802093000000000000000000000000000000000000000000000000000000003080209b00000000, +00000000000000000000000000000000000000000000000030802083000000000000000000000000000000000000000000000000000000003080208b00000000, +00000000000000000000000000000000000000000000000030802073000000000000000000000000000000000000000000000000000000003080207b00000000, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6f3a857f8f3a85ff2f3a847f4f3a84feef3a837f0f3a83feaf3a827ecf3a82fe6f3a817e8f3a81fe2f3a807e4f3a80f87802080e0f3a7ff808ba00102680014, +8188000083f00000e8bba030ecbba038e0bba020e4bba028f8bba010fcbba018f0bba000f4bba008010000009d33a000fef3a8771080000bfaf3a867fcf3a86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +f6dba857f8dba85ff2dba847f4dba84feedba837f0dba83feadba827ecdba82fe6dba817e8dba81fe2dba807e4dba80f87802080e0dba7ff808ba00102680014, +8388000083f00000e89ba030ec9ba038e09ba020e49ba028f89ba010fc9ba018f09ba000f49ba008010000009d33a000fedba8771080000bfadba867fcdba86f, +00000000000000000000000000000000000000000000000030801c630000000000000000000000000000000000000000000000000000000030801c6b00000000, +00000000000000000000000000000000000000000000000030801c530000000000000000000000000000000000000000000000000000000030801c5b00000000, +00000000000000000000000000000000000000000000000030801c430000000000000000000000000000000000000000000000000000000030801c4b00000000, +00000000000000000000000000000000000000000000000030801c330000000000000000000000000000000000000000000000000000000030801c3b00000000, +00000000000000000000000000000000000000000000000030801c230000000000000000000000000000000000000000000000000000000030801c2b00000000, +00000000000000000000000000000000000000000000000030801c130000000000000000000000000000000000000000000000000000000030801c1b00000000, +00000000000000000000000000000000000000000000000030801c030000000000000000000000000000000000000000000000000000000030801c0b00000000, +00000000000000000000000000000000000000000000000030801bf30000000000000000000000000000000000000000000000000000000030801bfb00000000, +00000000000000000000000000000000000000000000000030801be30000000000000000000000000000000000000000000000000000000030801beb00000000, +000000000000000000000000000000000000000000000000308055490000000000000000000000000000000000000000000000000000000030801bdb00000000, +00000000000000000000000000000000000000000000000030801bc3000000000000000000000000000000000000000000000000000000003080554500000000, +00000000000000000000000000000000000000000000000030801bb30000000000000000000000000000000000000000000000000000000030801bbb00000000, +00000000000000000000000000000000000000000000000030801ba30000000000000000000000000000000000000000000000000000000030801bab00000000, +00000000000000000000000000000000000000000000000030801b930000000000000000000000000000000000000000000000000000000030801b9b00000000, +00000000000000000000000000000000000000000000000030801b830000000000000000000000000000000000000000000000000000000030801b8b00000000, +00000000000000000000000000000000000000000000000030801b730000000000000000000000000000000000000000000000000000000030801b7b00000000, +00000000000000000000000000000000000000000000000030801b630000000000000000000000000000000000000000000000000000000030801b6b00000000, +00000000000000000000000000000000000000000000000030801b530000000000000000000000000000000000000000000000000000000030801b5b00000000, +00000000000000000000000000000000000000000000000030801b430000000000000000000000000000000000000000000000000000000030801b4b00000000, +00000000000000000000000000000000000000000000000030801b330000000000000000000000000000000000000000000000000000000030801b3b00000000, +00000000000000000000000000000000000000000000000030801b230000000000000000000000000000000000000000000000000000000030801b2b00000000, +00000000000000000000000000000000000000000000000030801b130000000000000000000000000000000000000000000000000000000030801b1b00000000, +00000000000000000000000000000000000000000000000030801b030000000000000000000000000000000000000000000000000000000030801b0b00000000, +00000000000000000000000000000000000000000000000030801af30000000000000000000000000000000000000000000000000000000030801afb00000000, +00000000000000000000000000000000000000000000000030801ae30000000000000000000000000000000000000000000000000000000030801aeb00000000, +00000000000000000000000000000000000000000000000030801ad30000000000000000000000000000000000000000000000000000000030801adb00000000, +00000000000000000000000000000000000000000000000030801ac30000000000000000000000000000000000000000000000000000000030801acb00000000, +00000000000000000000000000000000000000000000000030801ab30000000000000000000000000000000000000000000000000000000030801abb00000000, +00000000000000000000000000000000000000000000000030801aa30000000000000000000000000000000000000000000000000000000030801aab00000000, +00000000000000000000000000000000000000000000000030801a930000000000000000000000000000000000000000000000000000000030801a9b00000000, +00000000000000000000000000000000000000000000000030801a830000000000000000000000000000000000000000000000000000000030801a8b00000000, +00000000000000000000000000000000000000000000000030801a730000000000000000000000000000000000000000000000000000000030801a7b00000000, +00000000000000000000000000000000000000000000000030801a630000000000000000000000000000000000000000000000000000000030801a6b00000000, +00000000000000000000000000000000000000000000000030801a530000000000000000000000000000000000000000000000000000000030801a5b00000000, +00000000000000000000000000000000000000000000000030801a430000000000000000000000000000000000000000000000000000000030801a4b00000000, +00000000000000000000000000000000000000000000000030801a330000000000000000000000000000000000000000000000000000000030801a3b00000000, +00000000000000000000000000000000000000000000000030801a230000000000000000000000000000000000000000000000000000000030801a2b00000000, +00000000000000000000000000000000000000000000000030801a130000000000000000000000000000000000000000000000000000000030801a1b00000000, +00000000000000000000000000000000000000000000000030801a030000000000000000000000000000000000000000000000000000000030801a0b00000000, +000000000000000000000000000000000000000000000000308019f300000000000000000000000000000000000000000000000000000000308019fb00000000, +000000000000000000000000000000000000000000000000308019e300000000000000000000000000000000000000000000000000000000308019eb00000000, +000000000000000000000000000000000000000000000000308019d300000000000000000000000000000000000000000000000000000000308019db00000000, +000000000000000000000000000000000000000000000000308019c300000000000000000000000000000000000000000000000000000000308019cb00000000, +000000000000000000000000000000000000000000000000308019b300000000000000000000000000000000000000000000000000000000308019bb00000000, +000000000000000000000000000000000000000000000000308019a300000000000000000000000000000000000000000000000000000000308019ab00000000, +00000000000000000000000000000000000000000000000030801993000000000000000000000000000000000000000000000000000000003080199b00000000, +00000000000000000000000000000000000000000000000030801983000000000000000000000000000000000000000000000000000000003080198b00000000, +00000000000000000000000000000000000000000000000030801973000000000000000000000000000000000000000000000000000000003080197b00000000, +00000000000000000000000000000000000000000000000030801963000000000000000000000000000000000000000000000000000000003080196b00000000, +00000000000000000000000000000000000000000000000030801953000000000000000000000000000000000000000000000000000000003080195b00000000, +00000000000000000000000000000000000000000000000030801943000000000000000000000000000000000000000000000000000000003080194b00000000, +00000000000000000000000000000000000000000000000030801933000000000000000000000000000000000000000000000000000000003080193b00000000, +00000000000000000000000000000000000000000000000030801923000000000000000000000000000000000000000000000000000000003080192b00000000, +00000000000000000000000000000000000000000000000030801913000000000000000000000000000000000000000000000000000000003080191b00000000, +00000000000000000000000000000000000000000000000030801903000000000000000000000000000000000000000000000000000000003080190b00000000, +000000000000000000000000000000000000000000000000308018f300000000000000000000000000000000000000000000000000000000308018fb00000000, +000000000000000000000000000000000000000000000000308018e300000000000000000000000000000000000000000000000000000000308018eb00000000, +000000000000000000000000000000000000000000000000308018d300000000000000000000000000000000000000000000000000000000308018db00000000, +000000000000000000000000000000000000000000000000308018c300000000000000000000000000000000000000000000000000000000308018cb00000000, +000000000000000000000000000000000000000000000000308018b300000000000000000000000000000000000000000000000000000000308018bb00000000, +000000000000000000000000000000000000000000000000308018a300000000000000000000000000000000000000000000000000000000308018ab00000000, +00000000000000000000000000000000000000000000000030801893000000000000000000000000000000000000000000000000000000003080189b00000000, +00000000000000000000000000000000000000000000000030801883000000000000000000000000000000000000000000000000000000003080188b00000000, +00000000000000000000000000000000000000000000000030801873000000000000000000000000000000000000000000000000000000003080187b00000000, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000000000000000000003080577900000000, +c258400281c04000050000048410a010c2586000c2586de882102028c2d849e00000000000000000000000000000000081f00000000000000100000090102007, +c258400281c04000050000048410a020c2586000c2586de882102028c2d849e0c258400281c04000050000048410a018c2586000c2586de882102028c2d849e0, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +0000000000000000000000000000000081f000000000000001000000901020070000000000000000000000000000000081f00000000000000100000090102007, +00000000000000000000000000000000000000000000000030805376000000000000000000000000000000000000000081f00000000000000100000090102007, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff00001000000000000000000000000000000000000008e21e000000000008f4140001080120e, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +000000000000000000000000000000008e21e000000000008f414000108011e6000000000000000000000000000000008e21e000000000008f41400010801228, +00000000000000000000000000000000000000000000000030bff00001000000000000000000000000000000000000008e21e000000000008f4140001080137c, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000008e21e000000000008f4140001080128400000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff00001000000000000000000000000000000000000008e21e000000000008f41400010801124, +000000000000000000000000000000008e21e000000000008f41400010801234000000000000000000000000000000008e21e000000000008f4140001080123c, +000000000000000000000000000000008e21e000000000008f414000108010fc000000000000000000000000000000008e21e000000000008f41400010801104, +000000000000000000000000000000008e21e000000000008f414000108010ec000000000000000000000000000000008e21e000000000008f414000108010f4, +000000000000000000000000000000008e21e000000000008f414000108010dc000000000000000000000000000000008e21e000000000008f414000108010e4, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +000000000000000000000000000000008e21e000000000008f4140001080107800000000000000000000000000000000000000000000000030bff00001000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff00001000000000000000000000000000000000000008e21e000000000008f4140001080100c, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff00001000000000000000000000000000000000000008e21e000000000008f414000108006e2, +000000000000000000000000000000008e21e000000000008f4140001080070400000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff00001000000000000000000000000000000000000008e21e000000000008f41400010800736, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +00000000000000000000000000000000000000000000000030bff0000100000000000000000000000000000000000000000000000000000030bff00001000000, +000000000000000000000000000000008e21e000000000008f414000108002ea00000000000000000000000000000000000000000000000030bff00001000000, +8528b00e86102800186000068420e0018751c00080a0e002832870058200800185514000879040008410a0048d9080001260046985518000854840008088a004, +23000005a21463a0e4740011a554000023000005a2146398a0100001a551c000e47062a8e67062b0e0706298e27062a082102020c2d849e081c040028198c000, +e6746010a7500000e6746008a750c000e6746000a75080008f948000a7484000a64ce028a2044013a551c000a624a001a21463a8a2040011e474001123000005, +c0746000c2746008a2044013a1948000a424a001a64ca040a2040011a554000023000006a2146098126ffff4a2246028e6746020a4a4a001e6746018a7504000, +a21463a0e45c00118f94800023000005a2146398e45c0011a224604023000005a4a4a001166ffff6cc746030ce746038c8746020ca746028c4746010c6746018, +c7f040800af8fffa01000000861000020100000001000000820060a001000000c2d849e0c25860088400a00182102020c4d889e0c408a000a194800084102020, +8f414000108000048210000110803d3b8f414000c20c20008200600410803d2772616e643a20000048444f473a20737483414000574154430100000010800007, +20746c3a20000000108000048341400010803d2e8f414000c20c601d82100001a2102028e2dc49e010803d1c8f414000753a2000820060048341400020766370, +8350c0008210000110803d048f4140002000000082006004834140002074743a8f414000108000048210000110803d238f4140008351c0008200600410803d0f, +834140000d0a00008f414000108000038210000110803d0d8f414000835400008200600410803cf920676c3a20000000108000048341400010803d188f414000, +a2040011a551c00023000005a21463a810803ce68f4140000d0a000082006004702073746174653a83414000207472618f414000108000068200600410803cef, +2074743a20000000108000048341400010803cee8f414000821000138210000110803cda8f4140003a20000082006004834140002020746ca610200110800004, +8f414000c25c60008200600410803cc3746174653a20000083414000206874738f414000108000058210000110803ce38f414000c25c60108200600410803ccf, +8f414000108000058210000110803ccb8f414000c25c60088200600410803cb76174653a2000000083414000207473748f414000108000058210000110803cd7, +633a2000820060048341400020746e708f414000108000048210000110803cbf8f414000c25c60188200600410803cab207470633a200000834140000d0a2020, +086fffb3a2046028a604e00180a4c01210803c968f4140000d0a000082006004108000038341400010803cb48f414000c25c60208210000110803ca08f414000, +a610200010800004a2040011a554000023000006a214609810803c888f41400000000000820060046f62616c733a0d0a207472617020676c1080000783414000, +8f414000108000068200600410803c73834140000d0a00008f414000108000038210001310803c9110803c7c8f4140003a20000082006004834140002020676c, +2000000082006004108000038341400010803c7e8f414000c25c60008210000110803c6a8f414000000000008200600467302d2567333a208341400020202025, +10803c6a8f414000c25c60108210000110803c568f4140002000000082006004108000038341400010803c748f414000c25c60088210000110803c608f414000, +10803c428f4140000d0a000082006004108000038341400010803c608f414000c25c60188210000110803c4c8f41400020000000820060041080000383414000, +83414000200000008f414000108000038210000110803c4d8f414000c25c60208200600410803c3967373a20000000002020202567342d251080000683414000, +8210000110803c398f414000c25c60308200600410803c2583414000200000008f414000108000038210000110803c438f414000c25c60288200600410803c2f, +8200600410803c11834140000d0a00008f414000108000038210000110803c2f8f414000c25c60388200600410803c1b83414000200000008f41400010800003, +10803c028f4140000000000082006004696e646f773a0d0a757272656e742077834140000d0a2063a20460401080000880a4c0120a6fff8c8f414000a604e001, +2000000082006004108000038341400010803c0e8f414000821000088210000110803bfa8f414000333a2000820060042020256f302d256f1080000583414000, +10803bfa8f4140008210000a8210000110803be68f4140002000000082006004108000038341400010803c048f414000821000098210000110803bf08f414000, +10803bd28f4140000d0a000082006004108000038341400010803bf08f4140008210000b8210000110803bdc8f41400020000000820060041080000383414000, +2000000082006004108000038341400010803bde8f4140008210000c8210000110803bca8f414000373a2000820060042020256f342d256f1080000583414000, +10803bca8f4140008210000e8210000110803bb68f4140002000000082006004108000038341400010803bd48f4140008210000d8210000110803bc08f414000, +10803ba28f4140000d0a000082006004108000038341400010803bc08f4140008210000f8210000110803bac8f41400020000000820060041080000383414000, +834140000d0a00008f414000108000038210000110803badc2d849e0c25860e88f414000821020288200600410803b9b727462613a2000001080000483414000, +65206c6f6f70206920696e66696e6974456e746572696e671080000e83414000820060a0c0704000c2d849e0c25860088f414000821020208200600410803b8f, +e05c2298c2d808a0e45c22a8e25c22a001000000e65c22b08f41400002c800008200600410803b792e200d0a000000007065727669736f726e20746865204879, +81984000821020288210280081c2000090100003a19020028f902002879140008600e0408b50c000c6d8c9e0c658e0e8c2f008a0861020288410200c82284002, +c628a0008751c000c670a010861020018400400287410000c4586190c25861a802c0802e0100000001000000c4586198c458abd00ac08031c2d849e0c4586000, +88112002c828a0018088e800326800023268000288112001881000008088e001c670a00887480000c630a00487508000c628a0038750c000c628a00287540000, +80a100058966f040c870e00088012040c658e1a888208003c6d8c9e0ca58e198c070a03886102028c070a028c070a030c030a006c070a02087500000c670a018, +01000000c4586198c458abd00ac08033c2d849e0c458600001000000821020288220000181c1c0010300001082106000cad949e0c8716190c870e0088a102028, +c630a00487508000c628a0038750c000c628a00287540000c628a0008751c000c670a010861020018400400287410000c4586190c25861a802c0803001000000, +c8d90a00c870a020c030a0068810201887500000c670a01888112002c828a0018088e800326800023268000288112001881000008088e001c670a00887480000, +cad949e0c8716190c870e0088a10202880a100058966f040c870e00088012040c658e1a888208003c6d8c9e0ca58e198c070a03886102028c070a028c070a030, +c4586190c25861a802c080320100000001000000c4586198c458abd00ac08035c2d849e0c458600001000000821020288220000181c1c0010300001082106000, +881000008088e001c670a00887480000c630a00487508000c628a0038750c000c628a00287540000c628a0008751c000c670a010861020018400400287410000, +c870a028c070a03088102020c8d90b00c8d90b00c870a020c030a0068810201887500000c670a01888112002c828a0018088e800326800023268000288112001, +0300001082106000cad949e0c8716190c870e0088a10202880a100058966f040c870e00088012040c658e1a888208003c6d8c9e0ca58e198c070a03886102028, +8400400287410000c4586190c25861a802c0802e0100000001000000c4586198c458abd00ac08031c2d849e0c458600001000000821020288220000181c1c001, +3268000288112001881000008088e001c670a00887480000c630a00487508000c628a0038750c000c628a00287540000c628a0008751c000c670a01086102001, +c658e1a888208003c6d8c9e0ca58e198d670a03886102028d270a028d470a030da30a006d070a02087500000c670a01888112002c828a0018088e80032680002, +c2d849e0c458600001000000821020288220000181c1c0010300001082106000cad949e0c8716190c870e0088a10202880a100058966f040c870e00088012040, +c628a00287540000c628a0008751c000c670a010861020018400400287410000c4586190c25861a802c0802e0100000001000000c4586198c458abd00ac08031, +87500000c670a01888112002c828a0018088e800326800023268000288112001881000008088e001c670a00887480000c630a00487508000c628a0038750c000, +c870e0088a10202880a100058966f040c870e00088012040c658e1a888208003c6d8c9e0ca58e198d670a03886102028d270a028d470a030c030a006d070a020, +02c0802e0100000001000000c4586198c458abd00ac08031c2d849e0c458600001000000821020288220000181c1c0010300001082106000cad949e0c8716190, +c670a00887480000c630a00487508000c628a0038750c000c628a00287540000c628a0008751c000c670a010861020018400400287410000c4586190c25861a8, +c070a03886102028d270a028d470a030c030a006d070a02087500000c670a01888112002c828a0018088e800326800023268000288112001881000008088e001, +8220000181c1c0010300001082106000cad949e0c8716190c870e0088a10202880a100058966f040c870e00088012040c658e1a888208003c6d8c9e0ca58e198, +c670a010861020018400400287410000c4586190c25861a802c080300100000001000000c4586198c458abd00ac08033c2d849e0c45860000100000082102028, +8088e800326800023268000288112001881000008088e001c670a00887480000c630a00487508000c628a0038750c000c628a00287540000c628a0008751c000, +c658e1a888208003c6d8c9e0ca58e198c070a03886102028ca70a028c070a030cad809a0c870a020c030a006c8d8098087500000c670a01888112002c828a001, +c2d849e0c458600001000000821020288220000181c1c0010300001082106000cad949e0c8716190c870e0088a10202880a100058966f040c870e00088012040, +c628a00287540000c628a0008751c000c670a010861020018400400287410000c4586190c25861a802c080300100000001000000c4586198c458abd00ac08033, +87500000c670a01888112002c828a0018088e800326800023268000288112001881000008088e001c670a00887480000c630a00487508000c628a0038750c000, +80a100058966f040c870e00088012040c658e1a888208003c6d8c9e0ca58e198c070a03886102028ca70a028c070a030cad809a0c870a020c030a006c8d80980, +10800005834140000ac8804101000000c2d849e0c458616801000000821020288220000181c1c0010300001082106000cad949e0c8716190c870e0088a102028, +735f636f6d6d6f6e7372632f747261702f636f6d6d6f6e2f2e2e2f2e2e2f2e2e1080000b834140001080397c8f41400020000000820060040d0a41424f52543a, +1080397a8f4140008210205782100001108039668f41400078000000820060042c206c696e65203010800005834140001080396e8f4140002e73000082006004, +206e7271206d69736f725f747261703a61626c655f6572726e6f6e726573756d1080000c834140001080395c8f4140003a200000820060041080000383414000, +8210207f8348400030803557106ffbb38f414000834140008200600410803947834140000d0a00008f41400010800003820060041080394d73696e670d0a0000, +8f4800008199e02081f000008f9020018200604083904000c2d849e0c25860e8c2f008a0821020288410200c8228400201000000c2d808a08088600402800002, +83500000b0100001010000001068353681f0000030bffba78200606083904000c25860e88b90400082102028c2d849e082284002c2f008a0c2d808a08410200c, +8f41400089414000821880011068395482187c008528b02084103f000303cf4f82102020c0f049e082102028c0f049e0b6100004b8100005b2100002b4100003, +070000008610e0008e11e0008f29f020841080070f000000053c00008410a0008e11e0ff8f29f020821000180f0000000a680048010000008931302080a12080, +03000000821060ff106838c58f4140008628e03f8420c0028610c0078600e03f073c00f38610e3668e11e0ff8f29f020010000000f0000008610c0070ac8c008, +0f0000008e11e0008210400782204005033c0000821060008e11e0ff8f29f020841000180f000000834140008a2140018a1162908a114001832870200b3c0024, +8600e0078628e0078620c0058620c0018610e3668610c0078f29f020073c00f30f0000008e11e0ff0ac8c008010000008610e0008610c0078f29f02007000000, +999020069790200081982804959020068f902001a190200181c18000010000008a10001c8c0620208610001a8810001b8210001884100019106838b38f414000, +8a214001070000008a114001834140000b3c00248a116374821060ff83287020a610001c03000000a2100019a410001b9d902000a01000189b90200093902000, +010000000f000000821040070ac8400803000000821060008e11e0008f29f0208b9840000f0000008210400382204005033c0000821060008610e0ff8728f020, +832870200b3c002503000000821060ff106838678f41400084060019842080018228603f82204005821040078200603f033c00f3821063668e11e0ff8f29f020, +f871a5000acec03ef271a008f671a0788c204005f071a00082106240821040068d29b020033c02590d0000008c11a0ff834140008a2140018a1160088a114001, +61746c616b65732f2e2f2e2e2f677265834140002e2e2f2e8f4140001080000c82006004108038794f52543a20000000834140000d0a41420100000010800005, +108038628f41400078000000820060042c206c696e65203010800005834140001080386a8f4140002e730000820060047372632f6d61696e6f6e746172696f2f, +737472616e6473204e6f206c697665201080000883414000108038588f4140003a200000820060041080000383414000108038768f414000821020e182100001, +8536d0018088a00130803457821020008f414000834140008200600410803847834140000d0a00008f41400010800003820060041080384d646566696e656400, +82106380821040068d29b020033c045a0d0000008c11a0fff4762018b810001ab0100006ca76202082104002c271a4188528700883287010226ffffe82006001, +82106030821040068d29b020033c271c0d0000008c11a0ffb4204005f476203882106340821040068d29b020033c018d0d0000008c11a0ffb2204005f2762028, +82106380821040068d29b020033c27180d0000008c11a0ff82204005c276205082106330821040068d29b020033c2fe60d0000008c11a0ffb6204005f6762040, +f0706008c070611084102020c2f089e0c25e2040820040048410a1588848c002c0f089e0050000468608e01f84102028874680008730f00882204005c2762058, +91d020139010000700000000900220046c6c202e2e2e0d0a6520616e6420776591414000416c69768e100008108000081868000e010000008f54000080a1e002, +901000078f5400009002200491d0201320736574000000006e6420737461727491414000537472618e100008108000071868000d010000008f54000080a1e002, +010000008e10000880a1e00218680006901000078f5400009002200491d02013203d2030780000001080000491414000010000008e10000880a1e0021868000a, +8f54000080a1e00291d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010001291d02014, +80a1e0021868000a901000078f5400009002200491d02013616c206d656d00006c2070687973696391414000546f74618e100008108000071868000d01000000, +9010001391d02014010000008e10000880a1e00218680006901000078f5400009002200491d02013203d2030780000001080000491414000010000008e100008, +8f29f020033c00bd0f0000008e11e0ff91d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009901000078f540000, +8f4140008620c0078610e0388610c0078f29f020073c00260f0000008e11e0ff8410a2d8841080078f29f020053c00bd0f0000008e11e0ff821062d082104007, +a19020008f9020001068047b8f414000c2d849e0f0586008010000008210202080a04002066ffffbc870400082006008c8584000882100038220400384208003, +1080000891414000010000008e10000880a1e0021868000ef45e20388f540000f0586008f25e202882102020c2d849e040008b0a01000000106860508f414000, +4000965c01000000106805d78f414000821062128410200190100007030000279002200491d0201320656c73650d0a006572797468696e677365747570206576, +9002200491d020137461696c730d0a00696e696e67206465696e672072656d6191414000536574748e100008108000091868000f010000008f54000080a1e002, +74726f6c20646f6d20666f7220636f6e617274206265617453746172742068651080000c91414000010000008e10000880a1e00218680012901000078f540000, +820060a001000000c2d849e0c25860088400a00182102020c4d889e0c408a0008f4140008410202090100007106855c49002200491d0201361696e0d0a000000, +b0100001881020283080006001000000820060a0c0704000c2d849e0c25860080100000082102020c7f040800af8fffa01000000861000020100000001000000, +8610e0ff8728f0208341400007000000010000008b9e00008806203081c100000a680005010000008931302080a12080c0f109e089414000c0f109e088102020, +f458a0400300004683307008b608601f84208003834680008410a2408410800489293020053c025909000000881120ff8410800386208001053c00268410a230, +834140008801200880a12180366032f68600e110c858e00086102020c6d8c9e0c0f049e0c076a110f4f049e082102028b406800182102020821061588248401b, +8600e110c858e00086102020c6d8c9e0939020009d902000979020009b90200095902006999020068f90200081982804c4712000a1902000c870e00088010003, +82102020c2d849e0106836958f41400086102100c258400386102108c458400382102020c2d849e08600c004c858e00888212008c870e00024c132e383414000, +c2d849e0c410601088102000821020203068000201000000126ffffc01000000c7f1100280a08003c459000086288018b12e101b88012518f6086000b0102001, +20000000820060040d0a41424f52543a10800005834140000268003d01000000c258e00880a1a00080a1a0012268011f8600e018cc58e0008648a01086004003, +82006004108036916d61696e2e73000072696f2f7372632f6b65732f6f6e74612f67726561746c612e2e2f2e2e2f2e2e1080000c83414000108036a08f414000, +834140003a2000008f41400010800003821000011080369d8f414000821022a682006004108036896e65203078000000834140002c206c698f41400010800005, +834140000d0a00008f41400010800003820060041080367520636f646500000067616c20736c6f7483414000496c6c658f41400010800007820060041080367f, +8f41400010685ced0100000010680a4780a12002126fffb2c43060108801200180a0a002856450003080327f8400a0018f41400083414000820060041080366f, +2e2e2f2e2e2f2e2e1080000c83414000108036568f41400020000000820060040d0a41424f52543a10800005834140000ac8803f0100000001000000c4586000, +6e65203078000000834140002c206c698f4140001080000582006004108036476d61696e2e73000072696f2f7372632f6b65732f6f6e74612f67726561746c61, +83414000766370758f414000108000098200600410803635834140003a2000008f4140001080000382100001108036538f414000821022d5820060041080363f, +8f414000834140008200600410803623834140000d0a00008f414000108000038200600410803629206775657374000061737369676e656420686173206e6f20, +c8d909e0ca0920008600a8788810202088010003c271200088012008c870e0003660322d83414000c858e00080a12180c6d8c9e08600e1103080323386102020, +8b30f0068b2970038810200189291005c608601d8a08e03f2af13ffa80a1400488100005c9f0d0002268321f8341400002c10004010000008a01600188102000, +0ac9800b8c00c0028c018001cc59a010821020008c00c0028c298004cc706018cc706010cc586018cc5860108c2980048200c002820040058400a96086103f20, +c0f0cbe08143e04086102080c0f0cae08600e0208143e040c071a00006f8ffe98c00c002c071a0080cf87ff7822060080ac98007010000008c018001cc59a018, +8610e2b086008003c070c00007000009c45860008600a87884008001c258a00882206008c270a00024c071ef834140008400a110c258a00084102020c4d889e0, +ca5920a080a1400101000000c071204880a140011268000301000000ca592048ca09200102f97ffb06680011010000008821211080a100030b0000448800c005, +c0706158c0706160c0706150c0706168c07061b0c07061b8c07061a8c0706198c07060f0c07061a001000000c07060f8c07120a010bfffef126ffff201000000, +c0706128c0706130c0706120c0706138861023e8c0f0c4a0861023e0c0f0c4a0c0706178c0706180c0706170c0706188861023f8c0f0c4a0861023f0c0f0c4a0, +80a120033260000386102001c8586060861023c8c0f0c4a0861023c0c0f0c4a0c0706108c0706110c0706100c0706118861023d8c0f0c4a0861023d0c0f0c4a0, +20000000820060040d0a41424f52543a10800005834140000268004301000000c658601080a0800384102020c4d889e081c1e00401000000c67060608143e040, +82006004108035716d61696e2e73000072696f2f7372632f6b65732f6f6e74612f67726561746c612e2e2f2e2e2f2e2e1080000c83414000108035808f414000, +834140003a2000008f41400010800003821000011080357d8f414000821023ae82006004108035696e65203078000000834140002c206c698f41400010800005, +737472616e640000746f207468697320737369676e6564207075206e6f74206164756c656420766383414000536368658f4140001080000d820060041080355f, +80a0e0040268006c80a0e0010268006e30803159c65860608f414000834140008200600410803549834140000d0a00008f41400010800003820060041080354f, +617465203d20307809766370752073741080000791414000010000008e10000880a1e0021868000d010000008f54000080a0e0070268006880a0e0020268006a, +18680009010000008f54000080a1e00291d02014901000078e1000089010000318680006010000008f54000080a1e00291d02013901000070000000090022004, +8f4140001080000c82006004108035134f52543a20000000834140000d0a414290100007108000059002200491d02013914140000d0a00008e10000810800003, +1080000583414000108035048f4140002e730000820060047372632f6d61696e6f6e746172696f2f61746c616b65732f2e2f2e2e2f677265834140002e2e2f2e, +108034f28f4140003a200000820060041080000383414000108035108f414000821023c382100001108034fc8f41400078000000820060042c206c696e652030, +6669677572656400206e6f7420636f6e7374617465206f72696c6c6567616c207320696e20616e2064207663707520695363686564756c651080001083414000, +80a0e0010260002dc2f089e0c6586060308030e9841020288f4140008341400082006004108034d9834140000d0a00008f4140001080000382006004108034df, +0d0a00009002200420726573746f726541626f757420746f1080000791414000010000008e10000880a1e0021868000d010000008f54000080a0e0070260002b, +82102028c2d849e0108034b48f414000650d0a00820060046420726573746f72436f6d706c6574651080000783414000106835938f41400091d0201390100007, +ca5860008410000582102028c2d849e081f0000083f000000ac840030100000084102940c20840028738f001c6706950874100008728f00184102002c4706060, +0d0a41424f52543a108000058341400012680040010000000100000080a0e00380a0e001026800c50268012601000000c601601080a0e002106843a88f414000, +6d61696e2e73000072696f2f7372632f6b65732f6f6e74612f67726561746c612e2e2f2e2e2f2e2e1080000c834140001080348e8f4140002000000082006004, +8f41400010800003821000011080348b8f4140008210242782006004108034776e65203078000000834140002c206c698f41400010800005820060041080347f, +74656400820060047420737570706f7264206e6f74207965742073757370656e83414000677565738f4140001080000a820060041080346d834140003a200000, +834140000d0a4142010000001080000580a0e00012680042834140003080306a1080345a8f4140000d0a0000820060041080000383414000108034608f414000, +7372632f6d61696e6f6e746172696f2f61746c616b65732f2e2f2e2e2f677265834140002e2e2f2e8f4140001080000c820060041080344d4f52543a20000000, +1080344a8f4140008210243082100001108034368f41400078000000820060042c206c696e65203010800005834140001080343e8f4140002e73000082006004, +6e206c61756e636820737461746520692053544f50504544677565737420696e1080000c834140001080342c8f4140003a200000820060041080000383414000, +834140000d0a414230803027108000058f414000834140008200600410803417834140000d0a00008f41400010800003820060041080341d5f76637075000000, +7372632f6d61696e6f6e746172696f2f61746c616b65732f2e2f2e2e2f677265834140002e2e2f2e8f4140001080000c820060041080340d4f52543a20000000, +1080340a8f4140008210243282100001108033f68f41400078000000820060042c206c696e6520301080000583414000108033fe8f4140002e73000082006004, +61756e63685f766361746520696e206c6775657374207374696e76616c6964201080000b83414000108033ec8f4140003a200000820060041080000383414000, +c659400380a0e000070000098610e2708341400030802fe8108033d88f4140000d0a0000820060041080000383414000108033de8f4140007075000082006004, +c45920088420800106c0400d0100000001000000c2592000808860010260001088010005c20920188c11a3ff8800e068861027e00d3fffff1268001b01000000, +0f0000098e11e258c2d849e0c45860008620e020821020288f4140000cf8ffec8c1000011068338a80a0400602600004ce5920108200400704c0800901000000, +8400800410683384c4592000c85920108400a068880140028530b0228528b005c6594007c45960500f0000098e11e2588e11e250c2594007c65880070f000009, +1068338a8f414000820160218410202082102002c229602082102002c22160108400a020c471a0d8c4596050c471a0e8ccd989e0ca59a0008f4140008c102028, +c458a0000700011584102028c4d889e083287001833870010100000083410000d05a20004000905790102028d0da09e010685c6e8f4140008f902000a1902000, +90102028d0da09e010685c548f4140008f902000a19020001080000601000000c270e000c070e0088610e39886008003c270c000070001158610e39086008003, +8210220083287020ccd989e0ca59a0008990c0008c1020288728f0018730f00116680005010000008751000080a0e000106834438f4140004000645801000000, +c2d808a08410200c1068053f8f414000106805368f41400082102010c0f0442082102008c0f0442082102080c4f04b0083980000c409a01e8210640085904000, +c0f044a0821023d8c0f044a0821023d0c0f044a0821023c89190200f821023c0c071a0f0ad802000c2f008a0c071a0f801000000822840028088800102600004, +c119a020c519a0208d802004c071a020821060108d904000c0f044a083518000c0f044a0821023f8c0f044a0821023f0c0f044a0821023e8c0f044a0821023e0, +c319a020c719a020f919a020fd19a020f119a020f519a020e919a020ed19a020e119a020e519a020d919a020dd19a020d119a020d519a020c919a020cd19a020, +c309a020a7802000fb19a020ff19a020f319a020f719a020eb19a020ef19a020e319a020e719a020db19a020df19a020d319a020d719a020cb19a020cf19a020, +8528b0058400a068841000188530b022d059a0e0f0596050c459800283908000c0298002841020d88143e0408410294090102002d071a0608d802000ca59a000, +94100000808bc0099e10001292102001e45e2078e65e2500e05e2000e25e200801000000ae1000078143e04010bffe49c4592008b220800188014002c2592000, +6262696e6720746891414000536372758e1000081080000a18680010010000008f54000080a1e0020afa7ffb010000009402a001932a70010268000301000000, +914140004e756d628e100008108000071868000d010000008f54000080a1e00291d02013901000070d0a00009002200466206d656d6f7279652072657374206f, +203d2030780000001080000491414000010000008e10000880a1e0021868000a901000078f5400009002200491d0201372616e64730000006572206f66207374, +010000008e10000880a1e00218680009901000078f5400009010000a91d02014010000008e10000880a1e00218680006901000078f5400009002200491d02013, +6173650090022004914140006d656d628e100008108000041868000a010000008f54000080a1e00291d02013901000070d0a0000900220041080000391414000, +8f54000080a1e00291d0201390100007780000009002200491414000203d20308e100008108000041868000a010000008f54000080a1e00291d0201390100007, +9002200491d02013914140000d0a00008e1000081080000318680009010000008f54000080a1e00291d02014901000078e100008901000101868000601000000, +80a1e0021868000a901000078f5400009002200491d020136d656d73697a65001080000491414000010000008e10000880a1e0021868000a901000078f540000, +9010001191d02014010000008e10000880a1e00218680006901000078f5400009002200491d02013203d2030780000001080000491414000010000008e100008, +1868000a010000008f54000080a1e00291d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009901000078f540000, +91414000203d20308e100008108000041868000a010000008f54000080a1e00291d02013901000076d656d009002200491414000706879738e10000810800004, +18680009010000008f54000080a1e00291d02014901000078e1000089010001318680006010000008f54000080a1e00291d02013901000077800000090022004, +8628e03fd65e20408668c00a8600e03f8410001386208001841000118200400290100007821000109002200491d02013914140000d0a00008e10000810800003, +c872c00582004004896690038a1021088820800180a100038a102100c272c0050b000000cc2ac0050268000c01000000932a5006808bc0098c10000092102001, +84100012821020009e2bc002de7625188410200185289001d6dac9e0c20ae000010000009610202080a1a020066fffec9602c0058c01a0010b0000468a116158, +8929301088112001010000008810200180a04003026800088730f0088608e01f01000000874680008088c002026000188a116800861020018a1020988b297020, +8200600180a0601f010000008530b0010100000002c8000780a0601f086fffea0af8fffd010000008200600186086003c67140008530b0018728700886110003, +861020018088c00202c8c011010000008a116800860860038a1020988b2970208200e001853090018730f0088608e01f8410001287468000086fffe301000000, +8410001010683192010000008210000080a0601f086ffff08530b0018200600186110003c6714000881120018728700888102001892930100260000801000000, +010000008f540000808a400a12680015c45e25189202600115003fff9412a3ff8f41400092102000c458e1081068318cc6d8c9e0c258e1008f41400086102020, +8e1000089010000218680006010000008f54000080a1e00291d020139010000720000000900220041080000391414000010000008e10000880a1e00218680009, +91d0201390100007650d0a00900220049141400020646f6e8e100008108000041868000a010000008f54000080a1e0020af8bfe80100000091d0201490100007, +8210800105003d09821060908528b020841020800300004081c1e00401000000a410201fe4744000a32c7020a2146a0001000000a21020988e10001781c1e004, +1080000691414000010000008e10000880a1e0021868000c8c1000078f5400008a296001ca20a01401000000ca00a0140100000081c1e004c470400081c1e004, +80a0a18036602d7482006110c458600082102020c2d849e081c1e00401000000901000078e1000069002200491d02013635f72780d0a00006572726f725f7376, +635f74780d0a00006572726f725f73761080000691414000010000008e10000880a1e0021868000cce70a0008f540000c470600084008001834140008400a008, +8e1000081080000a18680010010000008f54000080a1e00202c8804f01000000c0706100c45864f8c2d849e0c258600890100007821020289002200491d02013, +cc59a008cc59a0408c102020ccd989e091d02013901000070a00000090022004205041434b45540d20414e4f5448455220544f2053454e44914140004e454544, +8201800380a00004c858800086102f708410a350840180028201a7480500000580a0000412680013861027e0c85880008a0180058401af280b0008ca8a116300, +8e100008108000091868000f010000008f54000080a1e0021080001f01000000066fffed010000008c01000680a1800509000046881121581268000a861027e0, +ccd989e0cc59a0088f4140008c1020209010000710684f4e9002200491d020132053454e440d0a00434b41474520544f442054484520504191414000464f554e, +ce70600082004007834140008e21e008ce58600024c1ed08c2d849e082006110821000038210202080a040033267fffd86206001c7f190018c01a4f8c2598000, +8810209789293020010000008a1020038aa16001166ffff9c6590000c67100008529700688110002881020ab89293020010000008a102003ce58600881c1e004, +881020aa89293020821020038410200082102003c2f0096005100fa0c4f00980166ffff801000000c67100008aa1600188110002c6590000881122808529700c, +881020aa89293020c671000084102002c65900008610c0018728b00688010003881020aa89293020c671000084102001c65900008610c0018728b00688010003, +01000000821020a9c671000081c1e004c65900008610c0018728b00688010003881020aa89293020c671000084102003c65900008610c0018728b00688010003, +c6704002841020408610c002050000008528b0038410a0048628c002841021000500000f8410a3fc1268000b01000000c65840028088e0048328702005000000, +c65840028088e004c6704002841020808610c002841020408528b0038410a0048628c002841021000500000f8410a3fc1268000b01000000c65840028088e004, +1268000b01000000c65840028088e004c6704002841020c08610c002841020808528b0038410a0048628c002841021000500000f8410a3fc1268000b01000000, +0100000084102040c45840020ac080088328702084102138c6704002821020978610c002841020c08528b0038410a0048628c002841021000500000f8410a3fc, +050000048410a04086102fffc6704002050000048410a0400ac0800a010000008410a138c4584002c670400205000004841020408610200186102fffc6704002, +c67040020500000c8410a04086102001c6704002050000088410a04086102fff0100000005000008c45840020ac0800a050000088410a13886102001c6704002, +ce5860000b00000881c1e0040100000086102001c67040020500000c8410a04086102fffc67040020500000c8410a0400ac0800a010000008410a138c4584002, +80a0c0050660000ac65920088620c00280a0c0021860000e02600011c6592000c60920188088e001880120688801c00416600017892930058930b02280a12040, +86100002841020010d00000830800009c2d849e0c258600083f000008210202884102200c6f08b808410a0268610c002841020018528b03fc65920108600c002, +0c6853ce01000000cc58400580a10006010000008a10287088a080030c6000078e102868c6584007c6f08b8083f000008610c002841022008528b03f8410a00e, +8800c004c2092018892930058801206880a1204016600017c65860008930b0228610e3ff84288003c4d88a00070000078610200084102030821020041068049e, +82104002841022008528b03f8410a02682004002841020010660000ac25920108220400280a040001860000ec2592008c259200080a040028088600102600011, +010000008528f01680a17fff0240000484100003ca0062088930f03002c10008c4706020c6d80a0086102000854100008210200410680486c2f08a8083f00000, +8528f0168530b0160240000401000000ca00622880a17fff02c100088410000306c9c011010000001260000401000000cc99448080a180028530b016cad80a20, +8801200d8610200186010004880100038088e0010260009b8809e00f8730d004010000008610202b010000000ec1c04880a180021260004acad80a40cc994480, +8b2970058a01606880a160401660008b04c1008e8b30f0228628c005cc5860008728f00d8e19c0038729f0188730f025024000678a2120018928d0048089e080, +82102028c2d849e082004003861000010660007ec25960108220400380a0400418600082c2596008c259600080a0400380886001026000858a018005c2096018, +c6d80a008930f0308a2080018c01a00085410000c25860200100000083f00000cc5862400ac180030b000001cef14a808b29703d8e29c0058e11c0038a102001, +01000000c458600083f000000ac9002c8600e001c671a000c671a008c659a000c659a0088600c0058f29f0048c0180078c0180018e09e00f8210200083793480, +8c19800480a980058b2950018a2160018200600d8a10200182014005820140010ec1c00c8a09e00f89500000cc9884838400800386103f20861020e08600e880, +892950048730f0068808e03f8a10200184008003c608601d82102028c2d849e0106800138810000082102028c2d849e006f8fff38600e0200268000801000000, +0ac1c019010000008f7925b0ce58400702f0b1d88e1021b883f00000c45860f00b000001cef14a800260000588100000c658a010808900038728f00384008003, +80a0a001026800058600ec808551c0008d90c00087514000875180008610e004c870a008ca70a0108828c0058a08c0050b0000078a1163ff86102030c6d8ca00, +c870a00087902009c870a00888102003c670a01089500000c6d8ca008730f03081994000861020008a10280081c0c0001867f1c0860140030b00001080a0a002, +c6d8ca008730f030c670a0008610200002f0b1a80100000086102010c45860f0106800038610200f8600e12030bfffe88d90c00087514000875180008610e004, +010000008528f01680a17fff0240000484100003ca0062088930f03002c10008c4706020c6d80b008210200885410000c670a008106ff18dc670a01087500000, +8528f0168530b0160240000401000000ca00622880a17fff02c100088410000306c9c011010000001260000401000000cc99448080a180028530b016cad80b20, +8801200d8610200186010004880100038088e001026000a88809e00f8730d004010000008610202b010000000ec1c04f80a1800212600051cad80b40cc994480, +8a018005c40960188b2970058a01606880a160401660002e04c100318b30f0228628c005cc5860008728f00d8e19c0038729f0188730f0258928d0048a212001, +8b29703d8e29c0058e11c0038a102001840080038610000206600021c45960108420800380a0800418600025c4596008c459600080a080038088a00102600028, +8c0180018e09e00f8210200083793480c6d80b008930f0308a2080018c01a10085410000c25860200100000083f00000cc5862400ac180030b000001cef14b80, +0c60006701000000ca59a8688aa0c00530bfffe20100000083f00000308000038600e001c671a000c671a008c659a000c659a0088600c0058f29f0048c018007, +8a1163ff88290005c8d90b000b00000786103f20881020308600e88084008003c4586000861020e00ac90030010000000c68529001000000c459a87080a14002, +8600e020821020280100000006f8fff380a98005026800088a2160018c1980048a1020018b295001820140018200600d8a09e00f82014005cc9884830ec1c00c, +808900030260000584008003c658a0188730f0068728f0038a10200189295004c608601d8808e03fc2d849e0840080038810000082102028c2d849e010680013, +8a1163ff8828c005c6d8cb000b0000070100000086102030ce5840070ac1c0198e1021b88f7925b0c45860f002f0b0fdcef14b8083f00000881000000b000001, +860140038a10280080a0a0021867f0e5026800050b0000108551c00080a0a001875140008600ed008610e0048d90c000ca70a050875180008a08c005c870a048, +8610e0048d90c000879020318751800088102003c870a040c870a048ca70a0508828c0058a08c0050b0000078a1163ff86102030c6d8cb0081c0c00081994000, +8828c0058a08c0050b0000078a1163ff86102030c6d8cb0001000000c670a040c45860f002f0b0cb8610200f8610201030bfffe610680003875140008600e620, +c870a048ca70a0508828c0058a08c0050b0000078a1163ff86102030c6d8cb008088400312681362c2d8098007002002106ff0ae82102030c870a048ca70a050, +81c0c00081994000860140038a10280080a0a0021867f0a7026800050b0000108551c00080a0a001875140008600ed808610e0048d90c0008790206c87518000, +c2586068c2f00720c2d849e0c2586008c0f006e082102020c0f0066081c1e004c2f00640c2f006c0c2f00620c2f006a0c2586008c258606882102020c2d849e0, +88102020c8d90b00c658e0f002f0f08586102028c6d8c9e08088400212681330c2d809800500200281c1e004c0f007e0c2f007c0c0f00760c2f007a0c2f00740, +8b3130078a89607f126000138c103fff8350c00080a060308a094006ca70e0500d0000078c11a3ff8a102030cad94b00c8d94b00c0f14b00c870e0488a102018, +cc70e040106ff05180a960608d64700980a960108d64700780a960088d64700a80a960048d64700b80a960028d64700880a960018d6470050260000e01000000, +c870e0088a1020080100000089500000c658e0f002f0f05786102028c6d8c9e0808860041267f4b41268130583484000050080008088400282100001c2d80980, +8d647009cc70e0008d64700580a960600100000080a960018a89607f02600006c0f14a008b3130078a102018c8d94a00ca70e0108c103fffcad944208b78b400, +892870088610c004072980108728f00881c1e004c45880008608400384108003070000ff8610e300860860c084108003052980108528b008106ff03082102008, +092900008811000281c1e004c45880008608400384108003070000ff8610e300860860c084108003052980008528b00881c1e004c658c0008928b0068610c004, +861020a48728f0208728b01288110003881123c088090001c8590000090000ff8730f00681c1e0048728f0068811000388110001833070128929300883287012, +84108003c65880008528b02087287006c6708000841020a98610e00281c1e00484108003c65880008528b02087287006c658c000841020a98610c00481c1e004, +106fffe58f4140008f4140008210200382102002106fffe8106fffeb8f4140008f4140008210200182102000106fffeec67080008c1000078628e00281c1e004, +106fffdd8f4140008f4140008210200382102002106fffe0106fffe38f4140008f4140008210200182102000106fffe6010000008c1000078e10000681c1e004, +80a080010a6ffffdc05880008400a0400300240082008001881123ff842880048549400009000fff106fffdf8f414000010000008a1000078e10000681c1e004, +8208400687494000030000ff821063c010bfffb98f414000820860c0833070068c1000018a10000781c1e004010000008f4140008e10000501000000106fffe2, +10bfffad8f4140008209a0c083307006086ffffd010000008200400280a0400482102000c058c0010500010009000b008628c0048600c00109000fff881123ff, +8410000010bfff8ac47140008a01600810bfff7a8f414000c47140008a01600810bfff6c8f4140008a1000028c10000781c1e00401000000821000068e100005, +8a01600807001000cc590000cc7140008728f0208811000388110002861020a1881123c08809000184100000090000ff8a0160088e1000068f414000c6714000, +8801200888290003cc7140008a01600888110003cc5900008a01600807001000cc590000cc7140008801200888290003cc7140008a01600888110003cc590000, +cc7140008a01600888110003cc590000cc7140008a01600888290003cc5900008a01600888012008cc590000cc7140008a01600888110003cc590000cc714000, +88110003cc590000cc7140008a01600888290003cc5900008a01600888012008cc590000cc7140008a01600888110003cc590000cc7140008801200888290003, +cc7140008a01600888290003cc5900008a01600888012008cc590000cc7140008a01600888110003cc590000cc7140008801200888290003cc7140008a016008, +8a01600810bfffa68e100006c671400010bfff2f8f414000010000008c10000780a0a00c0280000a8530b0128400a001cc7140008a01600888110003cc590000, +8f4140000903ffff0500000010bfff1c8a0840058b3170128528b0208a1880050b0000ff8a197c008c10000784103f0081c1e004010000008528b01284216618, +8f4140008a01600c8a21600110bffee5881020038a1000028e10000681c1e00480a0a00c12bffff6028000078400a0018730f00680a0c005881123c08608c004, +881020028c1000078810200181c1e0040900000081c1e0048e10000681c1e00480888003128000048e1000068730f00c808880030280000a861020018728d005, +010000008a0060388e10000681c1e0040100000001000000010000000100000083468000b58060010868331a010000008208600f80a06001834980008330701c, +c658a020c6712020c658a018c6712018c658a010c6712010c658a008c6712008c658a000c67120008143e008880060400af13ffe0100000088103fffc9f15000, +010000008c102020c6f00e6081c1e0048810203a8610c004c60860008728f00886102001c6714000c658a038c6712038c658a030c6712030c658a028c6712028, +80a1e180366028648c01a110ce59a0008c102020ccd989e08e01c006c471e0008e01e008ce71a0003660286f83414000ce59a00080a1e180ccd989e08c01a110, +8e01c006c871e0008e01e008ce71a0003660285983414000ce59a00080a1e180ccd989e08c01a110c671e0008c102020ce71a0008e01c006834140008e01e008, +8c102020ccd989e08c018004c859a00888212008c871a00024c1284b834140008c01a110c859a0008c102020ccd989e0106fffbd8f4140008210000884100009, +8420a008c471a00024c0a837834140008c01a110c459a0008c102020ccd989e08c018003c659a0088620e008c671a00024c0e841834140008c01a110c659a000, +010000008346800080a06001086832a18330701c8208600f8c100007834980000ac04012010000008143e040c2d80e8081c3e008010000008c018002c459a008, +010000008410000780a060100268003080a0601f0268003080a0603a02680036106fffee01000000010000008e1000060100000001000000b580600101000000, +72757074207479706e6720696e7465723a2069676e6f72696e646f5f776169749141400068766d6f8e1000081080000d18680013010000008f54000080a1e002, +80a1e00218680009901000078f5400009010000191d02014010000008e10000880a1e00218680006901000078f5400009002200491d020136520307800000000, +0100000081c1e00401000000106fffb701000000106fffb98e100002106fffbb91d02013901000070d0a0000900220041080000391414000010000008e100008, +20000000820060040d0a41424f52543a108000058341400002680041010000000267fffd80a0e001c658603880a0ffffc2d849e08143e0020100000082102020, +7300000082006004686970737562722e6f6e2f7372632f636b65732f636f6d6d2f67726561746c612e2e2f2e2e2f2e2e1080000d8341400010802bc08f414000, +108000038341400010802bbc8f4140008210215a8210000110802ba88f41400078000000820060042c206c696e652030108000058341400010802bb08f414000, +8200600410802b916f6d6d616e6400002d6d6f6e646f206365206f72206e6f6e6d626f782069646c1080000a8341400010802b9e8f4140003a20000082006004, +c6712008c658a010c6712000c658a008880060c0c658a0003080279b840060408f414000834140008200600410802b8b834140000d0a00008f41400010800003, +0100000088102028820060c081c1e004c6712038c0706038c6712030c658a038c6712028c658a030c6712020c658a028c6712018c658a020c6712010c658a018, +c2712000c471200802f12de601000000c8d909e0c85920f08210203088102028c6712050106fedd9c2712040c471204802f12df001000000c8d909e0c85920f0, +8600e00184102000c4d889e0c608a0008200614084102020c2d849e0c25860088a01a708821020208c102020ccd989e082102008ce71a6d8c6712010106fedcf, +9141400043455f458e100008108000051868000b010000008f54000080a1e0022af0bffa80a0c00284100003c5f05000226827618341400002c0800401000000, +c0716160c601a6c8c8716070c671607888100001c8f0098080a04004326ffffdc6d809a0c2d8098090100007c8d809809002200491d0201352520d0a00000000, +82102001c658a000808860010260000483283006c258c001861020aa8728f020841020ab8528b0201260003a8810000003100fa0808840048088e00812600004, +808860010260000483287006c258c001861020aa8728f020c658a040881100030260000482102002c258c001808860018728f0208328700688110003861020aa, +8528b0208089000205100aa98410a150c658a0c0881100032260000401000000c258c001808860018728f0208328700688110003861020aa82102003c658a080, +226808e3010000008528b0208488800480a020010500080180a04002226800058408a01fc209a000c45880008530b00f841020a98528b0202260000e01000000, +c408a01dc431602484102028c4d889e0c409a000c43161588330700c82108001c271a6b08328700cc259a6b08200600182206001c229615c8351c00085287034, +82102001c2716040c4716058c471600885460000c27160482ac04002c2584000c2586008c25860d082102020c2d849e0c2716050c27160008528b03882108001, +c231615a0937ab6fc27161508350c000c271614883500000c271614083484000c2716068835080008410a820c2588000841020988528b02083498000c2716060, +026801910100000009100fa08088c004c659607012680194c601a6c88088e008186ffffe8620e008c871400380a0e1688810c00486102818881122ef87293020, +8088c0041268010701000000090002008088c004126800dd01000000090001008088c0041268013d01000000090000208088c004126800318410000509000080, +80a1e00218680014010000008f5400008088c0041268015101000000091000008088c0041268004501000000090004008088c0041268008f0100000009000800, +207365742121000072726f72206269746f2066696e6420656661696c656420746172632043453a204e4f54453a2053701080000e91414000010000008e100008, +9002200491d02013444941470d0a000091414000495243208e100008108000051868000b010000008f54000080a1e002901000073080085d9002200491d02013, +70657273697374651080000891414000010000008e10000880a1e0021868000e010000008f54000080a0a000028000141068213f8f41400090100007c2596078, +1868000b010000008f54000080a1e002c27161283080011f82100000c2d8096090100007108001289002200491d0201372726f720d0a00006e74204952432065, +c6d808a0c6706000ca58607882006168c2d849e08200670890100007821020209002200491d02013444941470d0a000091414000495443208e10000810800005, +050000008411000202680022010000008e10202280888007c4d90ce0c471a0008528b001881100028928f01084096fe08c0040068c01a008861020038c48e048, +8410202084110002c4d88cc0c471a0208410201884110002c4d88cc0c471a0188410201084110002c4d88cc0c471a0108410200884110002c4d88cc0c471a008, +86a0e001166fffd2c4d88cc0c471a0408410203884110002c4d88cc0c471a0388410203084110002c4d88cc0c471a0308410202884110002c4d88cc0c471a028, +90100007821020209002200491d02013444941470d0a000091414000494443208e100008108000051868000b010000008f54000080a1e00201000000308000d9, +c4d90ce0c471a0008528b001881100028928f01084096fe08c0040068c01a008861020038c48e048c6d808a0c6706000ca58607882006168c2d849e082006708, +c4d88cc0c471a0188410201084110002c4d88cc0c471a0108410200884110002c4d88cc0c471a008050000008411000202680022010000008e10202280888007, +c4d88cc0c471a0388410203084110002c4d88cc0c471a0308410202884110002c4d88cc0c471a0288410202084110002c4d88cc0c471a0208410201884110002, +91414000445443208e100008108000051868000b010000008f54000080a1e002010000003080009386a0e001166fffd2c4d88cc0c471a0408410203884110002, +8728700b84486018c271a000821020038c01a128c2d808a0ca59a0388a0967f0ccd989e08c01a748901000078c1020209002200491d02013444941470d0a0000, +8728f00386110003c670a008861020018929300bc6d908c58e11e3fe88090007c870a0000f0fffff808900070268000dc8d8c8e58e102001840080068400a008, +444941470d0a000091414000444443208e100008108000051868000b010000008f54000080a1e002010000003080006582a06001166fffebc8d8c8c5c870a010, +840080068400a0088728700b84486018c271a000821020038c01a128c2d808a0ca59a0388a0967f0ccd989e08c01a748901000078c1020209002200491d02013, +c8d8c8c5c870a0108728f00386110003c670a008861020018929300bc6d908c58e11e3fe88090007c870a0000f0fffff808900070268000dc8d8c8e58e102001, +9002200491d02013444941470d0a000091414000465243208e100008108000051868000b010000008f54000080a1e002010000003080003782a06001166fffeb, +70657273697374651080000891414000010000008e10000880a1e0021868000e010000008f54000080a0a000028000141068211d8f41400090100007c2596078, +1868000b010000008f54000080a1e002c27161283080000f82100000c2d8096090100007108000189002200491d0201372726f720d0a00006e74204652432065, +c231a6c2c401a6c88a01a708821022008c102020ccd989e090100007308000019002200491d02013204d45430d0a0000914140004a5553548e10000810800005, +308006f3841020ab106846d48f4140008610200188100000106822368f41400001000000c421a6c8c25864e822c040098410a008c259a0088088a0081260000d, +8600e040c2588000c27160a88400a040c2716088c258c0008600e040c2588000c27160a08400a040c2716080c258c0008728f020c25880008528b020861020ac, +8610e28809000004861020978728f0208528b0208410a280c27160b884102097c2716098c258c0008600e040c2588000c27160b08400a040c2716090c258c000, +c2588000c27160d0840080048600c00482106040c27160e8c258c0002ac84002c2588000c27160c8840080048600c004c258c000c27160e0c2588000c27160c0, +8410a29886102097841020978528b020821060c0c27160f8c258c0002ac84002c2588000c27160d8840080048600c00482106080c27160f0c258c0002ac84002, +8600c004c2588000c271610884008004c2716128c258c0008600c004c2588000c271610084008004c2716120c258c00009000004c25880008728f0208610e2a0, +808860012268001583287006c2588001841020aa8528b020c271611882102000c2716138c258c0008600c004c2588000c271611084008004c2716130c258c000, +80a04002226800058408a01fc209a000c45880008530b00f841020a98528b0202260000e010000008528b0208089000205100aa98410a15001000000c859a788, +9141400044554d508e100008108000071868000d010000008f54000080a1e0028e102000ce31a6c00268017d010000008528b0208488800480a0200105000801, +c859a78805000028ccd989e08a01a7088f4140008c10202084016168106ffb6b90100007c25960a09002200491d020134c320d0a00000000494e472054484520, +1080001601000000c07166a0c07166a8c0716690c0716698c0716680c0716688c0716670c0716678010000008a01a870808880040260000d8410a0408528b020, +c4586028c4716698c4586020c4716690c4586018c4716688c4586010c4716680c4586008c4716678c4586000c47166708200604082286040c259a7a88a01a870, +50524f43455353201080000791414000010000008e10000880a1e0021868000dc87080008f540000841020ab8528b020c4586038c47166a8c4586030c47166a0, +9002200491d02013914140000d0a00008e1000081080000318680009010000008f54000080a1e00291d0201390100007000000009002200443452042616e6b20, +821020ab832870200af8bffd82006008c67040008420a00184102008c658400001000000c25960a0808900010268001d0300080083287020901000078a01a708, +9002200491d0201320444941470d0a00914140004c4441438e100008108000051868000b010000008f54000080a1e0028528b020c4704000051008008410a010, +44414320444941471080000591414000010000008e10000880a1e0021868000b010000008f5400008089000102680042821024008328702090100007308000fd, +ca70a00082102020c470600084008001834140008400a00880a0a1803660242a82006110c458600082102020c2d849e091d02013901000070d0a000090022004, +c2d849e0820061108f4140008210202082102000106821dc84008001cc70a0008400a008c47060003660241f83414000c458600080a0a180c2d849e082006110, +ca70600082004005834140008a216008ca58600024c16408c2d849e082006110cc58600882102020cc70600082004006834140008c21a008cc58600024c1a412, +1868000b010000008f54000080a1e00202680010010000008328702080890001308000b803000200c25960c0c27080008528b0208410a280ca58600884102097, +01000000c25960a08089000102680013030000808328702090100007308000a59002200491d0201320444941470d0a00914140004c4457438e10000810800005, +901000073080008f9002200491d0201320444941470d0a00914140004c4452438e100008108000051868000b010000008f54000080a1e002c4584000c4704000, +470d0a00900220044c445343204449411080000591414000010000008e10000880a1e0021868000b010000008f54000080890001026800100300002083287020, +914140004c5443208e100008108000051868000b010000008f54000080a1e0020268002e0100000083287020808900013080007c0300000891d0201390100007, +8b29701e8a2160018b31701e8a0960ff8a10c005ca5940008a1160a08728f020861020800b00004090100007c25960a09002200491d02013444941470d0a0000, +c058c00084a0a001861040038608c0058730f0068728f01286110003c658c0008410200b8728b0128208400388104004070000ff8610e3c0881020a489293020, +8a01a708841020978c102020ccd989e01068214d8f4140000100000082102000808900010268001b82102100832870208a01a7083080004b1a6ffff701000000, +9002200491d02013444941470d0a000091414000445243208e100008108000051868000b010000008f54000080a1e002c25960c0c27080008528b0208410a280, +1868000b010000008f54000080a1e002c25960c0c27080008528b0208410a280010000008410209780890001026000158210204083287020901000073080002d, +2268001288103fff8328702080890001031000008210601090100007308000159002200491d02013444941470d0a000091414000445343208e10000810800005, +881020008811220091d02013901000070a000000900220045f4c325f4d45430d914140004a5553548e100008108000061868000c010000008f54000080a1e002, +2260000e010000008528b0208089000205100aa98410a15001000000c859a790808860012268001583287006c2588001841020aa8528b020308004e182102001, +8e102001ce31a6c002680185010000008528b0208488800480a020010500080180a04002226800058408a01fc209a000c45880008530b00f841020a98528b020, +90100007c25960a89002200491d020134c320d0a00000000494e4720544845209141400044554d508e100008108000071868000d010000008f54000080a1e002, +c0716670c0716678010000008a01a870808880040260000d8410a0408528b020c859a79005000028ccd989e08a01a7088f4140008c10202084016168106ff9d3, +c4586008c4716678c4586000c47166708200604082286040c259a7b08a01a8701080001601000000c07166a0c07166a8c0716690c0716698c0716680c0716688, +8410a040c8708000841020ab8528b020c4586038c47166a8c4586030c47166a0c4586028c4716698c4586020c4716690c4586018c4716688c4586010c4716680, +901000078f5400009002200491d02013616e6b200000000045535320434520429141400050524f438e100008108000071868000d010000008f54000080a1e002, +0268001e0100000083287020808900018a01a7080300080091d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009, +8f54000080a1e0028528b020c4704000051008008410a010832870208210604082006008821020ab8420a0010af8bffdc6584000c6704000c25960a884102008, +8089000102680044821024008328702090100007308001039002200491d0201320444941470d0a00914140004c4441438e100008108000051868000b01000000, +82102020c2d849e091d02013901000070d0a00009002200444414320444941471080000591414000010000008e10000880a1e0021868000b010000008f540000, +3660228583414000c458600080a0a180c2d849e082006110ca70a00082102020c470600084008001834140008400a00880a0a1803660229082006110c4586000, +cc70600082004006834140008c21a008cc58600024c1a278c2d849e0820061108f41400082102020821020011068204284008001cc70a0008400a008c4706000, +8328702084104002050000048410a280ca58600882102097ca70600082004005834140008a216008ca58600024c1626ec2d849e082006110cc58600882102020, +914140004c4457438e100008108000051868000b010000008f54000080a1e00202680010010000008328702080890001308000bc03000200c25960c8c2708000, +8f54000080a1e002c4584000c470400001000000c25960a88089000102680013030000808328702090100007308000a99002200491d0201320444941470d0a00, +8089000102680010030000208328702090100007308000939002200491d0201320444941470d0a00914140004c4452438e100008108000051868000b01000000, +308000800300000891d0201390100007470d0a00900220044c445343204449411080000591414000010000008e10000880a1e0021868000b010000008f540000, +9002200491d02013444941470d0a0000914140004c5443208e100008108000051868000b010000008f54000080a1e0020268002e010000008328702080890001, +070000ff8610e3c0881020a4892930208b29701e8a2160018b31701e8a0960ff8a10c005ca5940008a1160a08728f020861020800b00004090100007c25960a8, +8a01a7083080004f1a6ffff701000000c058c00084a0a001861040038608c0058730f0068728f01286110003c658c0008410200b8728b0128208400388104004, +8328702084104002050000048410a2808a01a708821020978c102020ccd989e010681fb18f4140000100000082102001808900010268001d8210210083287020, +901000073080002f9002200491d02013444941470d0a000091414000445243208e100008108000051868000b010000008f54000080a1e002c25960c8c2708000, +1868000b010000008f54000080a1e002c25960c8c27080008328702084104002050000048410a280010000008210209780890001026000178210204083287020, +2268001288103fff8328702080890001031000008210601090100007308000159002200491d02013444941470d0a000091414000445343208e10000810800005, +881020018811220091d02013901000070a000000900220045f4c325f4d45430d914140004a5553548e100008108000061868000c010000008f54000080a1e002, +2260000e010000008528b0208089000205100aa98410a15001000000c859a798808860012268001583287006c2588001841020aa8528b0203080034182102002, +8e102002ce31a6c002680185010000008528b0208488800480a020010500080180a04002226800058408a01fc209a000c45880008530b00f841020a98528b020, +90100007c25960b09002200491d020134c320d0a00000000494e4720544845209141400044554d508e100008108000071868000d010000008f54000080a1e002, +c0716670c0716678010000008a01a870808880040260000d8410a0408528b020c859a79805000028ccd989e08a01a7088f4140008c10202084016168106ff833, +c4586008c4716678c4586000c47166708200604082286040c259a7b88a01a8701080001601000000c07166a0c07166a8c0716690c0716698c0716680c0716688, +8410a080c8708000841020ab8528b020c4586038c47166a8c4586030c47166a0c4586028c4716698c4586020c4716690c4586018c4716688c4586010c4716680, +901000078f5400009002200491d02013616e6b200000000045535320434520429141400050524f438e100008108000071868000d010000008f54000080a1e002, +0268001e0100000083287020808900018a01a7080300080091d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009, +8f54000080a1e0028528b020c4704000051008008410a010832870208210608082006008821020ab8420a0010af8bffdc6584000c6704000c25960b084102008, +8089000102680044821024008328702090100007308001039002200491d0201320444941470d0a00914140004c4441438e100008108000051868000b01000000, +82102020c2d849e091d02013901000070d0a00009002200444414320444941471080000591414000010000008e10000880a1e0021868000b010000008f540000, +366020e583414000c458600080a0a180c2d849e082006110ca70a00082102020c470600084008001834140008400a00880a0a180366020f082006110c4586000, +cc70600082004006834140008c21a008cc58600024c1a0d8c2d849e0820061108f414000821020208210200210681ea284008001cc70a0008400a008c4706000, +8328702084104002050000088410a280ca58600882102097ca70600082004005834140008a216008ca58600024c160cec2d849e082006110cc58600882102020, +914140004c4457438e100008108000051868000b010000008f54000080a1e00202680010010000008328702080890001308000bc03000200c25960d0c2708000, +8f54000080a1e002c4584000c470400001000000c25960b08089000102680013030000808328702090100007308000a99002200491d0201320444941470d0a00, +8089000102680010030000208328702090100007308000939002200491d0201320444941470d0a00914140004c4452438e100008108000051868000b01000000, +308000800300000891d0201390100007470d0a00900220044c445343204449411080000591414000010000008e10000880a1e0021868000b010000008f540000, +9002200491d02013444941470d0a0000914140004c5443208e100008108000051868000b010000008f54000080a1e0020268002e010000008328702080890001, +070000ff8610e3c0881020a4892930208b29701e8a2160018b31701e8a0960ff8a10c005ca5940008a1160a08728f020861020800b00004090100007c25960b0, +8a01a7083080004f1a6ffff701000000c058c00084a0a001861040038608c0058730f0068728f01286110003c658c0008410200b8728b0128208400388104004, +8328702084104002050000088410a2808a01a708821020978c102020ccd989e010681e118f4140000100000082102002808900010268001d8210210083287020, +901000073080002f9002200491d02013444941470d0a000091414000445243208e100008108000051868000b010000008f54000080a1e002c25960d0c2708000, +1868000b010000008f54000080a1e002c25960d0c27080008328702084104002050000088410a280010000008210209780890001026000178210204083287020, +2268001288103fff8328702080890001031000008210601090100007308000159002200491d02013444941470d0a000091414000445343208e10000810800005, +881020028811220091d02013901000070a000000900220045f4c325f4d45430d914140004a5553548e100008108000061868000c010000008f54000080a1e002, +2260000e010000008528b0208089000205100aa98410a15001000000c859a7a0808860012268001583287006c2588001841020aa8528b020308001a182102003, +8e102003ce31a6c0026801b4010000008528b0208488800480a020010500080180a04002226800058408a01fc209a000c45880008530b00f841020a98528b020, +90100007c25960b89002200491d020134c320d0a00000000494e4720544845209141400044554d508e100008108000071868000d010000008f54000080a1e002, +c0716670c0716678010000008a01a870808880040260000d8410a0408528b020c859a7a005000028ccd989e08a01a7088f4140008c10202084016168106ff693, +c4586008c4716678c4586000c47166708200604082286040c259a7c08a01a8701080001601000000c07166a0c07166a8c0716690c0716698c0716680c0716688, +8410a0c0c8708000841020ab8528b020c4586038c47166a8c4586030c47166a0c4586028c4716698c4586020c4716690c4586018c4716688c4586010c4716680, +901000078f5400009002200491d02013616e6b200000000045535320434520429141400050524f438e100008108000071868000d010000008f54000080a1e002, +0268001e0100000083287020808900018a01a7080300080091d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009, +8f54000080a1e0028528b020c4704000051008008410a01083287020821060c082006008821020ab8420a0010af8bffdc6584000c6704000c25960b884102008, +8089000102680044821024008328702090100007308001039002200491d0201320444941470d0a00914140004c4441438e100008108000051868000b01000000, +82102020c2d849e091d02013901000070d0a00009002200444414320444941471080000591414000010000008e10000880a1e0021868000b010000008f540000, +36601f4583414000c458600080a0a180c2d849e082006110ca70a00082102020c470600084008001834140008400a00880a0a18036601f5082006110c4586000, +cc70600082004006834140008c21a008cc58600024c19f38c2d849e0820061108f414000821020208210200310681d0284008001cc70a0008400a008c4706000, +83287020841040020500000c8410a280ca58600882102097ca70600082004005834140008a216008ca58600024c15f2ec2d849e082006110cc58600882102020, +914140004c4457438e100008108000051868000b010000008f54000080a1e00202680010010000008328702080890001308000bc03000200c25960d8c2708000, +8f54000080a1e002c4584000c470400001000000c25960b88089000102680013030000808328702090100007308000a99002200491d0201320444941470d0a00, +8089000102680010030000208328702090100007308000939002200491d0201320444941470d0a00914140004c4452438e100008108000051868000b01000000, +308000800300000891d0201390100007470d0a00900220044c445343204449411080000591414000010000008e10000880a1e0021868000b010000008f540000, +9002200491d02013444941470d0a0000914140004c5443208e100008108000051868000b010000008f54000080a1e0020268002e010000008328702080890001, +070000ff8610e3c0881020a4892930208b29701e8a2160018b31701e8a0960ff8a10c005ca5940008a1160a08728f020861020800b00004090100007c25960b8, +8a01a7083080004f1a6ffff701000000c058c00084a0a001861040038608c0058730f0068728f01286110003c658c0008410200b8728b0128208400388104004, +83287020841040020500000c8410a2808a01a708821020978c102020ccd989e010681c718f4140000100000082102003808900010268001d8210210083287020, +901000073080002f9002200491d02013444941470d0a000091414000445243208e100008108000051868000b010000008f54000080a1e002c25960d8c2708000, +1868000b010000008f54000080a1e002c25960d8c270800083287020841040020500000c8410a280010000008210209780890001026000178210204083287020, +2268001288103fff8328702080890001031000008210601090100007308000159002200491d02013444941470d0a000091414000445343208e10000810800005, +881020038811220091d02013901000070a000000900220045f4c325f4d45430d914140004a5553548e100008108000061868000c010000008f54000080a1e002, +026800120100000082286001c2708000808860010260000384008001c25880008528b02083293006c851a6c0841020aa01000000c831a6c23080000106c9002f, +10683fe28f4140008f41400086102001c421a6c810681b5922c0400801000000c259a008c25864e81260000c84108001c401a6c8808880018210201083284004, +c031a6c2308000128c102020ccd989e01068406d8f4140008401af28861027e0010000008201a748808922000268001cccd989e0c811a6c2308000018c102020, +9002200491d020134572726f720d0a006f727461626c65203a204e6f20526570914140004e4f54458e100008108000091868000f010000008f54000080a1e002, +81c1e00401000000c071a6d883f00000ce59a6d82ac9c003c070400030800001c25860088200614082102020c2d849e082106001c2f0096090100007c2d80960, +8728f02084108001c258c000070080008600c0048410800184108001c258c000c258c0008600c004c458c0008600c0048728f0208610e2800900000486102097, +8610c001c258a0c08610c001c258a0808610c001c258a0408528b020c258a00086100000841020abccd989e08a01a708010000008c102020808880031260144b, +84108001c258c000c258c0008600c004c458c0008600c0048728f0208610e28009000004861020971260003f821021008528b020808880038610c00105000010, +c4d889e0c608a0008200607084102020c2d849e0c25860088210210082102020808880031260002c8728f02084108001c258c000070100008600c00484108001, +8530b0088408a01f8800609085468000c259a008860060882af0bffa80a0c00284100003c5f0500022681dcf8341400002c08004010000008600e00184102000, +c27100008530b0018088a001326000028811280003000080881020988929302082104002c271000084288001c2590000c458c000c270c0008210200183285002, +44415441204552521080000591414000010000008e10000880a1e0021868000bc421a6c88f5400008428a1008410800182100000c401a6c80af8bffc82006100, +8351c00085287034c6716078c0716160c8f00980c8716070326ffffd88100001c2d8098080a04004c8d80980c6d809a091d02013901000070d0a000090022004, +8528b03882108001c408a01dc431602484102028c4d889e0c409a000c43161588330700c82108001c271a6b08328700cc259a6b08200600182206001c229615c, +83498000c271606082102001c2716040c4716058c471600885460000c27160482ac04002c2584000c2586008c25860d082102020c2d849e0c2716050c2716000, +841000050937ab6fc231615a82100006c27161508350c000c271614883500000c271614083484000c2716068835080008410a820c2588000841020988528b020, +c6594000c670a0a0c6590000c670a0808a1020ac8b297020881020ab89293020186ffffe8620e008c871400380a0e1688810c00486102818881122ef87293020, +c6590000c670a098880120408a016040c6594000c670a0b0c6590000c670a090880120408a016040c6594000c670a0a8c6590000c670a088880120408a016040, +8a014006c6590000c670a0e088010006c670a0c0c65940000d000004c65900008b2970208a116288881122808a1020978810209789293020c6594000c670a0b8, +8a014006c6590000c670a0f0880100062ac8c0028610e080c670a0d0c65940008a014006c6590000c670a0e8880100062ac8c0028610e040c670a0c8c6594000, +c6594000c670a100c6590000c670a1208a1162a00d0000048a1020978b2970208929302088112298c670a0f8881020972ac8c0028610e0c0c670a0d8c6594000, +c6590000c670a138880100068a014006c6594000c670a110c6590000c670a130880100068a014006c6594000c670a108c6590000c670a128880100068a014006, +8f4140008f540000c258a0a0106ff42702680172010000008929302080884004091ffaaf88193ea08400a708c258a08084102020c4d889e0c6594000c670a118, +80a1e00218680006901000078f5400009002200491d0201353746174652000004c32204c696e65201080000691414000010000008e10000880a1e0021868000c, +91d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010000491d02014010000008e100008, +4c320d0a00000000494e4720544845209141400044554d508e100008108000071868000d010000008f54000080a1e00284006708c870670082102020c2d849e0, +8f54000080a1e0028d29b020c8718000c858a0808c1020abc2d849e0840067088f414000821020208400a168106ff37f90100007c258a0a09002200491d02013, +c2d849e08400670890100007821020209002200491d0201355450d0a0000000045535320444953209141400050524f438e100008108000071868000d01000000, +4c4441552044494191414000646973208e100008108000061868000c010000008f54000080a1e0020268002301000000892930208088c004c658a08009000400, +8c11a0028a1020018d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a1200191d0201390100007470d0a0090022004, +1868000c010000008f54000080a1e0020268002301000000892930208088c0043080140688102200cc2120143080135888012708ca21201088102020c8d909e0, +c8714000895080008b2970208a116280c858a0c08a10209791d02013901000070d0a000090022004444155204449414791414000646973208e10000810800006, +892930208088c0043080133109000100ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d6670028809240080a00004, +91d0201390100007470d0a00900220044c4457552044494191414000646973208e100008108000061868000c010000008f54000080a1e0020268001e01000000, +0900004089293020cc2120143080131088012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b01880a000048d6470018950800088092400, +9002200491d0201320444941470d0a00646973204c4452551080000691414000010000008e10000880a1e0021868000c010000008f5400008088c00402680023, +c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d6670028809240080a00004010000008950800080a120011260001090100007c8586700, +1080000691414000010000008e10000880a1e0021868000c010000008f5400008088c004026800230900001089293020308012eb30801399ca212010cc212014, +8d6470018d6670028809240080a00004010000008950800080a120011260001090100007c85867009002200491d0201320444941470d0a00646973204c445355, +01000000c858a0c08088c004026800238810208089293020308012c530801373ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a002, +0d0a000090022004445255204449414791414000646973208e100008108000061868000c010000008f54000080a1e0028a116280c87140008a1020978b297020, +cc2120143080129e88012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b01880a000048d647001895080008809240091d0201390100007, +8e100008108000061868000c010000008f54000080a1e0028a116280c87140008a1020978b29702001000000c858a0c08088c004026800238810202089293020, +8c11a0028a1020018d6670028d29b01880a000048d647001895080008809240091d02013901000070d0a00009002200444535520444941479141400064697320, +1868000d010000008f54000080a1e0020268001201000000892930208088c004091fffff88193c00cc2120143080127888012708ca21201088102020c8d909e0, +8400a708c258a08884102020c4d889e090100007308013119002200491d020134d45550d0a0000004a5553545f4c325f91414000646973208e10000810800007, +1080000691414000010000008e10000880a1e0021868000c8f4140008f540000c258a0a8106ff2ad02680179010000008929302080884004091ffaaf88193ea0, +901000078f5400009010000491d02014010000008e10000880a1e00218680006901000078f5400009002200491d0201353746174652000004c32204c696e6520, +8f54000080a1e00284006708c870670082102020c2d849e091d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009, +8400a168106ff20590100007c258a0a89002200491d020134c320d0a00000000494e4720544845209141400044554d508e100008108000071868000d01000000, +1080000791414000010000008e10000880a1e0021868000dc87180008f5400008d29b0208c11a040c858a0888c1020abc2d849e0840067088f41400082102020, +8088c00402680023090004008929302084006708c658a08882102020c2d849e091d020139010000700000000900220044449532055450d0a50524f4345535320, +90100007c85867009002200491d0201320444941470d0a00646973204c4441551080000691414000010000008e10000880a1e0021868000c010000008f540000, +ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d6670028809240080a00004010000008950800080a1200112600010, +64697320444155201080000691414000010000008e10000880a1e0021868000c010000008f5400008088c004026800258810220089293020308011dd3080128b, +80a000048d64700189508000880924008a118005c87140008a1162808d29b0208c1020970b00000490100007c858a0c89002200491d02013444941470d0a0000, +010000008f5400008088c0040268001e0900010089293020cc212014308011b488012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b018, +8809240080a0000490100007895080009002200491d0201320444941470d0a00646973204c4457551080000691414000010000008e10000880a1e0021868000c, +0268002301000000892930208088c0043080119309000040ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d667002, +c858670080a1200191d0201390100007470d0a00900220044c4452552044494191414000646973208e100008108000061868000c010000008f54000080a1e002, +cc2120143080116e88012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b01880a000048d64700189508000880924001260001001000000, +4c4453552044494191414000646973208e100008108000061868000c010000008f54000080a1e0020268002301000000892930208088c0043080121c09000010, +8c11a0028a1020018d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a1200191d0201390100007470d0a0090022004, +0b0000048a116280c858a0c88c1020970268002501000000892930208088c004308011f688102080cc2120143080114888012708ca21201088102020c8d909e0, +9002200491d02013444941470d0a000064697320445255201080000691414000010000008e10000880a1e0021868000cc87140008f5400008d29b0208a118005, +3080111f88102020ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d6670028809240080a000049010000789508000, +010000008e10000880a1e0021868000cc87140008f5400008d29b0208a1180050b0000048a116280c858a0c88c1020970268002501000000892930208088c004, +8d29b0188c11a0028d6470018d6670028809240080a0000490100007895080009002200491d02013444941470d0a000064697320445355201080000691414000, +80a1e0021868000d010000008f5400008088c0040268001288193c0089293020308010f7091fffffca212010cc212014c8d909e0880127088a10200188102020, +c4d889e08400a708308011908410202091d02013901000070a000000900220045f4c325f4d45550d646973204a5553541080000791414000010000008e100008, +8e100008108000061868000c010000008f54000080a1e002106ff12c8f41400001000000c258a0b0808840040268017988193ea089293020c258a090091ffaaf, +91d02014901000078e1000089010000418680006010000008f54000080a1e00291d02013901000076520000090022004696e652053746174914140004c32204c, +c87067008f540000c2d849e08400670890100007821020209002200491d02013914140000d0a00008e1000081080000318680009010000008f54000080a1e002, +c258a0b08400a16891d02013901000070000000090022004544845204c320d0a44554d50494e47201080000791414000010000008e10000880a1e0021868000d, +8e100008108000071868000d010000008f54000080a1e0028c11a080c87180008c1020ab8d29b02084006708c858a09082102020c2d849e0106ff0848f414000, +892930208088c004c658a09009000400c2d849e08400670890100007821020209002200491d0201355450d0a0000000045535320444953209141400050524f43, +91d0201390100007470d0a00900220044c4441552044494191414000646973208e100008108000061868000c010000008f54000080a1e0020268002301000000, +88012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a12001, +91414000646973208e100008108000061868000c010000008f54000080a1e0020268002501000000892930208088c0043080110a88102200cc2120143080105c, +8809240080a00004c8714000895080008d29b0208a1180050b0000088a116280c858a0d08c10209791d02013901000070d0a0000900220044441552044494147, +0268001e01000000892930208088c0043080103309000100ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d667002, +895080008809240091d0201390100007470d0a00900220044c4457552044494191414000646973208e100008108000061868000c010000008f54000080a1e002, +8088c004026800230900004089293020cc2120143080101288012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b01880a000048d647001, +90100007c85867009002200491d0201320444941470d0a00646973204c4452551080000691414000010000008e10000880a1e0021868000c010000008f540000, +ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d6670028809240080a00004010000008950800080a1200112600010, +646973204c4453551080000691414000010000008e10000880a1e0021868000c010000008f5400008088c00402680023090000108929302030800fed3080109b, +8d29b0188c11a0028d6470018d6670028809240080a00004010000008950800080a120011260001090100007c85867009002200491d0201320444941470d0a00, +8c1020970b00000801000000c858a0d08088c00402680025881020808929302030800fc730801075ca212010cc212014c8d909e0880127088a10200188102020, +0d0a000090022004445255204449414791414000646973208e100008108000061868000c010000008f54000080a1e0028a118005c87140008a1162808d29b020, +cc21201430800f9e88012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b01880a000048d647001895080008809240091d0201390100007, +1868000c010000008f54000080a1e0028a118005c87140008a1162808d29b0208c1020970b00000801000000c858a0d08088c004026800258810202089293020, +8d6670028d29b01880a000048d647001895080008809240091d02013901000070d0a000090022004445355204449414791414000646973208e10000810800006, +8f54000080a1e0020268001201000000892930208088c004091fffff88193c00cc21201430800f7688012708ca21201088102020c8d909e08c11a0028a102001, +84102020c4d889e0901000073080100f9002200491d020134d45550d0a0000004a5553545f4c325f91414000646973208e100008108000071868000d01000000, +010000008e10000880a1e0021868000c8f4140008f540000c258a0b8106fefab0268017a010000008929302080884004091ffaaf88193ea08400a708c258a098, +9010000491d02014010000008e10000880a1e00218680006901000078f5400009002200491d0201353746174652000004c32204c696e65201080000691414000, +84006708c870670082102020c2d849e091d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009901000078f540000, +90100007c258a0b89002200491d020134c320d0a00000000494e4720544845209141400044554d508e100008108000071868000d010000008f54000080a1e002, +010000008e10000880a1e0021868000dc87180008f5400008d29b0208c11a0c0c858a0988c1020abc2d849e0840067088f414000821020208400a168106fef03, +090004008929302084006708c658a09882102020c2d849e091d020139010000700000000900220044449532055450d0a50524f43455353201080000791414000, +9002200491d0201320444941470d0a00646973204c4441551080000691414000010000008e10000880a1e0021868000c010000008f5400008088c00402680023, +c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d6670028809240080a00004010000008950800080a120011260001090100007c8586700, +1080000691414000010000008e10000880a1e0021868000c010000008f5400008088c00402680025881022008929302030800edb30800f89ca212010cc212014, +89508000880924008a118005c87140008a1162808d29b0208c1020970b00000c90100007c858a0d89002200491d02013444941470d0a00006469732044415520, +8088c0040268001e0900010089293020cc21201430800eb288012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b01880a000048d647001, +90100007895080009002200491d0201320444941470d0a00646973204c4457551080000691414000010000008e10000880a1e0021868000c010000008f540000, +892930208088c00430800e9109000040ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d6670028809240080a00004, +91d0201390100007470d0a00900220044c4452552044494191414000646973208e100008108000061868000c010000008f54000080a1e0020268002301000000, +88012708ca21201088102020c8d909e08c11a0028a1020018d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a12001, +91414000646973208e100008108000061868000c010000008f54000080a1e0020268002301000000892930208088c00430800f1a09000010cc21201430800e6c, +8d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a1200191d0201390100007470d0a00900220044c44535520444941, +c858a0d88c1020970268002501000000892930208088c00430800ef488102080cc21201430800e4688012708ca21201088102020c8d909e08c11a0028a102001, +444941470d0a000064697320445255201080000691414000010000008e10000880a1e0021868000cc87140008f5400008d29b0208a1180050b00000c8a116280, +ca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a0028d6470018d6670028809240080a0000490100007895080009002200491d02013, +80a1e0021868000cc87140008f5400008d29b0208a1180050b00000c8a116280c858a0d88c1020970268002501000000892930208088c00430800e1d88102020, +8d6470018d6670028809240080a0000490100007895080009002200491d02013444941470d0a000064697320445355201080000691414000010000008e100008, +010000008f5400008088c0040268001288193c008929302030800df5091fffffca212010cc212014c8d909e0880127088a102001881020208d29b0188c11a002, +30800e8e30800dde91d02013901000070a000000900220045f4c325f4d45550d646973204a5553541080000791414000010000008e10000880a1e0021868000d, +901000078c1020209002200491d02013524f520d0a0000004953205545204552914140004e4f20448e100008108000071868000d010000008f54000080a1e002, +c470652083508000c2d849e0c2586010c2f0202082102028308000288780204f30800dc7ce71a6d8106839238f4140008401af28861027e0ccd989e08201a748, +9351c0009222600190100001c2d82020d0706520d2706528c2586010c458652082102028c2d849e012680018010000008554000080a040028330702882086003, +c2586010c2f0202082102028c2d849e0d25a2528d05a2520c2726538c0726530c6726548c4726540ca726558c8726550ce726568cc726560932a700692020009, +8728f02084108001c258c000070080008600c0048410800184108001c258c000c258c0008600c004c458c0008600c0048728f0208610e2800900000486102097, +84102020c4d889e0c25860088200607082102020c2d849e01268003d010000008348400080886004ccd989e08a01af30010000008c1020208088800312600cfb, +854680008530b008860060888800609080a0c002c259a008c5f050002af0bffa8341400084100003010000002268169e8410200002c08004c608a0008600e001, +32600002c2710000030000808088a0018929302088112800c271000088102098c259000082104002c270c0008428800183285002c458c0008408a01f82102001, +9141400055455f458e100008108000051868000b010000008f54000080a1e0021268000f01000000090000048088400482006100c2d809808530b0010af8bffc, +c07161600520f05ec8716070c671607888100001c8f0098080a04004326ffffdc6d809a0c2d8098090100007c8d809809002200491d0201352520d0a00000000, +051ffaa98418bea0c258a0c08610c001c258a0808610c001c258a0408610c001c258a0008610c001841020ab8528b02012600010861000008410a20080890002, +c409a000c43161588330700c82108001c271a6b08328700cc259a6b08200600182206001c229615c8351c0008528703422680dda010000008528b0208088c002, +85460000c27160482ac04002c2584000c2586008c25860d082102020c2d849e0c2716050c27160008528b03882108001c408a01dc431602484102028c4d889e0, +c271614883500000c271614083484000c2716068835080008410a820c2588000841020988528b02083498000c271606082102001c2716040c4716058c4716008, +86102001c620a010186ffffe8620e008c871400380a0e1688810c00486102818881122ef87293020841000050937ab6fc231615a82100006c27161508350c000, +090000408088c0041268024e01000000090000048088c004126803ae01000000090000088088c004026803b201000000881122008088c004c658a0700920f05e, +090080008088c0041268038201000000881022008088c00412680baf0100000083484000808860041268003101000000090000108088c0041268014101000000, +090000028088c0041268010201000000090020008088c004126800f801000000090010008088c004126800ee01000000090040008088c004126800cf01000000, +4541434845440d0a914140004e4f54528e100008108000061868000c010000008f54000080a1e002126801f001000000092000008088c004126801d101000000, +80a1e0021868000d010000008f5400008f4140000ac88050c258a0781068122fc4d889e08400af3030800b428410202091d02013901000070000000090022004, +c259a008860060908c102020ccd989e091d0201390100007470d0a009002200420465243204449414652552046524f4d1080000791414000010000008e100008, +88112800030000c0881020988929302082104002c271000084288001c2590000c458c000c270c00082102001832850028530b0088408a01f8800608885468000, +8350800083307028c2d849e085540000c070400082102020c25860088200607082102020c2d849e00af8bffc82006100c27100008530b0018088a00132600002, +82100009c45a654092020009c05a653092226001932a7006901000019351c000d0706520d270652882102020c2d849e012680018010000008208600380a04002, +01000000106811348088e00412680b2a81f0000087484000d05a2520c2586538d0da09e0d25a2528ce5a656890102020ca5a6558cc5a6560c65a6548c85a6550, +82006f30c420601082102020c2d849e08610e01084102002876670028728f01880a000018764700183508000820864001280002c010000008f41400080a0a000, +c4f00980010000001280000301000000c858607880a0c004c2d849e082006f30c6d809a0821020200268000b010000000700001080888003c6206014c4d80980, +8f54000080a1e002901000073080010c9002200491d02013444941470d0a000091414000465255208e100008108000051868000b010000008f54000080a1e002, +c2d849e08410200390100007821020289002200491d02013202d4652550d0a00696e204552524f5291414000435055208e100008108000071868000d01000000, +30800a988f540000c4206010c6206014c2d849e082006f3084102001821020208728f0188610e00187647001876670028208640080a00001c470606083508000, +84006f308400a16882102020c2d849e091d0201390100007470d0a0090022004494d4455204449411080000591414000010000008e10000880a1e0021868000b, +010000008210200012bffff58400a0108600e01080a0e2008c194006cc70a0088c19befe8b2970208a1161120d00448dcc70a0000b0d404007000000ccd8cac0, +90100007308001139002200491d0201320444941470d0a0091414000494d54558e100008108000051868000b010000008f54000080a1e002c0f04c0030800a75, +8f54000080a1e00290100007308001059002200491d0201320444941470d0a0091414000444d54558e100008108000051868000b010000008f54000080a1e002, +8400a16807000000c2d849e084006f3090100007821020209002200491d0201320444941470d0a0091414000444d44558e100008108000051868000b01000000, +82102008c0f04c008400a0100100000080a0e20012bffff5cc70a0088600e0088b2970208c1940060d00448d8c19befe0b0d40408a116112ccd8cbc0cc70a000, +1080000791414000010000008e10000880a1e0021868000d010000008f5400008f4140000ac88050c258a07810681003c4d889e08400af3030800a3684102020, +8530b0088408a01f8800608885468000c259a008860060908c102020ccd989e091d0201390100007470d0a009002200420495243204449414952552046524f4d, +c27100008530b0018088a0013260000288112800030000c0881020988929302082104002c271000084288001c2590000c458c000c270c0008210200183285002, +12680018010000008208600380a040028350800083307028c2d849e085540000c070400082102020c25860088200607082102020c2d849e00af8bffc82006100, +ca5a6558cc5a6560c65a6548c85a655082100009c45a654092020009c05a653092226001932a7006901000019351c000d0706520d270652882102020c2d849e0, +12800031010000008f41400080a0a0000100000010680f348088e00412680a1e81f0000087484000d05a2520c2586538d0da09e0d25a2528ce5a656890102020, +0700004080888003c6206014c4d8098082006f30c420601082102020c2d849e08610e00884102002876670028728f01880a00001876470018350800082086400, +1868000b010000008f54000080a1e002c4f00980010000001280000301000000c858607880a0c004c2d849e082006f30c6d809a0821020200268000b01000000, +308001ce8f540000c6d80960c670a168c2d849e084006f3090100007821020209002200491d02013444941470d0a000091414000495255208e10000810800005, +90100007821020289002200491d0201352550d0a0000000052524f52202d204943505520696e20451080000891414000010000008e10000880a1e0021868000e, +c4206010c6206014c2d849e082006f3084102001821020208728f0188610e00187647001876670028208640080a00001c470606083508000c2d849e084102003, +82102008c0f04c0091d0201390100007470d0a0090022004444d5355204449411080000591414000010000008e10000880a1e0021868000b30800b9c8f540000, +8600e00880a0e2008c194006cc70a0088c19befe8b2970208a1161120d00448dcc70a0000b0d404007000000ccd8cbc084006f308400a16882102020c2d849e0, +9002200491d02013204d45550d0a0000914140004a5553548e100008108000051868000b010000008f54000080a1e002010000003080096312bffff58400a010, +854680008530b00886006090880060888f414000c259a008861027e01068360e8410a350840180028201af70050000058c102020ccd989e09010000730800955, +32600002c2710000030000c08088a0018929302088112800c271000088102098c259000082104002c270c0008428800183285002c458c0008408a01f82102001, +c458400202c88051050000058410a35882102020c2d849e0106813bb8341400082006070c0704000c2d849e0c258600882006100821020208530b0010af8bffc, +881120288728f0208610208009000040ca590000ca7100008728f0208810c0040900004088112020c6704002861020808410a360861020010100000005000005, +c65980008610c004c6714000882900038728d004c85940008809201f8610200189468000893130088a00e0908c00e088ca710000c65860088810c004ca590000, +8600e070c070c000c6d8c9e0c658e0088600e10086102020893130010af93ffc32600002c6718000070000c0808920018d29b0208c11a800c67180008c102098, +9351c00092226001d270652890100001c2d849e0d0706520010000008210202080a04002126800188330702882086003855400008350800082102020c2d849e0, +c258653881f00000d25a2528d05a252090102020d0da09e0cc5a6560ce5a6568c85a6550ca5a6558c45a6540c65a6548c05a653082100009932a700692020009, +808860041268090890100007834840009002200491d02013444941470d0a0000914140004e4355208e100008108000051868000b010000008f54000080a1e002, +8728f0208810c0048610208009000040ca70a1608400a1688810c004ca590000881120208728f0208610208009000040c2d849e084006f300100000082102020, +8810c004ca590000881120308728f0208610208009000040ca70a0088400a0108810c004ca590000881120288728f0208610208009000040ca590000ca708000, +8810c004ca590000881120408728f0208610208009000040ca7080008400a0088810c004ca590000881120388728f0208610208009000040ca7080008400a008, +8810c004ca590000881120588728f0208610208009000040ca7080008400a0088810c004ca590000881120508728f0208610208009000040ca7080008400a008, +8810c004ca590000881120608728f0208610208009000040ca7080008400a0088810c004ca590000881120488728f0208610208009000040ca7080008400a008, +8810c004ca590000881120788728f0208610208009000040ca7080008400a0088810c004ca590000881120708728f0208610208009000040ca7080008400a008, +8810c004ca590000881120888728f0208610208009000040ca7080008400a0088810c004ca590000881120808728f0208610208009000040ca7080008400a008, +8810c004ca590000881120a08728f0208610208009000040ca7080008400a0088810c004ca590000881120908728f0208610208009000040ca7080008400a008, +ca590000ca7080008728f0208810c00409000040881120888400a008861020ffca590000ca7080008728f0208810c0048610208009000012ca7080008400a008, +861020800900004002c9400aca7100008810c004ca590000881120208728f0208610208009000040ca590000ca70800089293020881120188400a008881020ff, +80a1e00218680011308000158f54000002c94003ca71000088112018ca590000881020ff89293020ca7100003080001c8810c004ca590000881120288728f020, +91d020139010000700000000900220045349204c4f470d0a494e204a42492053204c4f47474544204e4f204552524f521080000b91414000010000008e100008, +8d6470018d6670028809240080a000048f41400089508000861027e0106834be8410a350840180028200604005000005ccd989e08201af30308000018c102020, +8f54000080a1e002c670a01830800a5284006f30c658a07882102020c2d849e0ca212010cc212014c8d909e088012f308a102002881020208d29b0188c11a004, +8201af70050000058c102020ccd989e090100007308000019002200491d02013444941470d0a0000914140004d4155208e100008108000051868000b01000000, +880120408a016040c6594000c670a0a0c6590000c670a0808a1020ac8b297020881020ab892930208f41400030800a3a861027e0106834948410a35084018002, +c6594000c670a0b8c6590000c670a098880120408a016040c6594000c670a0b0c6590000c670a090880120408a016040c6594000c670a0a8c6590000c670a088, +c670a0c8c65940008a014006c6590000c670a0e088010006c670a0c0c65940000d000004c65900008b2970208a116288881122808a1020978810209789293020, +c670a0d8c65940008a014006c6590000c670a0f0880100062ac8c0028610e080c670a0d0c65940008a014006c6590000c670a0e8880100062ac8c0028610e040, +880100068a014006c6594000c670a100c6590000c670a1208a1162a00d0000048a1020978b2970208929302088112298c670a0f8881020972ac8c0028610e0c0, +c6594000c670a118c6590000c670a138880100068a014006c6594000c670a110c6590000c670a130880100068a014006c6594000c670a108c6590000c670a128, +8929302080884004091ffaa988193ea08400af30c258a08084102020c4d889e01860077a010000008351c00080a06002126807b5010000008348400080886004, +53746174652000004c32204c696e65201080000691414000010000008e10000880a1e0021868000c8f4140008f540000c258a0a0106fe921026801c701000000, +010000008e10000880a1e00218680009901000078f5400009010000491d02014010000008e10000880a1e00218680006901000078f5400009002200491d02013, +8e100008108000071868000d010000008f54000080a1e00284006f30c870670082102020c2d849e091d02013901000070d0a0000900220041080000391414000, +c2d849e084006f308f414000821020208400a168106fe87990100007c258a0a09002200491d020134c320d0a00000000494e4720544845209141400044554d50, +00000000900220044553532055450d0a9141400050524f438e100008108000061868000c010000008f54000080a1e0028d29b020c8718000c858a0808c1020ab, +010000008e10000880a1e0021868000e010000008f5400008088c00402680042090004008929302084006f30c658a08082102020c2d849e091d0201390100007, +ca59200080a16180c8d909e08801211090100007881020209002200491d020136c696e650d0a00004720666c757368204c444155204449411080000891414000, +88012110c459200088102020c8d909e0106fe81c8f41400082006f30c25860a082102020c2d849e08a014004c47160008a016008ca7120003660118383414000, +80a000048d64700189508000880924001260001001000000c858670080a1200182102020c2d849e088010002c45920088420a008c471200024c0917383414000, +0268002201000000892930208088c004308008d988102200cc21201430bffef388012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b018, +0d0a00009002200444415520444941471080000591414000010000008e10000880a1e0021868000bc87140008f5400008b2970208a116280c858a0c08a102097, +cc21201430bffecd88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d647001895080008809240091d0201390100007, +470d0a00900220044c445755204449411080000591414000010000008e10000880a1e0021868000b010000008f5400008088c004026800240900010089293020, +8c11a0028a1020028d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a1200182102020c2d849e091d0201390100007, +1868000b010000008f54000080a1e0020268002201000000892930208088c0043080088d09000040cc21201430bffea788012f30ca21201088102020c8d909e0, +8809240080a00004010000008950800080a120011260001090100007c85867009002200491d0201320444941470d0a00914140004c4452558e10000810800005, +8088c00402680022090000108929302030bffe8230800868ca212010cc212014c8d909e088012f308a102002881020208d29b0188c11a0028d6470018d667002, +c858670080a1200191d0201390100007470d0a00900220044c445355204449411080000591414000010000008e10000880a1e0021868000b010000008f540000, +cc21201430bffe5d88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d64700189508000880924001260001001000000, +444941470d0a0000914140004c5255208e100008108000051868000b010000008f54000080a1e0020268001001000000892930208088c0043080084309000004, +8f54000080a1e0028a116280c87140008a1020978b29702001000000c858a0c08088c0040268002288102080892930209010000730bffe499002200491d02013, +8d6470018d6670028809240080a0000490100007895080009002200491d02013444941470d0a000091414000445255208e100008108000051868000b01000000, +c858a0c08a1020970268002201000000892930208088c00430bffe2488102020ca212010cc212014c8d909e088012f308a102002881020208d29b0188c11a002, +91d02013901000070d0a00009002200444535520444941471080000591414000010000008e10000880a1e0021868000bc87140008f5400008b2970208a116280, +8810280089293020cc212014308007e688012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d6470018950800088092400, +91d02013901000070d0a0000900220044c565520444941471080000591414000010000008e10000880a1e0021868000b010000008f5400008088c00402680010, +646973204a5553541080000791414000010000008e10000880a1e0021868000d010000008f5400008088c0040268001288193c008929302030bffdec091fffff, +9141400050524f438e100008108000071868000d010000008f54000080a1e002308007c60100000091d02013901000070a000000900220045f4c325f4d45550d, +80884004026801ce88193ea089293020c258a088091ffaa9c4d889e08400af3090100007841020209002200491d020134e440d0a000000004553532055452045, +6520000090022004696e652053746174914140004c32204c8e100008108000061868000c010000008f54000080a1e002106fe7528f41400001000000c258a0a8, +8e1000081080000318680009010000008f54000080a1e00291d02014901000078e1000089010000418680006010000008f54000080a1e00291d0201390100007, +1080000791414000010000008e10000880a1e0021868000dc87067008f540000c2d849e084006f3090100007821020209002200491d02013914140000d0a0000, +84006f30c858a08882102020c2d849e0106fe6aa8f414000c258a0a88400a16891d02013901000070000000090022004544845204c320d0a44554d50494e4720, +00000000900220044553532055450d0a9141400050524f438e100008108000061868000c010000008f54000080a1e0028c11a040c87180008c1020ab8d29b020, +010000008e10000880a1e0021868000e010000008f5400008088c00402680042090004008929302084006f30c658a08882102020c2d849e091d0201390100007, +ca59200080a16180c8d909e08801211090100007881020209002200491d020136c696e650d0a00004720666c757368204c444155204449411080000891414000, +88012110c459200088102020c8d909e0106fe64c8f41400082006f30c25860a882102020c2d849e08a014004c47160008a016008ca71200036600fb383414000, +80a000048d64700189508000880924001260001001000000c858670080a1200182102020c2d849e088010002c45920088420a008c471200024c08fa383414000, +0268002401000000892930208088c0043080070988102200cc21201430bffd2388012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b018, +44415520444941471080000591414000010000008e10000880a1e0021868000bc87140008f5400008d29b0208a1180050b0000048a116280c858a0c88c102097, +88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d647001895080008809240091d02013901000070d0a000090022004, +4c445755204449411080000591414000010000008e10000880a1e0021868000b010000008f5400008088c004026800240900010089293020cc21201430bffcfb, +8d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a1200182102020c2d849e091d0201390100007470d0a0090022004, +8f54000080a1e0020268002201000000892930208088c004308006bb09000040cc21201430bffcd588012f30ca21201088102020c8d909e08c11a0028a102002, +010000008950800080a120011260001090100007c85867009002200491d0201320444941470d0a00914140004c4452558e100008108000051868000b01000000, +090000108929302030bffcb030800696ca212010cc212014c8d909e088012f308a102002881020208d29b0188c11a0028d6470018d6670028809240080a00004, +91d0201390100007470d0a00900220044c445355204449411080000591414000010000008e10000880a1e0021868000b010000008f5400008088c00402680022, +88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a12001, +914140004c5255208e100008108000051868000b010000008f54000080a1e0020268001001000000892930208088c0043080067109000004cc21201430bffc8b, +8a1162808d29b0208c1020970b00000401000000c858a0c88088c0040268002488102080892930209010000730bffc779002200491d02013444941470d0a0000, +90100007895080009002200491d02013444941470d0a000091414000445255208e100008108000051868000b010000008f54000080a1e0028a118005c8714000, +892930208088c00430bffc5088102020ca212010cc212014c8d909e088012f308a102002881020208d29b0188c11a0028d6470018d6670028809240080a00004, +1080000591414000010000008e10000880a1e0021868000bc87140008f5400008d29b0208a1180050b0000048a116280c858a0c88c1020970268002401000000, +88102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d647001895080008809240091d02013901000070d0a0000900220044453552044494147, +1080000591414000010000008e10000880a1e0021868000b010000008f5400008088c004026800108810280089293020cc2120143080061088012f30ca212010, +80a1e0021868000d010000008f5400008088c0040268001288193c008929302030bffc16091fffff91d02013901000070d0a0000900220044c56552044494147, +8f54000080a1e002308005f00100000091d02013901000070a000000900220045f4c325f4d45550d646973204a5553541080000791414000010000008e100008, +c4d889e08400af3090100007841020209002200491d020134e440d0a0000000045535320554520459141400050524f438e100008108000071868000d01000000, +8e100008108000061868000c010000008f54000080a1e002106fe57c8f41400001000000c258a0b080884004026801ce88193ea089293020c258a090091ffaa9, +91d02014901000078e1000089010000418680006010000008f54000080a1e00291d02013901000076520000090022004696e652053746174914140004c32204c, +c87067008f540000c2d849e084006f3090100007821020209002200491d02013914140000d0a00008e1000081080000318680009010000008f54000080a1e002, +c258a0b08400a16891d02013901000070000000090022004544845204c320d0a44554d50494e47201080000791414000010000008e10000880a1e0021868000d, +8e100008108000061868000c010000008f54000080a1e0028c11a080c87180008c1020ab8d29b02084006f30c858a09082102020c2d849e0106fe4d48f414000, +8088c00402680042090004008929302084006f30c658a09082102020c2d849e091d020139010000700000000900220044553532055450d0a9141400050524f43, +9002200491d020136c696e650d0a00004720666c757368204c444155204449411080000891414000010000008e10000880a1e0021868000e010000008f540000, +82006f30c25860b082102020c2d849e08a014004c47160008a016008ca71200036600ddd83414000ca59200080a16180c8d909e0880121109010000788102020, +c858670080a1200182102020c2d849e088010002c45920088420a008c471200024c08dcd8341400088012110c459200088102020c8d909e0106fe4768f414000, +cc21201430bffb4d88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d64700189508000880924001260001001000000, +80a1e0021868000bc87140008f5400008d29b0208a1180050b0000088a116280c858a0d08c1020970268002401000000892930208088c0043080053388102200, +8d6670028d29b01880a000048d647001895080008809240091d02013901000070d0a00009002200444415520444941471080000591414000010000008e100008, +80a1e0021868000b010000008f5400008088c004026800240900010089293020cc21201430bffb2588012f30ca21201088102020c8d909e08c11a0028a102002, +1260001001000000c858670080a1200182102020c2d849e091d0201390100007470d0a00900220044c445755204449411080000591414000010000008e100008, +308004e509000040cc21201430bffaff88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d6470018950800088092400, +9002200491d0201320444941470d0a00914140004c4452558e100008108000051868000b010000008f54000080a1e0020268002201000000892930208088c004, +c8d909e088012f308a102002881020208d29b0188c11a0028d6470018d6670028809240080a00004010000008950800080a120011260001090100007c8586700, +1080000591414000010000008e10000880a1e0021868000b010000008f5400008088c00402680022090000108929302030bffada308004c0ca212010cc212014, +8d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a1200191d0201390100007470d0a00900220044c44535520444941, +8f54000080a1e0020268001001000000892930208088c0043080049b09000004cc21201430bffab588012f30ca21201088102020c8d909e08c11a0028a102002, +8088c0040268002488102080892930209010000730bffaa19002200491d02013444941470d0a0000914140004c5255208e100008108000051868000b01000000, +91414000445255208e100008108000051868000b010000008f54000080a1e0028a118005c87140008a1162808d29b0208c1020970b00000801000000c858a0d0, +c8d909e088012f308a102002881020208d29b0188c11a0028d6470018d6670028809240080a0000490100007895080009002200491d02013444941470d0a0000, +c87140008f5400008d29b0208a1180050b0000088a116280c858a0d08c1020970268002401000000892930208088c00430bffa7a88102020ca212010cc212014, +80a000048d647001895080008809240091d02013901000070d0a00009002200444535520444941471080000591414000010000008e10000880a1e0021868000b, +010000008f5400008088c004026800108810280089293020cc2120143080043a88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b018, +88193c008929302030bffa40091fffff91d02013901000070d0a0000900220044c565520444941471080000591414000010000008e10000880a1e0021868000b, +0a000000900220045f4c325f4d45550d646973204a5553541080000791414000010000008e10000880a1e0021868000d010000008f5400008088c00402680012, +4e440d0a0000000045535320554520459141400050524f438e100008108000071868000d010000008f54000080a1e0023080041a0100000091d0201390100007, +106fe3a68f41400001000000c258a0b880884004026801dd88193ea089293020c258a098091ffaa9c4d889e08400af3090100007841020209002200491d02013, +8f54000080a1e00291d02013901000076520000090022004696e652053746174914140004c32204c8e100008108000061868000c010000008f54000080a1e002, +9002200491d02013914140000d0a00008e1000081080000318680009010000008f54000080a1e00291d02014901000078e100008901000041868000601000000, +544845204c320d0a44554d50494e47201080000791414000010000008e10000880a1e0021868000dc87067008f540000c2d849e084006f309010000782102020, +8c11a0c0c87180008c1020ab8d29b02084006f30c858a09882102020c2d849e0106fe2fe8f414000c258a0b88400a16891d02013901000070000000090022004, +82102020c2d849e091d020139010000700000000900220044553532055450d0a9141400050524f438e100008108000061868000c010000008f54000080a1e002, +4c444155204449411080000891414000010000008e10000880a1e0021868000e010000008f5400008088c00402680042090004008929302084006f30c658a098, +8a016008ca71200036600c0783414000ca59200080a16180c8d909e08801211090100007881020209002200491d020136c696e650d0a00004720666c75736820, +8420a008c471200024c08bf78341400088012110c459200088102020c8d909e0106fe2a08f41400082006f30c25860b882102020c2d849e08a014004c4716000, +8c11a0028a1020028d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a1200182102020c2d849e088010002c4592008, +0b00000c8a116280c858a0d88c1020970268002401000000892930208088c0043080035d88102200cc21201430bff97788012f30ca21201088102020c8d909e0, +91d02013901000070d0a00009002200444415520444941471080000591414000010000008e10000880a1e0021868000bc87140008f5400008d29b0208a118005, +0900010089293020cc21201430bff94f88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d6470018950800088092400, +91d0201390100007470d0a00900220044c445755204449411080000591414000010000008e10000880a1e0021868000b010000008f5400008088c00402680024, +88102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d64700189508000880924001260001001000000c858670080a1200182102020c2d849e0, +8e100008108000051868000b010000008f54000080a1e0020268002201000000892930208088c0043080030f09000040cc21201430bff92988012f30ca212010, +8d6470018d6670028809240080a00004010000008950800080a120011260001090100007c85867009002200491d0201320444941470d0a00914140004c445255, +010000008f5400008088c00402680022090000108929302030bff904308002eaca212010cc212014c8d909e088012f308a102002881020208d29b0188c11a002, +1260001001000000c858670080a1200191d0201390100007470d0a00900220044c445355204449411080000591414000010000008e10000880a1e0021868000b, +308002c509000004cc21201430bff8df88012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d6470018950800088092400, +9002200491d02013444941470d0a0000914140004c5255208e100008108000051868000b010000008f54000080a1e0020268001001000000892930208088c004, +8f54000080a1e0028a118005c87140008a1162808d29b0208c1020970b00000c01000000c858a0d88088c0040268002488102080892930209010000730bff8cb, +8d6470018d6670028809240080a0000490100007895080009002200491d02013444941470d0a000091414000445255208e100008108000051868000b01000000, +c858a0d88c1020970268002401000000892930208088c00430bff8a488102020ca212010cc212014c8d909e088012f308a102002881020208d29b0188c11a002, +0d0a00009002200444535520444941471080000591414000010000008e10000880a1e0021868000bc87140008f5400008d29b0208a1180050b00000c8a116280, +cc2120143080026488012f30ca21201088102020c8d909e08c11a0028a1020028d6670028d29b01880a000048d647001895080008809240091d0201390100007, +0d0a0000900220044c565520444941471080000591414000010000008e10000880a1e0021868000b010000008f5400008088c004026800108810280089293020, +1080000791414000010000008e10000880a1e0021868000d010000008f5400008088c0040268001288193c008929302030bff86a091fffff91d0201390100007, +8e100008108000071868000d010000008f54000080a1e002308002440100000091d02013901000070a000000900220045f4c325f4d45550d646973204a555354, +1080000691414000010000008e10000880a1e0021868000c901000078f5400009002200491d020134e440d0a0000000045535320554520459141400050524f43, +914140004e4f5f558e100008108000061868000c010000008f54000080a1e00290100007308002259002200491d020134544210d0a0000004e4f545245414348, +8f4140003080020d861027e010682cba8410a350840180028201af70050000058c102020ccd989e091d02013901000070a00000090022004455f4552524f520d, +8c102020ccd989e091d02013901000070a00000090022004564552464c4f570d91414000544c204f8e100008108000061868000c010000008f54000080a1e002, +12680018010000008208600380a040028350800083307028c2d849e0855400008f41400082102020861027e010682ca28410a350840180028201af7005000005, +ca5a6558cc5a6560c65a6548c85a655082100009c45a654092020009c05a653092226001932a7006901000019351c000d0706520d270652882102020c2d849e0, +10682c798f41400084018002861027e0050000058410a350ccd989e08201af7030bfd0bc8c102020d05a2520c2586538d0da09e0d25a2528ce5a656890102020, +0af8fffa0100000086100002c7f0408001000000010000000100000001000000c2586008820060a082102020c2d849e0c408a0008400a00184102020c4d889e0, +8f4140008551c0008200600410800e1374656d0d0a0000002074686520737973202d2072657365747065727669736f72554520696e2068791080000c83414000, +8200600410800e01834140000d0a00008f414000108000038210000110800e1f8f414000835000008200600410800e0b5450433a203078001080000483414000, +0d0a000082006004108000038341400010800e0e8f4140008350c0008210000110800dfa8f41400030780000820060048341400054543a208f41400010800004, +108000038341400010800dfc8f414000835080008210000110800de88f41400030780000820060045453544154453a20108000058341400010800df08f414000, +854680008530b0088600609088006088ccd989e0c259a008c07040008c102020c2586008820060a082102020c2d849e010800dde8f4140000d0a000082006004, +32600002c2710000030000c08088a0018929302088112800c271000088102098c259000082104002c270c0008428800183285002c458c0008408a01f82102001, +835080008208640084102003c470606082102028c2d849e0106809cb8341400082006070c0704000c2d849e0c258600882006100821020208530b0010af8bffc, +18680014010000008f54000080a1e002c620601430bfff2b82006f30c420601082102020c2d849e08610e00184102001876670028728f01880a0000187647001, +0a000000900220046c206572726f720d303d312066617461697220302020256f7374656d3a202073742074686520537991414000526573658e1000081080000e, +8350c0008f54000091d0201390100007780000009002200491414000545420308e100008108000041868000a010000008f54000080a1e00291d0201390100007, +20544c20307800001080000491414000010000008e10000880a1e0021868000a901000078f5400009010000191d02014010000008e10000880a1e00218680006, +1868000a010000008f54000080a1e00291d02014901000078e1000089010000218680006010000008f54000080a1e002901000078551c0009002200491d02013, +9010000191d02014010000008e10000880a1e00218680006835000008f54000091d0201390100007203078009002200491414000205450438e10000810800004, +835040008f54000091d0201390100007000000009002200420544e50432030781080000591414000010000008e10000880a1e0021868000b901000078f540000, +20545354415445201080000591414000010000008e10000880a1e0021868000b901000078f5400009010000191d02014010000008e10000880a1e00218680006, +80a1e00218680009901000078f5400009010000191d02014010000008e10000880a1e00218680006835080008f54000091d02013901000073078000090022004, +80a1e0021868000d9f8020008f5400008f908000901020018420a0010af8bf8991d02013901000070d0a0000900220041080000391414000010000008e100008, +8201a7488401af288c102020ccd989e091d0201390100007000000009002200452525f5245540d0a4449532055455f451080000791414000010000008e100008, +01000000ca59a088821020000ac9404d80890005126800178c01a708ca59a0808c102020ccd989e088112220892930208f41400009000150861027e010682b46, +8210200301000000808900051260000501000000ca59a098821020020ac94041808900051268000b01000000ca59a090821020010ac940478089000512680011, +c85980018410202082486008820060601080000501000000820060a0c859800101000000824860088088800502680007841022208528b0201080003a01000000, +80a180051860000401000000ca58600880a180050a600008cc5860108c21000606c1400d010000008200a848ca586000c458a0288610201fc4d889e0c458a008, +0af8ffe68620e0018a1163c084008005010000000b0001158c103fff02c94009822060208a10200180a04005126ffff08a1020008a00a0680100000010800008, +8e100008108000071868000d010000008f54000080a1e00210800825010000000280000401000000c258600080a0400282102028c2d849e01080000a01000000, +3080002e8f540000108000f48f414000c2d849e08400670890100007821020209002200491d02013424c450d0a0000006520524553554d419141400071756575, +8f54000080a1e00291d0201390100007000000009002200452525f5245540d0a5245532055455f451080000791414000010000008e10000880a1e0021868000d, +c2d849e084006f3090100007821020209002200491d02013424c450d0a0000006520524553554d4191414000717565758e100008108000071868000d01000000, +c458606080a0a00382102028c2d849e010682aad8f41400084018002861027e0050000058410a350ccd989e08201af703080000a8c102020108000d08f414000, +8530b0088408a01f8800608885468000c259a00886006090126800218428a100c401a6c88088a1008c102020ccd989e0106806d48f4140001268000401000000, +c27100008530b0018088a0013260000288112800030000c0881020988929302082104002c271000084288001c2590000c458c000c270c0008210200183285002, +c2d849e085540000c071a6d882102020ce59a6d82ac9c02201000000c421a6c8c070400010800003c25860088200607082102020c2d849e00af8bffc82006100, +92020009c05a653092226001932a7006901000019351c000d0706520d270652882102020c2d849e012680018010000008208600380a040028350800083307028, +010000008f54000083f0000081c1e004d05a2520c2586538d0da09e0d25a2528ce5a656890102020ca5a6558cc5a6560c65a6548c85a655082100009c45a6540, +90100007821020209002200491d0201365740d0a0000000075655f6572725f72707265636973655f1080000891414000010000008e10000880a1e0021868000e, +1068002e010000003080000188103fffc65860008810000482102028c2d849e0c020a020c858a0180268000c01000000c800a01480892004c2d849e084006f30, +1068001e88103fff0ac900040100000001000000c858a0b8c858a0b00ac900070ac9000a0100000001000000c858a0a8c858a0a00ac9000d88102040c820a020, +1860000401000000cc59600880a100060a600008010000008821000480a1000601000000c8596010cc59600006c1800dc25860008a00684882102028c2d849e0, +8f41400082102020c870a018106800b082102028c2d849e02ac1800288103fff8c10200188103fff126ffff08a2160208c00606880a14006108000088c102000, +c67180008c102098c65980008610c004c6714000882900038728d004c85940008809201f8610200189468000893130088a00e0908c00e088c2d849e0c6586008, +106fd21b010000008600e070c070c000c6d8c9e0c658e0088600e10086102020893130010af93ffc32600002c6718000070000c0808920018d29b0208c11a800, +4f5420414c4c4f43914140005251204e8e100008108000061868000c010000008f54000080a1e002010000008c100007c65861880ac8c01482102028c2d849e0, +8810000430800001c858a018c658600001000000c020a020808920040268000a01000000c800a0148e10000681c1e00491d02013901000070d0a000090022004, +c858a0b80ac900040ac900070100000001000000c858a0b0c858a0a80ac9000a0ac9000d01000000c820a020c858a0a0010000008810204088103fff1068002e, +01000000cc59600880a100060a600008c85960108821000406c1800d010000008a006848cc596000c2d849e0c258600088103fff82102028010000001068001e, +c2d849e0c870a01888103fff8210202888103fff2ac180028a2160208c10200180a14006126ffff08c1020008c006068010000001080000880a1000618600004, +8c098004861023e08c016040c8586180861023e8cad8c4a081c1e004010000001268000401000000c858a01880a13fff0268000801000000c800a01480892002, +c820e014c858a018c820e010c800a014c870e008c800a010c870e000c858a00886014004c858a000ccf0c4a0c85861700268001a861023e8c8d8c4a080a18004, +80a1e0021868000b8c1000078f54000081c1e00401000000c070e030c070e038c830e026c070e028c830e024c810a026c820e020c810a024c870e018c800a020, +c2d849e0ca58600001000000821020288e10000681c1e00491d02013901000070a0000009002200452512046554c4c0d1080000591414000010000008e100008, +80a100030260003d02600040861020ff0700000080a1000380a10003026000430260000b861020048610200280a1000380a100030260000ec801601086102003, +ccf0c4a0c85861500260004a861023f8c8d8c4a080a180048c098004861023f08c016040c8586160861023f8cad8c4a002c0c06e0100000001000000c6586168, +c830e024c030e026c820e020c810a024c870e018c800a020c820e014c858a018c820e010c800a014c870e008c800a010c870e000c858a00886014004c858a000, +756d61626c655f65655f6e6f6e72657391414000717565758e1000081080000d18680013010000008f54000080a1e002c070e0388c100007c070e028c070e030, +80a1e002186800148c1000078f54000081c1e00401000000901000078e1000069002200491d020137565640d0a000000727920656e7175657270743a20656e74, +6e672069740d0a002e2044726f70706972726f7220706b74766572204e52206520746f2064656c696e6f2067756573741080000e91414000010000008e100008, +71756575655f6e6f1080000f91414000010000008e10000880a1e002186800158c1000078f54000081c1e00401000000901000078e1000069002200491d02013, +8e1000063080001591d0201390100007740d0a0090022004696e6720677565736c202d2065786974206e72712066756c6c655f657270743a6e726573756d6162, +67756573740d0a0065786974696e6720414c4c4f43202d204e5251204e4f54201080000a91414000010000008e10000880a1e002186800108c1000078f540000, +c608a0008600e00184102020c4d889e0c25860088200607082102020c2d849e0ccd989e08a01af3030bffcc68c102020901000078e1000069002200491d02013, +8408a01f82102001854680008530b008860060888800609080a0c002c259a008c5f050002af0bffa834140008410000301000000226806808410200002c08004, +8530b0010af8bffc32600002c2710000030000808088a0018929302088112800c271000088102098c259000082104002c270c0008428800183285002c458c000, +c4d889e0c408a01dc43161588410202882108001c409a0008328700c8330700c82006001c271a6b0c229615cc259a6b08528703482206001820061008351c000, +c471600882102001c2716048c4716058c258400085460000c25860d02ac04002c2d849e0c2586008c27160008210202082108001c2716050c43160248528b038, +8350c000c231615a83500000c271615083484000c271614883508000c2716140c2588000c27160688528b0208410a820c271606084102098c271604083498000, +c2590000c27161608728f0208810c0040900004088112020c071611886102080c0716108c0716110c07160d8c0716100c07160c8c07160d0c0716070c07160c0, +8a01601086102080c2590000c27160088728f0208810c0040900004088112028c2714000861020808810c004c2590000090000408728f0208a01616886102080, +8a01600886102080c2590000c27140008728f0208810c00409000040881120388a01600886102080c2590000c27140008728f0208810c0040900004088112030, +8a01600886102080c2590000c27140008728f0208810c00409000040881120508a01600886102080c2590000c27140008728f0208810c0040900004088112040, +8a01600886102080c2590000c27140008728f0208810c00409000040881120488a01600886102080c2590000c27140008728f0208810c0040900004088112058, +8a01600886102080c2590000c27140008728f0208810c00409000040881120708a01600886102080c2590000c27140008728f0208810c0040900004088112060, +8a01600886102080c2590000c27140008728f0208810c00409000040881120808a01600886102080c2590000c27140008728f0208810c0040900004088112078, +8a01600886102080c2590000c27140008728f0208810c00409000040881120908a01600886102080c2590000c27140008728f0208810c0040900004088112088, +861020ff09000040c27140008a0160088810c004c2590000090000128728f0208a01600886102080c2590000c27140008728f0208810c00409000040881120a0, +c259616086102080ccd989e08a01af30c27140008c10202088112018c2590000881020ff89293020c27140008a0160088810c004c2590000881120888728f020, +c4d889e08400a11082104004841020208410c002c87080008410a0288728f0208610208005000040c2708000c85961708728f0208410c002050000408410a020, +8f4140008c102020861027e0106827aa8410a350840180028201af70050000058600c002c270e0008600e008c670a0003660058183414000c658a00080a0e180, +c271000088102098c259000082104002c270c0008428800183285002c458c0008408a01f82102001854680008530b0088600609088006088ccd989e0c259a008, +841020988528b02082006070c0704000c2d849e0c258600882006100821020208530b0010af8bffc32600002c2710000030000c08088a0018929302088112800, +83f00000106805441260000301000000c258a00880886f12c270a000840080018341400082206008c258a00024c0454ec4d889e08400a110c070a40884102020, +010000008c1000078410200081c1e00484102001c071a6b8c459a6b802c880048c102020ccd989e08f4140008e1000068c1000071068002383414000c271a6b8, +841880018488aff0c4d809a0c25960780268000a841020000700004080890003ccd989e0c8d809808e1000068c102020106800148f414000106800848f414000, +9010000830800039108000328741400006800041010000008408a01f80a0a00884086ff08530b00481c1e00401000000c8f00980841020011268000484102002, +a0100010308000299e10000f3080002b9c10000e3080002d9a10000d3080002f9810000c308000319610000b308000339410000a308000359210000930800037, +b010001830800019ae1000173080001bac1000163080001daa1000153080001fa810001430800021a610001330800023a410001230800025a210001130800027, +8420a0088528b003be10001f3080000bbc10001e3080000dba10001d3080000fb810001c30800011b610001b30800013b410001a30800015b210001930800017, +30bffff88210000187414000801000000100000010800012c4f0096081c1e004a19200009010000481c0e004010000008828a001c8f009608600c002c4d80960, +8600c002c4d8096030bfffea8528b00330bfffec8e10000730bfffee8c10000630bffff08a10000530bffff28810000430bffff48610000330bffff684100002, +81c1e0040100000001000000841020018688eff002680005c659a6b88618c00181c0e004a190400082086e008330700988100008915400008828a001c8f00960, +9210000030800034901000003080003610800032874140000680003d010000008408a01f80a0a00884086ff08530b00481c1e00401000000c071a6b884100000, +a210000030800024a0100000308000269e100000308000289c1000003080002a9a1000003080002c981000003080002e96100000308000309410000030800032, +b210000030800014b010000030800016ae10000030800018ac1000003080001aaa1000003080001ca81000003080001ea610000030800020a410000030800022, +8600c00281c0e0048420a0088528b003be10000030800008bc1000003080000aba1000003080000cb81000003080000eb610000030800010b410000030800012, +30bffff38810000030bffff58610000030bffff78410000030bffff982100000874140008010000001000000108000129010000481c1e00401000000a1920000, +a1908000c271a6b88530b00981c0e0049154000084086e008600c0028810000830bfffeb8528b00330bfffed8e10000030bfffef8c10000030bffff18a100000, +84102001c071a6b8c459a6b802c88004ccd989e08a01a7088e1000068c1020208f4140008d8140008c10000710680025226000028d8160048b41800080896004, +0268000a841020000700001080890003ccd989e0c8d809808e1000068c102020106800148f414000106800b08f414000010000008c1000078410200081c1e004, +81a00020308000861080008287414000840863f08530b00481c1e00401000000c8f00980841020011268000484102002841880018488a3f0c4d809a0c2596078, +91a00028308000768fa00027308000788da000263080007a8ba000253080007c89a000243080007e87a000233080008085a000223080008283a0002130800084, +a1a00030308000669fa0002f308000689da0002e3080006a9ba0002d3080006c99a0002c3080006e97a0002b3080007095a0002a3080007293a0002930800074, +b1a0003830800056afa0003730800058ada000363080005aaba000353080005ca9a000343080005ea7a0003330800060a5a0003230800062a3a0003130800064, +83a0004130800046bfa0003e30800048bda0003e3080004abba0003d3080004cb9a0003c3080004eb7a0003b30800050b5a0003a30800052b3a0003930800054, +93a00049308000368fa00047308000388fa000473080003a8ba000453080003c8ba000453080003e87a000433080004087a000433080004283a0004130800044, +a3a00051308000269fa0004f308000289fa0004f3080002a9ba0004d3080002c9ba0004d3080002e97a0004b3080003097a0004b3080003293a0004930800034, +b3a0005930800016afa0005730800018afa000573080001aaba000553080001caba000553080001ea7a0005330800020a7a0005330800022a3a0005130800024, +8528b0038600c002bfa0005f30800008bfa0005f3080000abba0005d3080000cbba0005d3080000eb7a0005b30800010b7a0005b30800012b3a0005930800014, +81c1e0040100000001000000841020018688e3f002680005c659a6b88618c00181c1e0040100000001000000c4f00960c8f0096081c0e004c4d809608828a001, +87b00c203080007d85b00c203080007f83b00c203080008181b00c20308000831080008287414000840863f08530b00481c1e00401000000c071a6b884100000, +97b00c203080006d95b00c203080006f93b00c203080007191b00c20308000738fb00c20308000758db00c20308000778bb00c203080007989b00c203080007b, +a7b00c203080005da5b00c203080005fa3b00c2030800061a1b00c20308000639fb00c20308000659db00c20308000679bb00c203080006999b00c203080006b, +b7b00c203080004db5b00c203080004fb3b00c2030800051b1b00c2030800053afb00c2030800055adb00c2030800057abb00c2030800059a9b00c203080005b, +87b00c003080003d87b00c003080003f83b00c003080004183b00c0030800043bfb00c2030800045bdb00c2030800047bbb00c2030800049b9b00c203080004b, +97b00c003080002d97b00c003080002f93b00c003080003193b00c00308000338fb00c00308000358fb00c00308000378bb00c00308000398bb00c003080003b, +a7b00c003080001da7b00c003080001fa3b00c0030800021a3b00c00308000239fb00c00308000259fb00c00308000279bb00c00308000299bb00c003080002b, +b7b00c003080000db7b00c003080000fb3b00c0030800011b3b00c0030800013afb00c0030800015afb00c0030800017abb00c0030800019abb00c003080001b, +8541400081c1e00481c1e0040100000081c0e004010000008528b0038600c002bfb00c0030800005bfb00c0030800007bbb00c0030800009bbb00c003080000b, +c220e6c8c6d80960c200e6c88228600886102020c6d8c9e08608c001c6f0098005080000821040028088c0010280000503100fa0c6d809808400a00c8a100001, +8929b00cc258c0048728f0208610e2808528b020861020978c08a003051a00008400a00c8a1000018541400081c1e00481c1e004010000008610c005c6f00960, +83284006c400e6c8c6d8c9e082102010c270c00486102020c258c004820840028728f0208929a0068528b020861020ab05100aa98410a15082084002c270c004, +8c102020ccd989e081c1e0048400a00c0100000085414000c470c00081c1e004c458c000841080058529b0068600c002861020aa8728f02084288001c420e6c8, +c258a0808610c001c258a0408610c001c258a0008610c001841020ab8528b02012600010861000008410a20080890002c8d809800520f05ec671a6e0ce71a6e8, +03100fa0808840048088e0081260000430bfffe8c601a6c8106febbf8f41400002680005010000008528b0208088c002051ffaa98418bea0c258a0c08610c001, +8728f0208328700688110003861020aa82102001c658a000808860010260000483283006c258c001861020aa8728f020841020ab8528b0201260003a88100000, +88110003861020aa82102003c658a080808860010260000483287006c258c001861020aa8728f020c658a040881100030260000482102002c258c00180886001, +841020a98528b0202260000e010000008528b0208089000205100aa98410a150c658a0c0881100032260000401000000c258c001808860018728f02083287006, +30bfffa4c259a008106fdaf78f41400002680005010000008528b0208488800480a020010500080180a04002226800058408a01fc209a000c45880008530b00f, +81c1e00401000000ccd989e0ce59a6e88f4140008c10202088100000106823f98f4140008610000082004002106fff9601000000c459a6e0c25864f002c8400a, +88100000106823e18f41400086100000c25864f0106fff80c421a6c8c259a008821020018410a0018088a00132680010ce71a6e8c401a6c88c102020ccd989e0, +8a016008ca7120003660023783414000ca59200080a16180c8d909e08801211001000000881020208210000081c1e004ccd989e0ce59a6e88f4140008c102020, +88012008c870e0003660022783414000c858e00080a12180c6d8c9e08600e110ca59000586102020892930208b29b0068c100001881020aa8a014004ce716000, +8929b00384012060c2d849e082006748c870c000821020200260000388292001c858c000808920018929b0068600c004861020aa8728f02088010003ca712000, +8f414000cc584000cc712000106fd8a9c870e00088010003834140008801200880a121803660020c8600e110c858e00086102020c6d8c9e0c258400282087fc0, +841025408528b02084008006cc58a0088c21a008cc70a00024c181fb834140008400a110cc58a00084102020c4d889e08f4140008143e040cdf05006106fd8a5, +80a100051268001284102000c470e7d8c858c004880900028929b00388012040c6d8c9e08600e7488a094002861020208929a006ca5940048a1020ab8b297020, +8b2970208529a006c858c0048a1020ab8929b0038801204088102020c870e7d880a040041268000ac859400488093fc08b2970208929a006010000008a1020ac, +1268000d010000008809000280a1000588012040c858c0048a0940028929b0038929a006ca5940048a1020ab8b297020841025408528b020c8714002c4584000, +ca58a00024c141b4c4d889e08400a110c470e7d884102020c458e7d884114002126800058a10204088093fc080a040048929a006c85940048a1020ac8b297020, +24c1c1a58341400082006110ce58600082102020c2d849e084008003ca7080008528b0208729b006ca58a008841020aaca70a00084008005834140008a216008, +c658a0888628c004c4d889e0c458a0088929100584102020ca096000881020018a102020cad949e081c1e0040100000082004007ce5860088e21e008ce706000, +80a1a0201267fff7010000008c01a0018088c00432680006881020018929100680a1400602600006c658a0908c1020008610c004c670a098c670a088c658a098, +821000058410000684108003c47100008428c0028729b00f010000008728f00f80a0c005126800078730b00f8608e01f89293020c459000001000000881020a9, +c858e00080a12180c6d8c9e08600e110c271200086102020c870e00088010003834140008801200880a121803660016e8600e110c858e00086102020c6d8c9e0, +8420a008c470e00024c08157834140008600e110c458e00086102020c6d8c9e0106823f28f41400088010003c471200088012008c870e0003660016383414000, +8600e110c858e00086102020c6d8c9e08600c001c258e00882206008c270e00024c0414d834140008600e110c258e00086102020c6d8c9e08600c002c458e008, +88012008c870e0003660013783414000c858e00080a12180c6d8c9e08600e110c271200086102020c870e00088010003834140008801200880a1218036600142, +86102020c6d8c9e08600c002c458e0088420a008c470e00024c0812b834140008600e110c458e00086102020c6d8c9e010681e228f41400088010003c4712000, +86102000c8588000c458a0008400abd884102028c4d889e082102028c2d849e08600c001c258e00882206008c270e00024c04121834140008600e110c258e000, +cc59201080a140068a102020cad949e002c980100100000001000000cc59217080a1a0021268001301000000cc59206080a100010260001702c1001a01000000, +0100000010680b9180a0e0201267ffe28400a0088600e0011268000a01000000ca596090808980058d295006ca586008cc09a0008a1020010260000a01000000, +c820e014c8586018c820e010c8006014c870e008c8006010c870e000c85860088600a708c858600082006f30c459201082102020c2d849e08f4140003080001a, +8600609088006088ccd989e0c259a008caf00e608c1020208b29b0088a11603fc830e026cc08a000c830e024c8106026c820e020c8106024c870e018c8006020, +030000c08088a0018929302088112800c271000088102098c259000082104002c270c0008428800183285002c458c0008408a01f82102001854680008530b008, +832850068c102020cc0860008210200182102020c2d849e082006070c0704000c2d849e0c258600882006100821020208530b0010af8bffc32600002c2710000, +c6710000108000a48d29b0088610c00688112800070000808810209889293020c2d849e0cc086000ca71a09082102020ca59a0908a294001ccd989e0cc59a008, +8610200080a0e02083f000008400abd88528b020c070a4080100000084102098c45880000af0ba0e8328702084104002050000408410a0208341400082102080, +c9f190000af13fff8410a3788c004002c258601005000005126ffff78600e001ca58606080a1600222f07ffb8600e0018a48e008c25880050260002501000000, +88112380cc704004cc5960080900000588112388cc704004cc0160140900000588112370cc704004cc59600009000005ccd989e08a01a708010000008c102020, +83285002c458c0008408a01f82102001854680008530b0088600609088006088ccd989e0c259a008c6f00e608c1020208a10203e8610c005c60860008728f008, +82006100821020208530b0010af8bffc32600002c2710000030000c08088a0018929302088112800c271000088102098c259000082104002c270c00084288001, +c87160000900000588112370c85980048a01a708090000058c102020ccd989e0c071a6d883f00000ce59a6d82af9f82882006070c0704000c2d849e0c2586008, +8401a848c658a000ccd989e0cc59a000c07180048c10202888112378c2598004c82160140900000588112388c8598004c87160080900000588112380c8598004, +80a08003126ffff0861020008601a068010000001080000880a100031860000401000000c658a00880a100030a600008c858a0108820400406c0c00d01000000, +8f54000080a1e00288102040c821602088102001c8216010c809a01dc8316024ccd989e0c271601888103fff8c10202888103fff2ac0c0028420a02086102001, +c2d849e08400670890100007821020209002200491d02013424c450d0a0000006520524553554d4191414000717565758e100008108000071868000d01000000, +82100006108003f9108003e48f414000780000008200600461696c757265203041424f52543a2046108000078341400083f000008c10000110bff8508f414000, +010000008c1020208210000f10bfffe63080000001000000108003d88f4140000000000082006004696e6e696e670d0a834140002c2073708f41400010800006, +80a040031260000482006010c601a00003000000c2594001c401a0308c01a06002c1801001000000ca596000cc59a0b88a102028cad949e0ccd989e0cc59a008, +12680004c801a014c601a0108088e010106fffe58f41400081c1e004010000009010200681f000001267fff98c01a0800260000684a0a001c801a00480a10008, +12680005c801a01406f1ffff8e2020018e202001cff110008088e0208801a0208f414000c601a01081f00000106fffda92092fff901020009010200681f00000, +02600013010000000268001580892010808a68008410a0088410a00202680003026800038088e008841000008088e00281f000008209200ac071a02090102006, +9002200491d020136f72740d0a0000006f63657373204162756575652c20507291414000496e20518e100008108000091868000f010000008f54000080a1e002, +10681c578f41400001000000c259a028c071a02002c84005106801428f414000c221a014821000068210800182110002809880010260000490100007840a4002, +c858e00080a1000980892001026009f586014003c808e0188728f0058600e06880a0e040166009fb04c289fe87327022106fff9d8f4140009010200081f00000, +9810000090102006c601a0109210000080a2800408680006c801a00c882120088801000992100004066009eec858e0108821000980a1000a186009f2c858e008, +9810000090102009c071a020921000000268000788112010c801a0148089201006f07fff8220200182202001c3f110000267fffb8801a02081f000008088e004, +c22ac000126ffffc9202600194a2a001c271a068c20a4000960320088202a008c0332004d0332006c801a000c8232000c071a020d859a07081f00000c821a014, +c5f0500006f0bfff8201202084202001c259a068c271205002680028c859a048c801a010808921008f414000c2332004c459a068106800de9602e0018210000c, +91414000585858208e1000081080000c18680012010000008f54000080a1e00202600018c2592028c07120208088600282106001c221201484202001c2012014, +9010200081f0000010801be98f41400091d02013901000070a0000009002200452202d205858580d44494e4720494e54472052582050454e2d2053454e44494e, +0ac8c011cc716040cc70e078c659603802c8c003c071a07888202001c6596040c9f0d00006f13fff8601605888202001ca596008ca5960b88a102020cad949e0, +cc716038c0716058c632a008d22aa01992102001c659a06892026001d4596018c82a4000126ffffc9402a00186a0e001c659a068c80a8000d2596008d459a070, +808920010260096386014003c808e0188728f0058600e06880a0e0401660096904c2896c87327022106fff0b8f4140009010200081f000009210000094100001, +921020009010200612680005c801a014c801a0108089200188010009921000040660095cc858e0108821000980a1000a18600960c858e008c858e00080a10009, +8610000a9210000a841000099410000480a2800408680003c859a050882120089010200981f00000981000009210200012680006d859a05881f0000080892001, +98202001d9f110008088e0208801a0208f414000c601a01081f00000106ffed68400a00190102000c8288000126ffffc8200600186a0e00182032008c8084000, +02600016808a600284100000808a6001920a400498100004920a40039212400c81f00000980a6800c071a0209010200612680005c801a01406f33fff98202001, +c4216014c07160208410a0048088a008c40160148428a01006f1ffff8e2020018e202001cff09000ca59a0488401602002680012808a6002882920018088e100, +80a2400088292800882920080260000302600003808a6800808a600888292004882920020260000302600003808a6004808a6002841000058410000002600003, +91414000585858208e1000081080000c18680012010000008f54000080a1e00202c8801901000000c821a014c071a020026000039810000002600005809b0004, +8f41400090102000c259602810801b3891d02013901000070d0a0000900220045452202d20585858504c45544520494e4720545820434f4d2d2053454e44494e, +146ffffd820060028800c00484a0a00201000000c61040008219000381c1e004126800058620200184a0a001c8084002026800098810000081f000008088a001, +840880038730a002860860058530a001c20060148408600a81c1e004010000008530a010821900028800c00484202001893120100af8fffd8731201089292010, +c800601484103fff80892004126800078a202001c8006010cbf1100006f17fff880060208a20200181c1e004010000008330600b82108001841080038408a001, +c8206014c0706020c8006014881120103867fff684103ffd8821200880a0c00484103ffec800600c808920103267fffb81c1e00401000000c070602082100002, +88012001c6586068ca290000126ffffc8400a00186a0e0018801a008ca0880008800e008c8706068c8006004c831a006c821a000c031a004cc586070c8006000, +8801400486103fff893120100af97ffd8b31201089292010146ffffd8c01a0028801400486a0e002c8098003ca1180008810000086a0e0018088e00102680004, +8a202001c858a040cbf1100006f17fff8800a0588a20200122c0802282103ffcc458a008c458a0b884102020c4d889e0cc586070c431a0048730e01084190003, +8a01600186a0e001c6586068cc094000c858a008ca5860700ac1801001000000c270a038cc00a0340ac90014c270a040c2712078c858a03802c90003c0706078, +80a0c00438600046c800600c8821200881c1e00401000000c070a05882102000c6316008c829601988102001c658606888012001ca58a018cc290000126ffffc, +8400a00186a0e0018801a008ca0880008800e008c8706068c8006004c831a006c821a000c031a004cc586070c800600088112010c820601484103ffdc8006014, +8b31201089292010146ffffd8c01a0028801400486a0e002c8098003ca1180008810000086a0e0018088e0010268000488012001c6586068ca290000126ffffc, +c858a04002c9000322f0bfce82103ffcc458a008c458a0b884102020c4d889e0cc586070c431a0048730e010841900038801400486103fff893120100af97ffd, +ca58a01888102001126ffffc8801200186a0e001cc290000cc0940008a016001ca586070c6586068c270a040c858a008c858a0380ac90011c0706078c2712078, +841020988528b0208410200bc428e0118528b020861880030703cfd78618fc000100000084103f008210200081c1e004c8296019c270a038c6586068c6316008, +88010003ce71200088012008c870e0003667fd7983414000c858e00080a12180c6d8c9e08600e11083f0000086102020106fff44010000008410a400c070a010, +c65920108b30f00886118003c67120088628c0058d28b0088a10201f8b29700812680008010000008a09601f80a14001c65920088b30f0088810209889293020, +c6d8c9e08600e110caf00e60861020208b28b0088a11601086118003c67120108628c0058d28b0088a10201f8b2970081268000b010000008a09601f80a14001, +80a1a0031260002180a1a0020267fffecc706080cc586088010000008d410000ce58e00881c1e004ce70e0008600c007834140008e21e008ce58e00024f1fd52, +cc586090ccf15c40caf084a08a00c00602c98016841023c802600018cc586100c8d884a080a140048a094006841023c08a00e040cc586110841023c8c6d884a0, +8143e040c0706088cc5860c8cc716038cc5860c0cc716030cc5860b8cc716028cc5860b0cc716020cc5860a8cc716018cc5860a0cc716010cc586098cc716008, +1868000e010000008f54000080a1e002841000008a100007c2d849e01080001486100001821020281080001984102001c2d849e08610000283f0000082102028, +8a102020cad949e08e1000058800614091d020139010000700000000900220046967757265640d0a7120756e636f6e6691414000646576208e10000810800008, +ca5861488c01604022c9002a0100000080a18005c8586120cbf110002af17ffa834140008a10000601000000226ffcfe8a10200002c14004cc0960008c01a001, +c4716010c458e018c4716008c458e010c4716000c458e00830800011c458e00001000000c67160008a01400402c88004cc706148c8586120c85861308c098004, +881023d8108000071268000501000000c6d8c9e080a0c001c471603886102028c4716030c458e038c4716028c458e030c4716020c458e028c4716018c458e020, +8801200186102000c6d8c9e0c808e000840061408610202081c1e0040100000088006140c07100008610e01ec6f00e60c408a0008728b008ccf104a0c4586010, +010000008c10209fc070800081c1e004c6f104a084006140c6586148881023d82af0fffa80a1000386100004c7f09000226ffcc18341400002c0c00401000000, +1a6000130d000003c258600080a0a80082102028c2d849e0841100038730f006c071ab008808a03fc459a600c659a700808920200260001e8d29b020c859ab00, +0100000081c18000cc59a00802c1800402c18007c258600082004006cc586008c2586008c2586428010000008d29b004cc09800202c1800e8c11a2108c004006, +c658a00080a0e180c4d889e08400a11001000000841020208f41400010682703c2288003106800d2861029408210200184102028c4d889e00100000083f00000, +8200400382006bd8c658e0008328700386102028c6d8c9e084006708c210a02482102020c2d849e08600c002ce70e0008600e008c670a0003667fc8383414000, +1268000401000000c458a0a880a0bfffc4d889e0c458a0088f4140008410202084006708106ff4b982102020c2d849e0106828b48f414000c2584000c4586010, +026fff0b80a0a03a83f0000080a0a03d82004007ce5860088e21e008ce70600024f1fc5d8341400082006110ce58600082102020c2d849e010681ee98f414000, +026fffbd01000000026ffba580a0a03f026ffbfe80a0a03c83f0000080a0a03e106fff848f4140001268000501000000026fff9d80a0a01e026fffc280a0a01f, +0a6ffff6010000008200604080a04002c0f06030c0f06038c0f06020c0f06028c0f06010c0f06018c0f06000c0f0600884004002878020e283f0000002c8800f, +026ffff501000000881100038089200701000000881040028400a00881c1e004c8708000186ffffdc858400286a0e00801000000822040028143e04081c1e004, +81c1e00401000000126ffffe82006001c028400084a0a00102c080060100000081c1e00401000000186ffffd8400a00186a0e001c828800082204002c8084002, +308000080100000032480004c628800080a0e0008200600101000000c60840008088e02002bffffe8418c002c608a0058418bc008728f02086103f000503cf4f, +8089202002bffffe8418c002c808a0058418bc008728f02086103f000503cf4f81c1e0040100000030bffff50100000002bffffe01000000c608a0058088e040, +126ffffb010000000100000086a0e0048a89600f12680007880120048b305003383961626364656630313233343536371080000689414000010000008610203c, +0100000081c1e0040100000030bffff38089604002bffffe01000000ca08a005010000003080000886a0e00416800004ca090005ca2880008b3050038a09600f, +8610200381c1e004c6286000c02860018610201b8648e00186102083c628600386102001c628600286102006c6286002c0286001c028600201000000c4086005, +c670600084006008820180018751c000ccd989e0821022d081f000008c10202810bfffc28f41400081f000008210000810bfffae8f414000c628600382100008, +8b484000ca7120208b50c000ca7120188b508000ca7120108b504000ca7120088b500000ca7120008848e02888010002010000008620e0018f90e00002c0c011, +85460000c47061e085410000c47061d885520000c47061c88540c000c47061b885400000c47061b085514000c47061a8c85860008f910000106ffff001000000, +c4d8c400c4706208c47062008610201886102010c4d8c400c4d8c400c47061f8c47061f08610200886102000c4d8c40085458000c47061c085464000c47061e8, +85530000c470625885534000c47062508552c000c470624885528000c470624085538000c4706238c4d8c400c4706228c47062208610203886102030c4d8c400, +e270e048e470e050fe70e038e070e040fa70e028fc70e030f670e018f870e020f270e008f470e01093910000f070e000860062608810200085524000c4706230, +e47060f8a8006100a2100007a5540000c458623093908000126fffec010000008801200180a12008ee70e0788600e080ea70e068ec70e070e670e058e870e060, +106ffff301000000a604e001a8052038cc752028ce752030c8752018ca752020c4752008c675201001000000c275200080a4c0120260000da6102000a194c000, +80a4c0120260000de45c60f8a194c000a6102000a8046100a2040011ae100007e0dc09e0a21022d001000000a01020288e10001181c1e004a19000008f900000, +82100011860062608e1000178c100010106ffff301000000a604e001a8052038cc5d2028ce5d2030c85d2018ca5d2020c45d2008c65d201001000000c25d2000, +e858e060ea58e068e458e050e658e058e058e040e258e048fc58e030fe58e038f858e020fa58e028f458e010f658e018f058e000f258e0088810200093910000, +97908000c45862409b908000c458624899908000c458625093908000c458625801000000c458623080a12008126fffec8600e08088012001ec58e070ee58e078, +c4f0c400c4586220c45862088610201886102010c4f0c400c4f0c400c4586200c45861f88610200886102000c4f0c4009d908000c45861f095908000c4586238, +91908000c45861e8ad808000c45861c887808000c45861c081808000c45861b88b908000c45861b0c4f0c400c45861a8c45862288610203886102030c4f0c400, +010000000900004080a0c002066800048728f0018730f001010000008746000080a0c0021468000a8728f0018730f00101000000c65861e0b380800006c88010, +ca58e01887914000ca58e01085914000ca58e00883914000ca58e00081914000880120018f9100000100000086006008c458600002c88013a981000088102000, +1868000a010000008f54000080a1e002010000008c1000078143e04081c1e004c85860008f910000126ffff2010000008600e02880a10002ca58e02083994000, +9010000191d02014010000008e10000880a1e002186800068351c0008f54000091d0201390100007780000009002200491414000746c20308e10000810800004, +8f54000080a1e00290100007835400009002200491d0201320676c20307800001080000491414000010000008e10000880a1e0021868000a901000078f540000, +307800009002200491414000207474208e100008108000041868000a010000008f54000080a1e00291d02014901000078e100008901000011868000601000000, +010000008e10000880a1e0021868000a901000078f5400009010000191d02014010000008e10000880a1e002186800068350c0008f54000091d0201390100007, +91d02014901000078e1000089010000118680006010000008f54000080a1e00290100007835000009002200491d0201320747063203078001080000491414000, +8f54000080a1e00290100007835040009002200491d0201363203078000000009141400020746e708e100008108000051868000b010000008f54000080a1e002, +617465203078000091414000207473748e100008108000051868000b010000008f54000080a1e00291d02014901000078e100008901000011868000601000000, +1868000b010000008f54000080a1e00291d02014901000078e1000089010000118680006010000008f54000080a1e00290100007835080009002200491d02013, +8e1000089010000118680006010000008f54000080a1e00290100007834840009002200491d02013746174652030780091414000206874738e10000810800005, +80a1e0021868000b901000078f5400009002200491d02013914140000d0a00008e1000081080000318680009010000008f54000080a1e00291d0201490100007, +010000008e10000880a1e00218680006835380008f54000091d0201390100007307800009002200420777374617465201080000591414000010000008e100008, +91d020139010000720307800900220042063616e736176651080000591414000010000008e10000880a1e0021868000b901000078f5400009010000191d02014, +1080000691414000010000008e10000880a1e0021868000c901000078f5400009010000191d02014010000008e10000880a1e00218680006835280008f540000, +91d02014901000078e1000089010000118680006010000008f54000080a1e002901000078352c0009002200491d020136f726520307800002063616e72657374, +835340008f54000091d02013901000070000000090022004657277696e20307891414000206f74688e100008108000061868000c010000008f54000080a1e002, +20636c65616e77691080000691414000010000008e10000880a1e0021868000c901000078f5400009010000191d02014010000008e10000880a1e00218680006, +8f54000080a1e00291d02014901000078e1000089010000118680006010000008f54000080a1e00290100007835300009002200491d020136e20307800000000, +010000008e10000880a1e00218680006835240008f54000091d0201390100007203078009002200491414000206377708e100008108000041868000a01000000, +8f54000080a1e00291d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010000191d02014, +010000008e10000880a1e00218680006835140008f54000091d0201390100007203078009002200491414000207462618e100008108000041868000a01000000, +90100007834000009002200491d0201320792030780000001080000491414000010000008e10000880a1e0021868000a901000078f5400009010000191d02014, +91414000206173698e100008108000041868000a010000008f54000080a1e00291d02014901000078e1000089010000118680006010000008f54000080a1e002, +80a1e0021868000a901000078f5400009010000191d02014010000008e10000880a1e002186800068340c0008f54000091d02013901000072030780090022004, +8e1000089010000118680006010000008f54000080a1e00290100007835200009002200491d020132070696c203078001080000491414000010000008e100008, +91d02013901000070000000090022004636b636d7020307891414000207374698e100008108000061868000c010000008f54000080a1e00291d0201490100007, +1080000591414000010000008e10000880a1e0021868000b901000078f5400009010000191d02014010000008e10000880a1e00218680006834640008f540000, +901000078f5400009010000191d02014010000008e10000880a1e00218680006834580008f54000091d0201390100007203078009002200420736f6674696e74, +8e100008108000041868000a010000008f54000080a1e00291d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009, +91d02014901000078e1000089010000118680006010000008f54000080a1e00282102000c2d8440091d020139010000720307800900220049141400020736330, +8f54000080a1e00282102008c2d8440091d0201390100007203078009002200491414000207363318e100008108000041868000a010000008f54000080a1e002, +203078009002200491414000207363328e100008108000041868000a010000008f54000080a1e00291d02014901000078e100008901000011868000601000000, +1868000a010000008f54000080a1e00291d02014901000078e1000089010000118680006010000008f54000080a1e00282102010c2d8440091d0201390100007, +8e1000089010000118680006010000008f54000080a1e00282102018c2d8440091d0201390100007203078009002200491414000207363338e10000810800004, +82102030c2d8440091d0201390100007203078009002200491414000207363368e100008108000041868000a010000008f54000080a1e00291d0201490100007, +91414000207363378e100008108000041868000a010000008f54000080a1e00291d02014901000078e1000089010000118680006010000008f54000080a1e002, +875240008410200091d02014901000078e1000089010000118680006010000008f54000080a1e00282102038c2d8440091d02013901000072030780090022004, +80a1e00218680006901000078f5400009002200491d020136f772030780000009141400057696e648e100008108000051868000b010000008f54000080a1e002, +91d02013901000070d0a0000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010000291d02014010000008e100008, +80a1e00218680006901000078f5400009002200491d0201369302030780000001080000491414000010000008e10000880a1e0021868000a939080008f540000, +91d020139010000720200000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010001891d02014010000008e100008, +18680006010000008f54000080a1e00291d0201390100007780000009002200491414000693120308e100008108000041868000a010000008f54000080a1e002, +901000078f5400009002200491d0201391414000202000008e1000081080000318680009010000008f54000080a1e00291d02014901000078e10000890100019, +010000008e10000880a1e00218680006901000078f5400009002200491d0201369322030780000001080000491414000010000008e10000880a1e0021868000a, +8f54000080a1e00291d020139010000720200000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010001a91d02014, +8e1000089010001b18680006010000008f54000080a1e00291d0201390100007780000009002200491414000693320308e100008108000041868000a01000000, +80a1e0021868000a901000078f5400009002200491d0201391414000202000008e1000081080000318680009010000008f54000080a1e00291d0201490100007, +9010001c91d02014010000008e10000880a1e00218680006901000078f5400009002200491d0201369342030780000001080000491414000010000008e100008, +1868000a010000008f54000080a1e00291d020139010000720200000900220041080000391414000010000008e10000880a1e00218680009901000078f540000, +91d02014901000078e1000089010001d18680006010000008f54000080a1e00291d0201390100007780000009002200491414000693520308e10000810800004, +010000008e10000880a1e0021868000a901000078f5400009002200491d0201391414000202000008e1000081080000318680009010000008f54000080a1e002, +901000078f5400009010001e91d02014010000008e10000880a1e00218680006901000078f5400009002200491d0201369362030780000001080000491414000, +8e100008108000041868000a010000008f54000080a1e00291d020139010000720200000900220041080000391414000010000008e10000880a1e00218680009, +8f54000080a1e00291d02014901000078e1000089010001f18680006010000008f54000080a1e00291d020139010000778000000900220049141400069372030, +1080000391414000010000008e10000880a1e00218680009901000078f5400009002200491d0201391414000202000008e100008108000031868000901000000, +91d02013901000077800000090022004914140006c3020308e100008108000041868000a010000008f54000080a1e00291d02013901000070d0a000090022004, +91414000202000008e1000081080000318680009010000008f54000080a1e00291d02014901000078e1000089010001018680006010000008f54000080a1e002, +901000078f5400009002200491d020136c312030780000001080000491414000010000008e10000880a1e0021868000a901000078f5400009002200491d02013, +20200000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010001191d02014010000008e10000880a1e00218680006, +8f54000080a1e00291d02013901000077800000090022004914140006c3220308e100008108000041868000a010000008f54000080a1e00291d0201390100007, +9002200491d0201391414000202000008e1000081080000318680009010000008f54000080a1e00291d02014901000078e100008901000121868000601000000, +80a1e00218680006901000078f5400009002200491d020136c332030780000001080000491414000010000008e10000880a1e0021868000a901000078f540000, +91d020139010000720200000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010001391d02014010000008e100008, +18680006010000008f54000080a1e00291d02013901000077800000090022004914140006c3420308e100008108000041868000a010000008f54000080a1e002, +901000078f5400009002200491d0201391414000202000008e1000081080000318680009010000008f54000080a1e00291d02014901000078e10000890100014, +010000008e10000880a1e00218680006901000078f5400009002200491d020136c352030780000001080000491414000010000008e10000880a1e0021868000a, +8f54000080a1e00291d020139010000720200000900220041080000391414000010000008e10000880a1e00218680009901000078f5400009010001591d02014, +8e1000089010001618680006010000008f54000080a1e00291d02013901000077800000090022004914140006c3620308e100008108000041868000a01000000, +80a1e0021868000a901000078f5400009002200491d0201391414000202000008e1000081080000318680009010000008f54000080a1e00291d0201490100007, +9010001791d02014010000008e10000880a1e00218680006901000078f5400009002200491d020136c372030780000001080000491414000010000008e100008, +18680009010000008f54000080a1e00291d020139010000720200000900220041080000391414000010000008e10000880a1e00218680009901000078f540000, +01000000921020208e10000681c1e004010000009390c00080a0a008126ffdd7901000078400a0019002200491d02013914140000d0a00008e10000810800003, +80a360041a6000bd81c3e0089146000081c3e0080100000001000000c07200000100000081c3e008d3f210000af27ffe9402a0019210000ad2da49e0d40a6000, +08680004832b7003c458ade880a36201c4d889e0c458a0003068008784102028306813343068015c01000000306800108200601081c04002852b700283414000, +1068006a94102000126800b0010000001268000680a260018400ad2880a22000c4d889e0c458a0000100000084102028c458800181c080008223620183287003, +02c9008c80a0c008c60040008400a01082204003c8006004c658e008c658e02086102020c6d8c9e0821062d8821040038728f020033c00bd070000008610e0ff, +c800600480a1000a80a0c009126ffffa82004004c600600088012003892930039410200002c0c095821020001068000d0aca400982006008326ffffb82004004, +80a1400a02600039c859000502c8c03b8b2970031068000fc65900008a01600102c8c027c858a00802680009ca00a004c600a00080a0c0099565500482006008, +8e102028ced9c9e08b4140008a016180882120108620c004c6584006c85840051068001bc85840068d29b003c65840058b297003186000058a0160018c02a001, +8b297003c658400002c2401c8a02a00106f8fffd8600e0108d29b003ca71c00688210006cc58c004cc59a008cc59a0208c102020ccd989e0ce59e000ce59ede8, +90102020d0da09e0cc58e000ca58e0088620c00688210006cc59a008cc59a0208c102020ccd989e0ce59e000ce59ede88e102028ced9c9e0c858400588212010, +81f00000841020289210000a90102000c670a000c270a008872a702086128003126ffff68600e010ca71c00680a0c0048a2140088d29b003d05a2008d05a2020, +c658e008c658e02086102020c6d8c9e0821062d8821040038728f020033c00bd070000008610e0ff02600014010000008400ad2880a22000c4d889e0c458a000, +9010200081f000009010200081f000008728f0209530f020c658a0009330f020326ffffb8200400402c9001680a0c008c60040008400a01082204003c8006004, +9010200881f000009010200781f000009010200681f000009010200581f000009010200481f000009010200381f000009010200281f000009010200181f00000, +9010201081f000009010200d81f000009010200e81f000009010200f81f000009010200c81f000009010200b81f000009010200a81f000009010200981f00000, +8a102028cad949e0c2d849e0c2586008ce70e00082102020c670a0008600c002834140008600e00880a0e1803667f55e8400a110c658a00084102020c4d889e0, +8620e00182102020820040020af8fff81268001e01000000c800601080a120ff02680006010000008410a3c080a040058610201f05000115ca596000c2586028, +09666f72207468651080000991414000010000008e10000880a1e0021868000f010000008f54000080a0400202600013c2586508c4596000c2d849e0c2586008, +d05a20008402201890102028d0da09e0106821f68f414000a19020008f90200091d02013901000070a00000090022004657374202e2e2e0d206c617374206775, +80a0e0010260002c80a0c001c6022010c3f090002af07ffa834140008210000301000000226ff51c8210200002c04004c60860008600e00182102020c2d849e0, +88102004c82220100260000d01000000c25860c880a04008c258e05082004004c858e4d888492110c6d8c9e0c658e008010000008610202080a0e0040260002a, +01000000841020209210200340004e73c8222010c07080000100000088102001c2f089e010680008821020018410202840004e7e01000000c070800092102002, +c808601c88492010c2d849e0c65860100100000082102028ce58a00881c1e004ce70a00084008007834140008e21e008ce58a00024f1f4f0c4d889e08400a110, +ce70a00084008007834140008e21e008ce58a00024f1f4d8c4d889e08400a110c07080008410202086102001c671200807000000c67120008a00e01888014004, +63616c6c65640d0a63685f65786974206863616c6c5f6d611080000991414000010000008e10000880a1e0021868000f010000008f540000ce58a00881c1e004, +914140006863616c8e100008108000081868000e010000008f54000080a1e002306fc1f601000000106fff5c8f41400091d02013901000070000000090022004, +c25860288610201fcad949e0ca596000c25860088a10202882102020c2d849e091d0201390100007640d0a009002200469722063616c6c656c5f6d6163685f73, +c2586008c258650882102020c2d849e00af8fff88620e001010000008200400280a120ff1268001e01000000c800601080a0400502680006050001158410a3c0, +742067756573742020746865206c61739141400009666f728e100008108000091868000f010000008f54000080a1e0020260001301000000c459600080a04002, +c6d8c9e0c808e0008402201886102020d0da09e0d05a20008f414000901020288f9020001068214990100007a19020009002200491d020132e2e2e0d0a000000, +0260000a010000000260000c80a0e004c602201080a0e0012af0fffa80a1000386100004c7f09000226ff46f8341400002c0c004010000008801200186102000, +8801400407000000884920108a00e018c6586010c808601c82102028c2d849e0306fc1960100000040004ddc01000000c07080009210200386102001c6222010, +80a0c0091867fecb8600e00f8628e00f8e11e228c6598007cc5860000f00000982102028c2d849e0306fc18801000000c6712008c0708000c671200086102001, +c858a00080a10008808920010267feb584018002c808a0188528b0058400a06880a0a0401667febb04f0febe853230221267fecc0100000092100003808a200f, +81f00000821020288f4140009010200084100004106ff7f88e11e220c2598007880100080f0000090667feaec858a0108821000880a100031867feb2c858a008, +81f00000821020209202400390102000d2590000926a400502f13e9692100000c858a0d0ca58a0d8c458a008c6586bc884102020c4d889e0c2d849e0c2586000, +8a01600186102000c6d8c9e0ca08e0008e018005861020200b0001158a116330ccd989e0cc59a000010000008c102028c45860d002f0be8bc2d849e0c2586008, +0260003801000000c659abc880a100038869000588220004ca5860d8c85880002af0fffa80a1400386100005c7f1d000226ff4018341400002c0c00401000000, +106ff7ca8f4140008200e01084102028860180058600e0080b0001158a11635082102001c228e002c208e0020ac040318a11632886018005c871abc80b000115, +8e00e4e0881020208a11635084018005c258e4d80b000115c6d8c9e0c658e008c870e010861020208a102002ca20e008ca59a000ca20e0040b000000ca20e000, +86102020c6d8c9e010681d368f4140002af13ffa80a1400488100005c9f1d000226ff3cd8341400002c10004010000008a01600188102000c8d909e0ca092000, +8e100008108000091868000f010000008f54000080a1e0028e018005c071c0000b0001158a116330ccd989e0cc59a000c071c0008c102028c658e0088e00e4e0, +1267fe300100000081f00000808a600390100007901020009002200491d02013207365740d0a0000686173206265656e696e6720544f4420914140005761726e, +80a120401667fe13c658e0008932702286102028c6d8c9e00267fe228228400210680019010000001267fe268210400202c2000680888001c2d808a08410200c, +8a014009839240000667fe06ca5920108a21400980a160041867fe0aca592008ca59200080a14009808960010267fe0d8800c004ca0920188929300588012068, +8600e068860100031667fdf68728f0058732302280a0e04022c2001484102000c2d849e0c85860001267fe0a8210202881f00000808a203fc2f008a090102000, +c47060f090102000d25860f8d07060f8c458e0108400800880a0a0800667fde9c458e0088420800880a080081867fded0267fdf0c458e000c408e0188088a001, +8810000080a2a00292100000106800220100000084100000c2d849e00aca8006892ab006821020289010200081f00000c2d849e0d25860f881f0000082102028, +1667fdc48728f0058732702280a0e040cc58600004f13dc7808880091267fdd51267fdd4842120018422a001808a800280a280021867fdd70a67fdda84102100, +8821200180a2203cc458e0108400800980a080040667fdb7c458e0088420800980a080091867fdbb0267fdbec458e000c408e0188088a0018600e06886018003, +861023f81068001d861023f0c0f0c4a0d4706158c8706160c4706150d27061681267fdb4010000000260000d80a2203f0260001880a2203e0260002480a2203d, +c0706148861023d0d4706128c8706130c4706120d270613810680014c0f0c4a0c0f0c4a0861023e8c8706180861023e0d2706188d4706178c0f0c4a0c4706170, +82102028c2d849e09010200081f00000861023c8c0f0c4a0861023c0c0f0c4a0d4706108c8706110c4706100d27061181068000ac0f0c4a0c0f0c4a0861023d8, +d4586178d2586138d2586188106800071068000ad458615801000000d258616880a2203f1267fd8380a2203e0260000780a2203d0260000c80a2203c02600011, +1667fd64832870058332702280a060401a67fd6601000000ce59a00080a220208c102028ccd989e09010200081f00000d2586118d458610810680004d4586128, +8332b02280a06040c45860108400800980a0a0040667fd57c45860088420800980a080091867fd5b0267fd5ec4586000c40860188088a001820060688201c001, +c45860108400800a80a0a1000667fd45c45860088420800a80a0800a1867fd490267fd4cc4586000c40860188088a001820060688201c0011667fd5283287005, +c6d8c9e0c808e0008401e0188610202002f07d360100000082006bd8c2584000832a30038201c0011267fd4a01000000821020ff8088400a808a60031267fd4d, +c658606080a0e0011260001b01000000c601e01080a0e0022af0fffa80a1000386100004c7f09000226ff2af8341400002c0c004010000008801200186102000, +c670a000c870a008840120808610200188102020c8d909e084102940c0284002d47060e8d67060e0c0708000d27060d886102007c67060601260001a01000000, +ccd989e0ce59a000010000008c102028c0708000106ffd0f106ffd180100000081f00000c07080008f41400090102000c2586010106fc9fc8600a010c270e000, +8a102020cad949e0010000008801e018c259c00102f07cf584102bd88200400201000000832a300380a200010267fd0501000000c209a01d80a220201a67fcff, +01000000c659a06080a0e0040260003c80a0c005c601e010cbf110002af17ffa834140008a10000301000000226ff26e8a10200002c14004c60960008600e001, +010000008610200680a0e0070260002c80a0e0060260002e80a0e0030260003380a0e0010260003580a0e0000260003701000000c658606080a0e00602600038, +80a121803667f2448600e110c858e00086102020c6d8c9e08600a010c270e000c670a000c870a008840120808610200388102020c8d909e0c6706060c0710000, +82206008c270a00024f07237834140008400a110c258a00084102020c4d889e0106fc9a98f414000c2712000c2586010c870e000880100038341400088012008, +0100000082102028c0710000106ffcad106ffcb60100000081f00000c0710000010000009010200080a0a006026ffffd8143e040c458606084008001c258a008, +80a26007226000042260000792102002d258a06080a2600602f0bc980100000084008003c4584002852a300386102bd880a220201a67fc9dc2d849e0c2586000, +8332302280a06040ca59a00004f27c858c102028ccd989e01267fc9601000000821200098088603f81f0000002f27c9593673003901020009210200180a26003, +c45860108400800880a080090667fc75c45860088420800880a080081867fc790267fc7cc4586000c40860188088a00182006068820140011667fc8283287005, +c0f22030c0f22038c0f22020c0f22028c0f22010c0f22018c0f22000c0f220089328b006878020e280a1400285655005ca58a4208532700690100002c459a008, +04f27c5483323022cad949e0cc5960001267fc648a1020288610e3ff80888003841200090700000781f0000002f27c65900220409010200084a0a001126ffff7, +0667fc44c45860108420800880a080091867fc48c4586008c458600080a080088088a0010267fc4b82018001c4086018832870058200606880a060401667fc51, +9010200081f000001a6ffffd8202000d8f4140009aa360408202000d10bfc85d936710039a2260408728f00680a24003c4596008c658a4208400800890100002, +090000098811223088112238c0704004c0704004090000090900000988112240c2d849e0c258600081f0000082102028d208601d9010200082102028c2d849e0, +8728f0058600e06880a0e0401667fc1504f27c18873230221267fc260100000092100002808a203f80a240022a67fc250100000005000008c070400402f27c1d, +88112240d270400484008008090000090667fc08c458e0108420800880a080091867fc0cc458e008c458e00080a080088088a0010267fc0f86004003c408e018, +090000098811223888112240d4584004c25860000900000982102028c2d849e09010200081f0000088112230c4704004d0704004090000090900000988112238, +80a1e0401667fbe304f17be68f327022cc58e0008b2a300186102028c6d8c9e01267fbf8010000001267fbfa808aa03f81f00000808a6001d258400490102000, +820040098f32b0220667fbd6c259e0108220400980a040051867fbdac259e008c259e00080a04009808860010267fbdd8e018007c209e0188f29f0058e01e068, +0667fbc4c459e0108420800a80a0a0401867fbc8c459e008c459e00080a0800a8088a0010267fbcb8e018007c409e0188f29f0058e01e06880a1e0401667fbd1, +8c018007cc5940068d29b0038e102bd880a1a0201a67fbb582006002ca58e00080a1bfff2267fffb01000000cc50400090a220010a6000498400800a88100000, +8801200180a1e00302c9c014010000008e102002cff15000010000008a01a08880a160030267fbbf01000000ca59a06080a0c0060267fbb702f1bbb001000000, +106fffd4820060028a11603dcaf00e60ce09e0008b29f008ca71a080ce59a0102a6fffdc820060028b41000080a14007ce59a0808e01e7d0326fffe282006002, +ce58a038ce71a0c8ce58a030ce71a0c0ce58a028ce71a0b8ce58a020ce71a0b0ce58a018ce71a0a8ce58a010ce71a0a0ce58a008ce71a098ce58a000ce71a090, +9010200081f000000af13b840100000010bfffb8820060028e103fffce3040008a11603dcaf00e60ce09e0008b29f008ce71a088ce59a0108143e0408e102003, +8a114003874140000b3c00688a1162fc8610e0ff8728f0208811000307000000093c0000881120008610e0ff8728f020c45860000700000082102028c2d849e0, +8d2a700604f1bb532a67fb5e921020020100000080a26002808a203f1267fb6502f27b5801000000c07061a8c07061a08b990000c07061988621400388210003, +80a0c0060667fb43c65920088620c00880a0c0081867fb470267fb4ac6592000c60920188088e00188012068880080041667fb50892930058932302280a12040, +d45861989532b006c2d849e0d25861a081f0000082102028c470e00090102000c4706190c470e008cc70619884102040d07061a0c67061a8c65920108600c008, +8610c00183414000073c00688610e3fc821060ff832870208410800103000000053c00108410a000821060ff8328702081f0000003000000937a840090102000, +8341400082210001881120388811000183287020093c006903000000821060ff8610e0008610c00183287020073c000003000000821060ff8220c00184208001, +81f00000821020288b9840009010200002f0fb1001000000c4d889e0c658a19893647001841020289210000080a10002837a1402894940008620c00182100003, +01000000c458e198c458abd00af0baf1c6d8c9e0c458e00081f0000086102028d070ebd090102000917a3401d258ebd0c458619802f0bb07c2d849e0c6586000, +8751c000c628a002861020ffc628a00087410000c670a0108778e4018f90c00086212001821000038400c0028951c000c458e190c658e1a802f0bafa01000000, +ca28a00187500000326800028a1160028a1160018088e8008088e00132680002874800008a10000087508000c670a0088750c000c630a00487540000c628a003, +8801204080a1000588208003c870e000ca58e198c658e1a886102028c6d8c9e0d670a030d870a038d270a020d470a0288f910000d030a006c670a018c228a002, +8f29f0058e01e06880a1e0401667fab5d25860e88f323022c2d849e0c458600081f0000082102028c8716190901020008a102028cad949e08966f040c870e008, +8088c0081267faaf8600c008861020ff0667faa8c659e0108620c00880a0e1001867faacc659e008c659e00080a0c0088088e0010267faaf8e008007c609e018, +8400800302c2000c070000098610e288c4d889e0c458a00081f0000084102028d25860e89010200082102028c2d849e09010200081f0000001000000d07060e8, +80a140043267fffd88100001c9f09005924a63e8ca588000d2588000106ffa9108600005820060018610e38080a04003826863e80700784c82102000820223e7, +80a0e1803667eff48400a110c658a00084102020c4d889e0c2d849e0cc7069608d39b001821020288d4100008d29b0019010200081f000008a100004924923e8, +c470e0008600c002834140008420a008c458e00024f0afe8c6d8c9e08600e1108f41400086102020cc70e00010680817c670a0008600c002834140008600e008, +c2d849e0c258600081f0000082102028c6706958901020008600c002c0706960c2d849e0c65869588420c002821020288728f0018738f001c458e00887410000, +d258a00080a24008808a60010267fa4584004002d208a0188528b0058400a06880a0a0401667fa4b0100000085323022c458400202f0ba5f050000098410a268, +c458400202f0ba43050000098410a268c2d849e0c258600081f000008210202892024008901020000667fa3ed258a0109222400880a260011867fa42d258a008, +8528b004c258600802f8ba2e0100000086006df0c408c002853230068408a01f808a203f1267fa33c2d849e0c258600001000000821020280100000081c20000, +1a67fa1c05000003c258600080a2280082102028c2d849e081c080000100000002f0ba2401000000c2586000c458a000c458600802f0ba27c258642882004002, +0100000081c08000c458a01002f0ba0d02f0ba10c258600082004002c4586008c2586008c2586428010000008528b004c408800802f0ba178410a21084004002, +010000008528b004c408800802f0b9fd8410a210840040021a67fa0205000003c258600080a2280082102028c2d849e01867fa08010000000100000080a26001, +80a228001a67f9ebc2d849e0c258600001000000821020280100000081c08000c458a01802f0b9f302f0b9f6c258600082004002c4586008c2586008c2586428, +02f0b9dc01000000c2586000c458a020c458600802f0b9dfc2586428820040028528b004c258600802f0b9e60100000084004002c4088008050000038410a210, +c2586008c2586428010000008528b004c408800802f0b9cf8410a210840040021a67f9d405000003c258600080a2280082102028c2d849e081c0800001000000, +050000038410a21080a228001a67f9bdc2d849e0c258600001000000821020280100000081c08000c458a02802f0b9c502f0b9c8c258600082004002c4586008, +81c080000100000002f0b9ae01000000c2586000c458a030c458600802f0b9b1c2586428820040028528b004c258600802f0b9b80100000084004002c4088008, +82004002c4586008c2586008c2586428010000008528b004c408800802f0b9a18410a210840040021a67f9a605000003c258600080a2280082102028c2d849e0, +86006df0c408c002853230068408a01f808a203f1267f98fc2d849e0c258600001000000821020280100000081c08000c458a03802f0b99702f0b99ac2586000, +82102028c2d849e081c080000100000002f0b98001000000c2586000c458a140c458600802f0b983c2586428820040028528b004c258600802f8b98a01000000, +02f0b96cc258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8b9738408a01f86006df01267f97885323006c2586000808a203f, +02f8b95c0100000086006df0c408c002853230068408a01f808a203f1267f961c2d849e0c258600001000000821020280100000081c08000c458a14802f0b969, +010000008210202880a2a0011867f94d81c080000100000002f0b95201000000c2586000c458a150c458600802f0b955c2586428820040028528b004c2586008, +c458600802f0b93bc2586428820040028528b004c258600802f8b9420100000086006df0c408c002853230068408a01f808a203f1267f947c2d849e0c2586000, +c408c00202f8b92b8408a01f86006df01267f93085323006c2586000808a203f82102028c2d849e081c080000100000002f0b93801000000c2586000c458a158, +c2d849e0c258600001000000821020280100000081c08000c458a16002f0b92102f0b924c258600082004002c4586008c2586008c2586428010000008528b004, +c2586000c458a168c458600802f0b90dc2586428820040028528b004c258600802f8b9140100000086006df0c408c002853230068408a01f808a203f1267f919, +010000008528b004c408c00202f8b8fd8408a01f86006df01267f90285323006c2586000808a203f82102028c2d849e081c080000100000002f0b90a01000000, +808a203f1267f8ebc2d849e0c258600001000000821020280100000081c08000c458a17002f0b8f302f0b8f6c258600082004002c4586008c2586008c2586428, +02f0b8dc01000000c2586000c458a178c458600802f0b8dfc2586428820040028528b004c258600802f8b8e60100000086006df0c408c002853230068408a01f, +8530f02280a0a0400100000086100009808a601f1267f8d31267f8d2010000000260000480a22002cc59a00080a220018c102028ccd989e081c0800001000000, +d258a0109202400380a260200667f8b5d258a0089222400380a240031867f8b90267f8bcd258a000d208a018808a60018400a068840180021667f8c28528b005, +c4d889e0ca08a0008e018005841020208a1163308a016008010000000b0001158200600110bff8b3882120010af93ffdca08400002c140068210000988102020, +84012001106ff1f98201a02182004003d029a020862040092af0bffa80a1400284100005c5f1d000226fee1f8341400002c08004010000008a01600184102000, +860180058600e0080b0001158a11635082102001c228e001c208e0010ac040378a116328860180058f4140000b0001158401a021106ff1e88f41400082100009, +86102020106ff1cc8201a0218400e0018600e010d028e0008a102001ca20e008ca59a000ca20e0040b000000ca20e000106ff1e68f4140008200e01084102028, +02c10004010000008a01600188102000c8d909e0ca0920008e00e4e0881020208a11635084018005c258e4d80b000115c6d8c9e0c658e0088f41400086102020, +ccd989e0cc59a000c071c0008c102028c658e0088e00e4e086102020c6d8c9e01068174c8f4140002af13ffa80a1400488100005c9f1d000226fede383414000, +80a060401667f8430100000083323022808a201f1267f853ccd989e0cc59a00081f000008c102028c071c000901020008a0160088e0180050b0001158a116330, +84008008030001150667f836c45860108420800880a0a0201867f83ac4586008c458600080a080088088a0010267f83d82018001c40860188328700582006068, +2af07ffa80a0c00182100003c3f15000226feda98341400002c04004010000008600e00182102000c2d849e0c60860008a018001821020208210633082006008, +86100000ca58601080a1a0083a60002e01000000cc58e000c658625002c0c0329010200081f00000d209a020c0714000106ff1798f4140008201a02186102020, +80a100051268001ccc28c005ca58e0208a0160288c103fff8c118004cc70e0201260002501000000cc58e020808980048810200189291005ca0960008a096003, +c070e070c020e03cc070e060c070e068c070e050c070e058c070e048c070e040c470e018c070e0308c11a864cc70e0108c09afff8d29b01001000000cc58e000, +8c102020ccd989e081c1e004010000008e1000138210000384102001c470e0088f414000c270e080a6100007106809e18801245c8a100000c258600089414000, +3667ed5583414000ce59a00080a1e180ccd989e08c01a110c471e0008c102020ce71a0008e01c006834140008e01e00880a1e1803667ed608c01a110ce59a000, +c871e00082100008ce71a0008e01c006834140008e01e00880a1e1803667ed4a8c01a110ce59a0008c102020ccd989e08e01c006c671e0008e01e008ce71a000, +c859a0088c102020c871a0008c0180048341400088212008c859a00024f12d3accd989e08c01a110901000018c102020106fffa68f414000841000098610000a, +834140008420a008c459a00024f0ad26ccd989e08c01a110c659a0088c102020c671a0008c018003834140008620e008c659a00024f0ed30ccd989e08c01a110, +0100000089518000c808e02802c100098a0960038600c005ca586010ca09600002c0c0100100000001000000c6586250c459a00881c3e008c471a0008c018002, +8600c00488103fffc80920008809200301000000c8586010c658625002c0c00881c1e004010000008d910000c028e0288a1020a0c0d948008a1120028d914000, +01000000226fecf48610200002c0c004cc08e0008c01a00186102020c6d8c9e08a00a0308a01600002c0809f0100000001000000c4586250c828e02881c1e004, +02c100860100000088008007c8092028ce09e0008e09e00301000000ce58601080a0e0011260008d80a18003c658a008c7f150002af0fffa8341400086100006, +c858e0008b3130068600e0108410800688102002c870e0001268006a01000000c858e00080a1200122600075c020a03c8c10000080a0c004c658a058c858a068, +ccd989e0cc59a000821020068c102028808920073260003d8b293003c858e0088809203f880120013268002bc858e0080268000480a160018a09600780a16000, +80a040041860002882018001c258600083287005820060680260002f83313022c208601880886001820060688201800116600035832870058331302280a06040, +880100018a10208882018001c25860108328700582006068010000008331302280a0400506600020c25860088220400482006068820180018331302283287005, +882900068c1020018c1020018d29b0098a1020808143e0408b29e00b88110005c8f14800c858e000c858e0188a1020988a102090c8f14800c8f14800c858e010, +8a0920808d797401c270e000c858e008821020038620e0102ac04003821020048428a001821020028c08a0011080002488110006c8f148008c09a0018d29b009, +2260000dc020a03c0100000080a0c00480a06004126fff988d6470010af17f9ac858a06880a0c004c658a040c670a05880a0c0043a6000028600e040c858a050, +8a00a0308a01600002c040080100000001000000c258a0808600e01002c9800bc270e03010bfffe1010000008210000080a120021260000610bfffeb8600e010, +82100002808a60078566700181c1e004c858606080a0c00484100000c6586058c071400083f000008a00a0308a0160008f41400083f00000c071400010680934, +0267f6c4c858e000c808e018808920018600e068860080031667f6ca8728f0058732702280a0e040c458a00004f2b6cd84102028c4d889e01267f6de01000000, +9010200681f0000002680091010000000100000080a2200180a2200202680007c858e0108801000980a1000a0667f6bdc858e0088821000980a100091867f6c1, +d459000a02f2b6ab9528b0039402acd81a67f6b0010000008530b00280a0a008c459e010c408a000ced9c9e0c859e000010000008e10202880a2a0181267f6b9, +8600c004c67060388728b006c85860108d79b4019210000401000000cc5a601080a0c0020867f6a301000000c45a6008c658604002f0f6a7010000008202a030, +95327006940aa0078400a010d258a00090102002d070a0002260005cc47060288e09e00380a08003ce59e010ce09e000c4586028ca58602084202001c420600c, +c85920009132702288102028c8d909e03260003e90102006d258a008808a600792026001952a7003d258a008920a603f80a2a0013268002b80a2a00002680004, +1860003a91327022d05a200080a20009900220689001000891327022912a3005808a20010260004190010008d00a2018912a30059002206880a2204016600047, +94102088d2f28800d05a201092024008900220689001000891327022912a300506600032010000009022000980a2000a90010008d05a2008912a300590022068, +881000068809200189293009922a40048143e040881020019212400a94102080d258a0009529e00b94102098d2f28800d2f28800d258a018d258a01094102090, +c4706028c8586010d470a0002ac2000d941020038420a0102ac2000394102004c0d908009010000001000000881020a0d2f288000ac980138929300992124004, +1267f62c0100000081f0000080a2a020c020600c9010000810bffff09010200210bff6280100000010bff62ac020600c106fffa5856750048400a04080a08005, +02c0c00580a080048600ecd8c6584003010000008729300380a120081a67f615c25860008810200082102028c2d849e01a67f62801000000c45a600080a0a008, +c0706020c070602801000000c0706010c800600c0af136152ac8800cc65a60108200e030c45a600810bffff48400a00110bffff6880120010268000601000000, +80a1a0401667f5f304f175f68d30b022c8d909e0c85920008a20c002881020281267f608010000008a108003808960079010200081f00000c0706038c0706040, +8e01c002841000070667f5e6ce59a0108e21c00280a1c0051867f5eace59a008ce59a00080a1c0028089e0010267f5ed8c010006ce09a0188d29b0058c01a068, +80a1e0080667f5d3ce59a0088e21c00380a1c0031867f5d70267f5dace59a000ce09a0188089e0018c01a0688c0100061667f5e08d29b0058d30f02280a1a040, +81f0000084102028cc70604090102000c4706038c6706020c4706010c47060281267f5d4010000008f29b00680a1400786100007cc5a6018ce59a0108e01c003, +010000008622a00180a2a0020a67f5bd02c2804801000000c4d889e0c258a00081f0000084102028010000009010200680a2200102800004c4d889e0c258a000, +8a01600084102020010000008a00e030808a40021267f5b3892ab00684212001ce58a010d009e00002f0f5be0100000001000000c658a250808a80031267f5b9, +80a1a0401660002004c100238d3270222af0bffa80a1800284100006c5f15000226feb1d8341400002c08004010000008c01a00184102000c4d889e0cc08a000, +84008009d070e07806600013c459a0108420800980a0800418600017c459a008c459a00080a080098088a0010260001a8c004006c409a0188d29b0058c01a068, +81f00000c0714000c071400090102000c220e038d258e010c070e06082102001d470e070c020e03c84008004c470e050c470e058c470e068d270e048c470e040, +02f0f574010000008600ecd8c6584003010000008728b00380a0a0081a67f571853270108408afff1267f57601000000840a6fff80a0a8649010200281f00000, +80a18001c800e03cc3f150002af07ffa834140008210000601000000226feada8210200002c04004cc0860008c01a00182102020c2d849e08a00e0308a016000, +9010200081f00000c220e038c0714000c020e03c82102000c070e068c070e070c070e058c070e060c070e040c070e050c070e030c070e0480ac1001001000000, +853230108408afff1267f53e01000000840a2fff80a0a8641268002501000000840a2fff80a0a864c2d849e0c258600081f0000082102028c071400090102009, +8a10200002c14004cc0960008c01a0018a102020cad949e08400e0308400a00002f0f534010000008600ecd8c6584003010000008728b00380a0a0081a67f539, +81f000008e10202881f0000090102006c070800090102000d458e048d658e07080a1800592102001cbf090002af17ffa834140008a10000601000000226feaa2, +010000008728b00380a0a0081a67f50d853230108408afff1267f51201000000840a2fff80a0a8641268002501000000840a2fff80a0a864ced9c9e0c259e000, +834140008410000601000000226fea768410200002c08004cc08a0008c01a00184102020c4d889e08a00e0308a01600002f0f508010000008600ecd8c6584003, +840a2fff80a0a864ced9c9e0c259e00081f000008e10202881f0000090102006c071400090102000c458e0589220800180a18002c258e040c5f150002af0bffa, +02f0f4dc010000008600ecd8c6584003010000008728b00380a0a0081a67f4e1853230108408afff1267f4e601000000840a2fff80a0a8641268002501000000, +80a18002c258e040c5f150002af0bffa834140008410000601000000226fea4a8410200002c08004cc08a0008c01a00184102020c4d889e08a00e0308a016000, +840a2fff80a0a8641268001301000000840a2fff80a0a864c2d849e0c258600081f000008210202881f0000090102006c071400090102000c458e06892208001, +81f0000090102006d258e0189010200002f0f4b0010000008600ecd8c6584003010000008728b00380a0a0081a67f4b5853230108408afff1267f4ba01000000, +80a0a0081a67f49b853230108408afff1267f4a001000000840a2fff80a0a8641268002e01000000840a2fff80a0a864c2d849e0c258600081f0000082102028, +8c01a00184102000c4d889e0cc08a0008a01600084102020010000008a00e030808a603f3267f49302f0f496010000008600ecd8c6584003010000008728b003, +c0714000901020062a600005c270e060c458e05080a04002c258e040820040092af0bffa80a1800284100006c5f15000226fea018341400002c0800401000000, +81f00000840a2fff010000009010200680a0a86402680004c259e000840a2fff8e102028ced9c9e09010200681f000009010200081f0000081f00000c0714000, +80a100031267f45b01000000c859e250c658400302f0f45f8728b0038600ecd81a67f464010000008408afff80a0a008010000008532301080a0a8641267f469, +cc0920008c01a00188102020c8d909e08a00e0308a0160001a67f45201000000c458e05080a04002c258e040820040093267f4580100000001000000808a603f, +c858e06880a0800402c8800ac458e058c400e03cc820e03c80a1800488103fffc9f150002af13ffa834140008810000601000000226fe9c08810200002c10004, +8400a010d258a00090102002d070a00002600063010000008e09e00380a08001c270e068ce58e07810bff42a01000000c270e068c07140000268000601000000, +88102028c8d909e03260003e90102006d258a008808a6007920260019b2a7003d258a008920a603f80a360013268002b80a36000026800049b3270069a0b6007, +d05a200080a20009900220689001000891327022912a3005808a20010260004a90010008d00a2018912a30059002206880a2204016600050c859200091327022, +d05a201092024008900220689001000891327022912a30050660003b010000009022000980a2000d90010008d05a2008912a3005900220681860004391327022, +89293009922a40048143e040881020019212400d9a102080d258a0009b29e00b9a102098d2f34800d2f34800d258a018d258a0109a1020909a102088d2f34800, +d258a008920a60808420a010da70a0009a1020039b7a340410bff3d6010000008a016000c0714000d2f348008a00e03089293009921240048810200188092001, +8a00e0308a0160008400a010c020e03c80a08001126ffff11267ffa1010000000af27fa380a3600485675004c470e058c858e04080a080058400a040ca58e050, +02f8b3bc0100000086006df0c408c002853230068408a01f808a203f1267f3c1c2d849e0c258600090102002821020280100000010bfffe7c071400010bff3bd, +c2586000808a203f82102028c2d849e081c080000100000002f0b3b201000000c2586000c458a040c458600802f0b3b5c2586428820040028528b004c2586008, +c458a04802f0b39b02f0b39ec258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8b3a58408a01f86006df01267f3aa85323006, +8528b004c258600802f8b38e0100000086006df0c408c002853230068408a01f808a203f1267f393c2d849e0c258600001000000821020280100000081c08000, +1267f37c85323006c2586000808a203f82102028c2d849e081c080000100000002f0b38401000000c2586000c458a058c458600802f0b387c258642882004002, +0100000081c08000c458a05002f0b36d02f0b370c258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8b3778408a01f86006df0, +c2586428820040028528b004c258600802f8b3600100000086006df0c408c002853230068408a01f808a203f1267f365c2d849e0c25860000100000082102028, +8408a01f86006df01267f34e85323006c2586000808a203f82102028c2d849e081c080000100000002f0b35601000000c2586000c458a060c458600802f0b359, +0100000005003fff0100000081c08000c458a06802f0b33f02f0b342c258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8b349, +8088800a1267f32f80a2e0041867f32d808ac0021267f32f02f2f3328422e0011267f3340100000084102fff80aa80021267f338010000008410a30080aa4002, +82004002c4586008c2586008c2586428010000008528b004c408c00202f8b3218408a01f86006df01267f32685323006c2586000808a203f82102028c2d849e0, +1267f30c0100000084102fff80aa80021267f310010000008410a30080aa40020100000005003fff0100000081c08000c458a07002f0b31702f0b31ac2586000, +8408a01f86006df01267f2fe85323006c2586000808a203f82102028c2d849e08088800a1267f30780a2e0041867f305808ac0021267f30702f2f30a8422e001, +0100000002f2b2eb0100000081c08000c458a07802f0b2ef02f0b2f2c258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8b2f9, +86006df0c408c002853230068408a01f808a203f1267f2dfc2d849e0c25860001267f2e8821020281867f2e6808880091267f2e880a2a0088422a001808a8002, +05003fff8410a30081c080000100000002f0b2d001000000c2586000c458a080c458600802f0b2d3c2586428820040028528b004c258600802f8b2da01000000, +808a203f1267f2bbc2d849e0c25860001267f2c4821020281867f2c2808880091267f2c480a2a0088422a001808a80020100000002f2b2c780ab00021267f2c9, +02f0b2ac01000000c2586000c458a088c458600802f0b2afc2586428820040028528b004c258600802f8b2b60100000086006df0c408c002853230068408a01f, +86006df0c408c002853230068408a01f808a203f1267f29fc2d849e0c258600002f2b2a4821020281267f2a60100000002f2f2a880aae00381c0800001000000, +82102028c2d849e081c080000100000002f0b29001000000c2586000c458a090c458600802f0b293c2586428820040028528b004c258600802f8b29a01000000, +02f0b27cc258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8b2838408a01f86006df01267f28885323006c2586000808a203f, +02f8b26c0100000086006df0c408c002853230068408a01f808a203f1267f271c2d849e0c258600001000000821020280100000081c08000c458a13002f0b279, +8208600f80a06001834980008330701c81c080000100000002f0b26201000000c2586000c458a138c458600802f0b265c2586428820040028528b004c2586008, +10bfbd928f414000cc596000c07161b08a102028cad949e081c1e004010000000100000001000000010000000100000083468000b58060010868000801000000, +808860010267f23384018002c208a0188528b0058400a06880a0a0401667f23904f0f23c853270221267f24a872a30051867f248808a600702c2008d80a22002, +c610a00080a0e00882100008840161c010bfeb798f41400082004009840161c00667f22cc258a0108220400980a040031867f230c258a008c258a00080a04009, +80a0e0011247f21901000000c610a00280890003124ff21f0247f2228620e001c800a00c808900030247f22201000000872900038088e02b1a67f22688102001, +0248000401000000c600a00880a0ffff1447f20e010000008929200f80a0c00480a0c0040647f2111247f214881022008820e0018089000301000000c600a004, +8e018007c409e0188f29f0058e01e06880a1e0401667f1f704f131fa8f30f022c800a0048929300401000000c658a010c658a0180af0f2070af0f20a01000000, +1267f1f082206001882120018089000384008003840161c00667f1eac459e0108420800380a080041867f1eec459e008c459e00080a080038088a0010267f1f1, +224ffffe820060018089200189312001c800a00489312009c85920108200400488012068880180048930702289293005840161c0c258a0100af87fbe8400a020, +82004004c800a00488018004c85920108929300588012068c258a01089307022026800168400a020c6f006e080a22001c610a000c6f00660c2f00620c2f006a0, +9010200081f00000d07161b092100000c6f00660c6f006e08f29f0088610c007c2f006c0ce10a00082006001c2f0064089312001224ffffe8931200980892001, +80a0a0401667f1a304f0f1a6853270221267f1b4872a30051867f1b2808a600702c2008d80a2200210bfbd078f414000cc596000c07161b88a102028cad949e0, +82004009840162000667f196c258a0108220400980a040031867f19ac258a008c258a00080a04009808860010267f19d84018002c208a0188528b0058400a068, +0247f18c8620e001c800a00c808900030247f18c01000000872900038088e02b1a67f19088102001c610a00080a0e008821000088401620010bfeae38f414000, +8929200f80a0c00480a0c0040647f17b1247f17e881022008820e0018089000301000000c600a00480a0e0011247f18301000000c610a002808900031247f189, +04f131648f30f022c800a0048929300401000000c658a010c658a0180af0f1710af0f174010000000248000401000000c600a00880a0ffff1447f17801000000, +0667f154c459e0108420800380a080041867f158c459e008c459e00080a080038088a0010267f15b8e018007c409e0188f29f0058e01e06880a1e0401667f161, +c8592010820040048801206888018004893070228929300584016200c258a0100af87fbe8400a0201267f15a8220600188212001808900038400800384016200, +c258a01089307022026800168400a020c6f007e080a22001c610a000c6f00760c2f00720c2f007a0224ffffe820060018089200189312001c800a00489312009, +8f29f0088610c007c2f007c0ce10a00082006001c2f0074089312001224ffffe893120098089200182004004c800a00488018004c85920108929300588012068, +010000008089200780a240081867f11dd25961b002f27113cc596000881000098a102028cad949e09010200081f00000d07161b892100000c6f00760c6f007e0, +1867f104c4586008c458600080a080048088a0010267f10782018001c4086018832870058200606880a060401667f10d04f0f110833130221267f11e872a7005, +d25961b802f270efcc596000881000098a102028cad949e09010200081f0000010bfea4d8f41400084008004820161c00667f100c45860108420800480a08003, +8088a0010267f0e382018001c4086018832870058200606880a060401667f0e904f0f0ec833130221267f0fa872a7005010000008089200780a240081867f0f9, +82102028c2d849e09010200081f0000010bfea298f41400084008004820162000667f0dcc45860108420800480a080031867f0e0c4586008c458600080a08004, +880aa00f85309004010000008410202b80aae0031267f0cf0100000002f2f0d180a240021a67f0d31267f0d6050000088538b01080a20002cc586000852a3010, +80a1604016600025842880058b30b0228528b00d861a8002852ab0188530b025892890048a2120018801200d8410200184010004880100028088a0010267f0c5, +8e01c0028410000706600018ce5960108e21c00280a1c0041860001cce596008ce59600080a1c0028089e0010260001f8a018005ce0960188b2970058a016068, +01000000c4f0ca00c2f14b8002800005c4f0cb008143e04002800005808ae0020b000001808ae0018929303d8228400486102030881020018210c00284120009, +80a140070c680e0f8e102870ce5980070c67f08801000000ca5980078aa08005010000008e1028683080000330bfffeb9010200081f000008143e040c2f14a80, +010000008210200880aaa0031267f07d0100000002f2b07f80a240021a67f0811267f084050000088538b01080a2000201000000852a30100100000030bff081, +81f0000080920009c6f044209010200001000000c0f08be0c0f08ae00260000302600003808aa001d2f04420808aa002842a0002c6d84420050000078410a3ff, +82102008050000071267f05e0100000002f3306080ab20031a67f062010000000500000880a2c00280a280021267f065852ab0108538b0101267f07c01000000, +809200091267f05d9010200081f00000c0f08be0c6f044200260000301000000808b2001c0f08ae0808b200202600003c6d84420d6f044208410a3ff842a8002, +02600003808ae001d4f08420808ae00284102008ced88420010000008610204080aae0031267f0430100000002f2f04580a280021a67f0470100000005000008, +86102080808aa0021267f02e0100000002f2b03080aaa0031267f0440100000081f0000080920009cef084209010200001000000c0f0cbe0c0f0cae002600003, +8538b01080a20002cc586000852a301082102028c2d849e00af27022010000009010200081f0000001000000c0f0cbe0c0f0cae00260000302600003808aa001, +9412a080808aa080026000060100000001000000808ae002010000000ef2b01180aae0031267f0130100000002f2f01580a240021a67f0171267f01a05000008, +1267effc852ab0088a212001808a00058410200189289004880100028801200d0267f00084010004853090048088a0018410202b880aa00f0267f00a01000000, +8089e0010267efe38a018005ce0960188b2970058a01606880a160401667efe904f12fec8b30b0221267eff601000000861a8002808880058530b0158528b00d, +862120018e01a8788b29703d942a80059410c0028a1020018e01c002841000070667efdcce5960108e21c00280a1c0041867efe0ce596008ce59600080a1c002, +8c1020e092103fff80a140028201a880c5f1d0002af0bffa834140008410000501000000226fe54c8410200002c08004ca08a0008a01600184102020c4d889e0, +010000008e1020088ea9c0031268000a8e1a00048e29c002852890078420a0018e01e00d841020018e0080028e008007921000068409600fc89844862ec14016, +c2d849e0c2586000010000008210202880a27fff126000090ef9bfe801000000921000068c21a020c4f1c42010680005c0f20ae0c0f20be0c4d9c420c0f1c420, +84018002808ae0028530b0068528b0038810200187291003c408601d8608a03f82102028c2d849e08c0040098143e00c106fefb6010000008c006878c0718000, +c25860008e006878d471a0088143e00ac870a018d071a000c858a0188810c0040260000501000000c870a010808ae001c858a0108810c0040260000501000000, +80aaa0031267ef7b0100000002f2af7d80a240021a67ef7f1267ef82050000088538b01080a2000201000000852a301081f000000af26f87c071c00090102000, +86100005c7f1d000226fe4e78341400002c0c004010000008a01600186102000c6d8c9e0ca08e0008e00a87886102020c4d889e0c458a0000100000084102028, +8a1a000480a94003872950038620e0018600e00d8a1020018601400586014003010000008a09600fc89844862ec1400d8200a8808c1020e02af0fffa80a14003, +8810200189291005c608601d8a08e03f82102028c2d849e08c0040068143e00c106fef64010000008e00a878c071c0000cf9bff28c21a0200260000801000000, +808aa0010260000ac0f20ae0d2f1c420d2d9c420c0f1c420ce7160108e102008ce5960108e29c0040260000a010000008a018005808aa0028b30f0068b297003, +1260000601000000ce59e018809140078e010006ca59e010d2f1c42088102000c0f1c420c0f20be08e102008d2d9c4208e29c004ce71601801000000ce596018, +82102028c2d849e0808a20071267ef219010200d81f000009010200081f000008e006878c071c0008143e00ac2586000c071a008c071a0000cf93ffa88212008, +1867ef04c458e008c458e00080a080088088a0010267ef0786010003c408e0188728f0058600e06880a0e0401667ef0d8410200087323022c858600022c20014, +81f0000000000000d25862489010200082102028c2d849e09010200081f00000d0706248c470624084008008d25862480667ef00c458e0108420800880a0a200, +84020002c658800084008003912a30048410a074874140001a67eef20500000002f0aefc80a2200a8410a260c4584002c25860000500000982102028c2d849e0, +8741400084008003050000008410a02880a2200a1a67eedfc458400202f0aee9050000098410a260c2d849e0c258600081f0000082102028d258c00090102000, +ffffffffffffffff000000800002000800000000000000ff00000080000200009010200081f0000082084009c270c000c6588000c258a008912a300484020002, +ffffffffffffffff000000970000140800000000000000ff0000009700001400ffffffffffffffff000000970000040800000000000000ff0000009700000400, +ffffffffffffffff000000970000340800000000000000ff0000009700003400ffffffffffffffff000000970000240800000000000000ff0000009700002400, +c4d889e0c458a00081f0000084102028921200099010200081c1e0040100000086102100c63080008610e00a840080038400400207000004050000058410a210, +8210621082008001c458a0000300000584102028c4d889e09010200081f000008400a008d208a0018528b0068400400282008001840a203f0300000582106210, +90100002c45a20181260000c01000000ca08a00080a1600002c2401001000000c628a006d228a001d070a008860a203f840040028400a008840a203f8528b006, +1a67ee62872a7003c258600080a2602082102028c2d849e09010200081f000000ac880bf8f414000841000018210000881c080008f41400002c08008c25a2010, +c630a002d230a004840100028400a008840a203f8528b0068811221088004004c608e0000900000501000000c658e010c658400302f0ee5d88102bd88600c004, +81f0000084102028d210a00490102000840040028400a008840a203f8528b0068210621082008001c458a0000300000584102028c4d889e09010200081f00000, +02c08005c259a01001000000c459a01880a26001026000088c01a008d209a0008d29b0068c004006820080018c0a203f0300000582106210c4d889e0c458a000, +8c01a008d229a0008d29b0068c004006820080018c0a203f0300000582106210c4d889e0c458a00081f0000084102028921000019010200081c080008f414000, +81c080008f414000c259a0109a100006c459a01802c0800980a260001260000b8f4140008c10000d9a10000681c0c00084100009c259a010c659a02002c0c007, +8d29b0068c004006821020008c08a03f80a0a0403a60000f82106210820180018c100001030000059010200081f000000ac080638f414000841000018210000d, +8c01a110ce59a0008c102020ccd989e081c1e00401000000ca71a00882100006ca1040058a0140020b0000048a11600ac871a018ca71a0208c01a008c671a010, +8e01e008ce71a0003667e36783414000ce59a00080a1e180ccd989e08c01a110c471e0008c102020ce71a0008e01c006834140008e01e00880a1e1803667e372, +841000098610000ac871e00082100008ce71a0008e01c006834140008e01e00880a1e1803667e35c8c01a110ce59a0008c102020ccd989e08e01c006c671e000, +c859a0088c102020c871a0008c0180048341400088212008c859a00024f1234accd989e08c01a110901000018c102020106fffc48f4140008810000b8a10000c, +834140008420a008c459a00024f0a336ccd989e08c01a110c659a0088c102020c671a0008c018003834140008620e008c659a00024f0e340ccd989e08c01a110, +861000008810297880a1601f3480000e126000188a100000c410600280a0e000c608600002c0801b01000000c4086001c459a00881c3e008c471a0008c018002, +82100003c6592008c4286000881000018a0160018410200280a10002324ffff3c858e010c8092000c859203886010003c8d909e0c85920088649400488102020, +8a016008cc1160028b2970068a0180058c0100068a08e03f0d0000058c11a210c85920008610203f88102028c8d909e081c1e0040100000010bfe60d84102001, +80a160000267ed6fc6592000ca08e98088102028c8d909e081c1e004010000001a6ffff201000000cc29600186a0e001010000008c10200080a0400612680004, +01000000c259a0288488a0010267ed738c018003c409a020010000008c10298001000000106fed7380a160020268007902680007010000000100000080a16001, +884920e882004004c2586058c858a0d0c2d849e0c2586008010000008210202080a160021268003184004003ca08a0c08410a2b0820040028248611005000009, +cc00a020c800a0242af17ffa80a180058a100006cbf11000226fe2cb8341400002c14004010000008c01a0018a102000cad949e0cc096000880060288a102020, +d029a0088a016001010000008c01000580a160383a68000a88010006ca09200188090006cc58a0108c21a0408821204001000000cc58a01880a1000602680014, +8c018004c859a0708a1162b08c018005884921100b000009cc58a0c8c858a0d0c07100003080000d81f0000088006028c071000090102000ca29200188006028, +8c10200122f97fe901000000ca08a00580a04006126800088201204082084005ca58a0188a216040cc00a020c800a0249010200081f000002ac1000401000000, +ca2920008a102001c07120388a102002c0712028c0712030c0712018c0712020c0712008c071201088010003c071000001000000c658a010cc28a00510bfed1f, +c258e998c80860059010200081f00000106805f38f41400010800004010000001068084a8f4140000268000601000000ca08a0c080a16000ca292001d0292008, +02680017010000000100000080a1600180a160000267ecf5c2586000ca08698082102028c2d849e09010200081f0000001000000d0284000808920200267ecff, +81f000008088e00192103fff901020008628e010c628a0050268000701000000c608a0058088e01001000000c458699801000000106fece780a1600202680004, +c608a0c080a0e0028400800384008004070000098610e2b0c45860288448a110861029808200400381f0000088100001d208800090102000026fece001000000, +88012110ca59200088102020c8d909e080a0c00402680037c600a078c800a07c106808088f4140001080000401000000106806de8f4140000268000601000000, +8a016008ca7120003667e22783414000ca59200080a16180c8d909e088012110c471600088102020ca7120008a014004834140008a01600880a161803667e232, +834140008620e008c659200024f0e216c8d909e0880121108f41400088102020c25860001068099682102028c2d849e0c858a0688400c0048a014004c6716000, +8a2160408600e040c4592008ca58a070c471200088010002834140008420a008c459200024f0a20cc8d909e088012110c659200888102020c671200088010003, +84102001c42860200268000701000000010000008088a0028088a0010267ec8782004003c4086020c25860008610298082102028c2d849e08a08c005ca20a078, +026fec7201000000c658603880a0800381f00000c458603092103ffe9010200084102001c4286020026800070100000081f000008088a00492103fff90102000, +80a160000267ec61c2586000ca08698082102028c2d849e002f26c56010000009010200081f000008408a1ffc4706030d208c0008400a001860060488600c002, +8628e010c628a0050268000701000000c608a0058088e01001000000c458699801000000106fec5380a16002026800040268002d010000000100000080a16001, +8089a0010267ec338a004005cc0960188b2970058a01606880a160401667ec3904f26c3c8b323022026fec4c0100000081f000008088e00192103fff90102000, +81f00000861029809210200190102000c6088000c62a00008c018008901000060667ec2ccc5960108c21800880a180091867ec30cc596008cc59600080a18008, +010000001068075f8f41400010800004010000001068063580a0e0020268000684008001c608a0c08610e2b0840080038448a110070000098c004003c459a028, +8a014004c47160008a016008ca7120003667e18983414000ca59200080a16180c8d909e0880121100268003788102020c800a07c80a0c0048f414000c600a078, +c2d849e0c25860008400c00482102028c6716000c858a068ca7120008a014004834140008a01600880a161803667e17e88012110ca59200088102020c8d909e0, +88012110c459200088102020c8d909e088010003c65920088620e008c671200024f0e16d8341400088012110c659200088102020c8d909e0106808ed8f414000, +861029808c018003ccd989e0cc59a000ca20a0788c1020288600e0408a08c005ca58a0708a21604088010002c45920088420a008c471200024f0a16383414000, +01000000841020018088a004026800079010200081f00000c429a02092103fff01000000841020018088a002026800070267ebde01000000c409a0208088a001, +80a160401667ebb304f26bb68b323022c2d849e0c2586000010000008210202880a08003026febc9c459a030c659a0389010200081f00000c429a02092103ffe, +88010008901000040667eba6c85960108821000880a100091867ebaac8596008c859600080a10008808920010267ebad8a004005c80960188b2970058a016068, +0100000010bffff380a080050268000401000000ca59a03880a100091a6800088408a1ffc471a030880120018400a001ca08c002ca2a00048601a04888100000, +8a0160688a00c0051667eb868b2970058b32302280a16040c659200004f26b8988102028c8d909e002f26b8a010000009010200081f000000100000092100004, +80a160000267eb6f90100002ca08e980c45960108400800880a080090667eb79c45960088420800880a080081867eb7d0267eb80c4596000c40960188088a001, +84102000c60a00020267eb7401000000c80860058089202001000000c258e99801000000106feb7380a16002026800040268001a010000000100000080a16001, +c409a0208488a0018c1029808c0180039010200081f00000010000009210000280892020126ffff801000000c808600580a080091a600006c62840008400a001, +884921100b000009cc58a0c8c858a0d01268000e01000000ca08a0c080a160008200400284004003050000098410a2b0c259a028824861100267eb6001000000, +80a04006126800088201204082084005ca58a0188a216040cc00a020c800a0249010200081f000002ac10004010000008c018004c859a0708a1162b08c018005, +ca28c0068c01a00186012008ca0a0006ca2920008c100000880100038a10200201000000c658a010cc28a00510bfeb3b8c10200122f97ff501000000ca08a005, +106806628f4140000268000601000000ca08a0c080a1600092100006cc29200110bffff7010000001a600004010000000100000080a1a03880a180091a600007, +8600e068860040031667eb068728f0058732702280a0e040c258600004f2ab0982102028c2d849e09010200081f000001068040b8f4140001080000401000000, +82004003c6586008070000098610e290c458e0108400800980a0800a0667eaf9c458e0088420800980a080091867eafd0267eb00c458e000c408e0188088a001, +1867eaecc65860008802000a80a1000380a200031a67eaefca70600886100005ca0121d08b2970090267eaf601000000c858600080a13fff0ac8c00b80a20003, +8528b0058400a06880a0a0401667ead504f2aad885327022c2d849e0c258600081f00000821020289210000a9010200010bfe4398f4140008200c0088610000a, +8410a290820040028600c009050000090667eac8c658a0108620c00980a0c00a1867eaccc658a008c658a00080a0c0098088e0010267eacf84004002c608a018, +80a100021867eabb1a67eabe8802000a8410000580a200028b297009ca70600801000000ca0121d080a13fff0267eac580a20002c8586000c45860080ac8800b, +853230068408a01f808a203f1267eaadc2d849e0c258600081f00000821020289210000a9010200010bfe4078f414000840080088610000ac458600082100003, +81c080000100000002f0aa9e01000000c2586000c458a098c458600802f0aaa1c2586428820040028528b004c258600802f8aaa80100000086006df0c408c002, +82004002c4586008c2586008c2586428010000008528b004c408c00202f8aa918408a01f86006df01267ea9685323006c2586000808a203f82102028c2d849e0, +86006df0c408c002853230068408a01f808a203f1267ea7fc2d849e0c258600001000000821020280100000081c08000c458a0a002f0aa8702f0aa8ac2586000, +80a2a0011867ea6b81c080000100000002f0aa7001000000c2586000c458a0a8c458600802f0aa73c2586428820040028528b004c258600802f8aa7a01000000, +c2586428820040028528b004c258600802f8aa600100000086006df0c408c002853230068408a01f808a203f1267ea65c2d849e0c25860000100000082102028, +8408a01f86006df01267ea4e85323006c2586000808a203f82102028c2d849e081c080000100000002f0aa5601000000c2586000c458a0b0c458600802f0aa59, +0100000080a2a0010100000081c08000c458a0b802f0aa3f02f0aa42c258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8aa49, +c2586008c2586428010000008528b004c408c00202f8aa2f8408a01f86006df01267ea3485323006c2586000808a203f82102028c2d849e01867ea3a01000000, +853230068408a01f808a203f1267ea1dc2d849e0c258600001000000821020280100000081c08000c458a0c002f0aa2502f0aa28c258600082004002c4586008, +81c080000100000002f0aa0e01000000c2586000c458a0c8c458600802f0aa11c2586428820040028528b004c258600802f8aa180100000086006df0c408c002, +8528b004c258600802f8a9fe0100000086006df0c408c002853230068408a01f808a203f1267ea03c2d849e0c25860000100000082102028808aa03f1267ea09, +1267e9ec85323006c2586000808a203f82102028c2d849e081c080000100000002f0a9f401000000c2586000c458a0d0c458600802f0a9f7c258642882004002, +0100000081c08000c458a0d802f0a9dd02f0a9e0c258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8a9e78408a01f86006df0, +c2586428820040028528b004c258600802f8a9d00100000086006df0c408c002853230068408a01f808a203f1267e9d5c2d849e0c25860000100000082102028, +808a203f1267e9bbc2d849e0c2586000010000008210202880a2a0011867e9c181c080000100000002f0a9c601000000c2586000c458a0e0c458600802f0a9c9, +02f0a9ac01000000c2586000c458a0e8c458600802f0a9afc2586428820040028528b004c258600802f8a9b60100000086006df0c408c002853230068408a01f, +c2586008c2586428010000008528b004c408c00202f8a99f8408a01f86006df01267e9a485323006c2586000808a203f82102028c2d849e081c0800001000000, +853230068408a01f808a203f1267e98dc2d849e0c258600001000000821020280100000081c08000c458a0f002f0a99502f0a998c258600082004002c4586008, +81c080000100000002f0a97e01000000c2586000c458a0f8c458600802f0a981c2586428820040028528b004c258600802f8a9880100000086006df0c408c002, +82004002c4586008c2586008c2586428010000008528b004c408c00202f8a9718408a01f86006df01267e97685323006c2586000808a203f82102028c2d849e0, +1267e95c85323006c2586000808a203f82102028c2d849e01867e962010000000100000080a2e0010100000081c08000c458a10002f0a96702f0a96ac2586000, +0100000081c08000c458a10802f0a94d02f0a950c258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8a9578408a01f86006df0, +c2586428820040028528b004c258600802f8a9400100000086006df0c408c002853230068408a01f808a203f1267e945c2d849e0c25860000100000082102028, +8408a01f86006df01267e92e85323006c2586000808a203f82102028c2d849e081c080000100000002f0a93601000000c2586000c458a110c458600802f0a939, +01000000821020280100000081c08000c458a11802f0a91f02f0a922c258600082004002c4586008c2586008c2586428010000008528b004c408c00202f8a929, +c458600802f0a90bc2586428820040028528b004c258600802f8a9120100000086006df0c408c002853230068408a01f808a203f1267e917c2d849e0c2586000, +853230068408a01f808a203f1267e8fdc2d849e0c2586000010000008210202880a2a0011867e90381c080000100000002f0a90801000000c2586000c458a120, +81c080000100000002f0a8ee01000000c2586000c458a128c458600802f0a8f1c2586428820040028528b004c258600802f8a8f80100000086006df0c408c002, +c671a2d8bf983fff0ac8800387460000ca59a008c459a2e02ac8803b82102001c871a518c459a4c0c471a508c671a5108c102020ccd989e08b46000082004005, +c459200002c0c01388012020c65920088a0121e088212020836550008801a2e0c859a2d882a04004386800028200c0050868000480a08005ca59643084a04005, +c671603880a10005c6596018c4716030c4596010c6716020c6596000c471602822c8800a80a10005c4712000c4596008822040028420800180a04002366ffffb, +8600c00580a0c0040b00000287460000c459a2e088004002c4712018c259a2d8c4712010c459a518c4712008c459a510c2712000c459a508326ffff58a216020, +c6592000c4592020326ffffd8801202002c8c01680a0800302c8800ac6592008c8d909e0880122e001000000881020208210000081c1e00489671003bf990000, +c0712010c071201810bffff688012020c4712010c6712018c6712000c6592038c0712000c4592030c471200822c08009c4592028c65920208600c002c6712020, +cc596028cc716008c2596010c45960188600c002c671a2d8c659a2d8c459600022c10016c071a2d88a01a2e0c85960088c102020ccd989e081c1e00401000000, +106fffe48f41400081c1e00401000000c0716010c071601810bffff68a016020cc596038cc716018cc596030cc716010cc596020cc71600022c9800ac0716000, +8746000082102100c459a2e0c859a2d822c8800b01000000ccd989e0c459a2e8010000008c102020834fc0000ec8401081c100008f41400022c1001501000000, +c658a00080a0e180c4d889e08400a11001000000841020200100000081c1e00483f0000081c1e004bf9900008798000080a0c004896710038600c00188010002, +8f4140001068003a010000001068001080a0ffff02600006c458a008c658a0a884102020c4d889e08600c002ce70e0008600e008c670a0003667ddc383414000, +c4d889e0c458a0080100000084102020ce58a00881c1e004ce70a00084008007834140008e21e008ce58a00024f1ddaec4d889e08400a1108f41400084102020, +8800ffffc9f0900301000000c6588000c658800002c8c01c8410a288840040020100000005000009c25860c802c04022c258a05082004003c658a4d88648e110, +696d657220657870746368646f67207467756573742077611080000a834140008a1000078c1000010ac8c01301000000861000048600ffff80a0c0043267fffd, +c25960e0c8596020c609a000c67160a8ccd989e0ca59a008010000008c1020208e10000581c1e0048f414000821000068200600410bfe16d6972790d0a000000, +0268000401000000c858a0a880a0c004c4586008c608600082102020c2d849e08420800430bfff098410a36c841080058b297020053c007b0b0000008a1160ff, +c600607c80a0800330bfff39c40060788410800384208001053c007b8410a36c8610e0ff8728f020c258a0200700000086103fffc670a0a881c1e00401000000, +84008003c458a010c65860d08648e0e8c458a008c458a05884102020c4d889e01268002a010000000268001380a0a002c40860c080a0a0001268002301000000, +c600a020c800a0248648e1108400800384008003c65860d0070000098610e2b001000000c45860c80100000081c1e00480a0c00412600010c608a100c808a101, +10bfe01f8410200102c0400401000000c65860a8c25860a03260000801000000cbe1100680a160008a1020020d000000010000008800609080a0c0040268000f, +8400800384008001070000098610e2b001000000844a211080a200021a67e7b58410a2a0c4584002c25860000500000982102028c2d849e081c1e00401000000, +1267e790010000008a212001808a400501000000892ab006860a80030af0e791010000008622a0010100000002c2802ac608a0020af0e7abc608a00102f0e7ad, +8a21400980a140041867e776ca59a008ca59a00080a14009808960010267e7798c004006ca09a0188d29b0058c01a06880a1a0401667e77f04f127828d327022, +81f00000c070a018c870a01890102000cc20a024cc20a0208d794c0026c940028a2120408a214006ca70a010cc00a0248a014009d270a0080667e772ca59a010, +8400800384008001070000098610e2b001000000844a211080a200021a67e7758410a2a0c4584002c25860000500000982102028c2d849e09010200081f00000, +8410a2a0c4584002c25860000500000982102028c2d849e09010200081f00000c858a0189531300601000000d258a008c608a0020af0e76bc608a00102f0e76d, +02f0e73c0100000001000000c658a018c608a0020af0e753c608a00102f0e7558400800384008001070000098610e2b001000000844a211080a200021a67e75d, +824860e89602c001d65ae058c258a0d0d6dac9e0d65ae008010000009610202080a06000026800142268002796102001c208a0c080a06001d200a020d400a024, +9602c00103000009c258a0d08248611030800011d658a0c896102001961020029610200022c84003d60ae10222cac0052ac84002c02ae103d65ae008c20ae103, +ca58a0c8c658a0d081f00000c220a024961020029010200022c840039610200122cac00596102000c02ae004d65ae070c20ae0042ac84002821062b09600400b, +0ac1401e0100000001000000ca5920a080a1800312680039cc012078c601207c02c1803e0100000088018004cc5920700d0000098c11a2b08848e11088014004, +ce71a000106ff936cc7160008c018005834140008c01a00880a1a1803667dc6a8a016110cc5960008a102020cad949e00100000082100005ca5920b802c14033, +cad949e08a016110861000048a102020ce59600830800019ce7160008a014007834140008e21e008ce59600024f1dc5ecad949e08a0161108f4140008a102020, +24f1dc45834140008a016110ce5960008a102020cad949e01068060e8f4140008c018005ce71a0008c01a008cc7160003667dc5183414000cc59600080a1a180, +01000000844a211080a200021a67e6d18410a2a0c4584002c25860000500000982102028c2d849e081c1e004010000008a014007ce5960088e21e008ce716000, +0100000080a0c009c658a01802f0e6ad1267e6b40100000001000000808a603fc608a0020af0e6c7c608a00102f0e6c98400800384008001070000098610e2b0, +0100000080a240040100000010bfe69d80a240030668000980a240041468000b0668000901000000ce58a01080a10003c600a020c800a0240867e6aa01000000, +01000000d220a0248f4140001080002a82100009106801d502680007010000000268002e80a12001c808a0c080a120001667e698010000000467e69a80a24003, +8600e0408a08c005ca58a0188a216040c25960888e00c00702c1801f010000008a010005cc596080c258a0d08a486110c8592008c859205088102020c8d909e0, +ce58a01080a0c004c600a020c800a0248400800384008001070000098610e2b0c2586000844a211082102028c2d849e081c180008f414000ca20a02084100007, +c458400280a20002050000098410a2a0c2d849e0c258600081f00000821020288f4140009010200082100009106fff5810800005010000001267ffe001000000, +8622a001860a800302c28027010000000af0e6640100000002f0e666c608a00284008001c608a0018610e2b084008003844a2110070000091a67e66e01000000, +ca09a018808960018c01a0688c0040061667e6388d29b0058d32702280a1a0400100000004f1263b808a40051267e649892ab0068a2120010af0e64a01000000, +8a2140068d794c00cc00a07c8a212040d270a060ca70a068ca59a0108a01400980a140040667e62bca59a0088a21400980a140091867e62f0267e632ca59a000, +1080000801000000ca28a004c870a070cc58a0702ac98002010000008a1020010100000002c2800980a0e0020267e625cc20a078c608a0c026c94002cc20a07c, +0d0000098c11a2b08648e1108600c004c858a0c8c658a0d01268000e01000000c608a0c080a0e0008a102001ca28a00402c1801401000000cc58a070c070a070, +80a200021a67e60f8410a2a0c4584002c25860000500000982102028c2d849e09010200081f00000106805428f41400002c100040100000086018003c858e0a0, +9010200081f00000c858a0709531300601000000d258a060c608a0020af0e605c608a00102f0e6078400800384008001070000098610e2b001000000844a2110, +c858e00080a12180c6d8c9e08600e110ce71200086102020c870e00088010003834140008801200880a121803667db5e8600e110c858e00086102020c6d8c9e0, +c870e00088010003834140008801200880a121803667db488600e110c858e00086102020c6d8c9e088010003d271200088012008c870e0003667db5383414000, +8600e110c858e00086102020c6d8c9e088010003d671200088012008c870e0003667db3d83414000c858e00080a12180c6d8c9e08600e110d471200086102020, +cc58601802c1803a8c11a2b082018001820040040d000009c658a0d08848e110c4712000c258a0c8c870e00088010003834140008801200880a121803667db32, +cc00a07c8a22400688214003d200a07801000000ca586018010000000cc900048821000302c90032c6006020c800602404c9c03701000000010000000f000008, +8e100005881000078a21c0042cc9400492210005897a5c0502c9402101000000010000008a2160408a2140060aca400301000000ca58a0708a2160400ec94007, +ca58a0708a2160400efa7ffc8c01a0088600e00892226008ca58c000ca7180008c018009922120088600c009d258a06896100006d25860108e10000094100003, +02c8400401000000c0286005c25860b802c8c0080100000030bfffcac60860058a0a8005ca2060208a21604094028004ca20a07cca5860189602c0048a0ac005, +8600e110d658e00086102020c6d8c9e08600c002c458e0088420a008c470e00024f09add834140008600e110c458e00086102020c6d8c9e0106ff7b58f414000, +8600c00ad458e0089422a008d470e00024f29ac9834140008600e110d458e00086102020c6d8c9e08600c00bd658e0089622e008d670e00024f2dad383414000, +24f1dab5834140008600e110ce58e00086102020c6d8c9e08600c009d258e00892226008d270e00024f25abf834140008600e110d258e00086102020c6d8c9e0, +01000000844a211080a200021a67e5418410a2a0c4584002c25860000500000982102028c2d849e081c1e004010000008600c007ce58e0088e21e008ce70e000, +2260002c96102001c608a0c080a0e00102f0e5200100000001000000c658a070c608a0020af0e537c608a00102f0e5398400800384008001070000098610e2b0, +c02ae004d65ae070c20ae0042ac84002821062b09600400b9602c00103000009c258a0d0824861108f414000d658a0c801000000106fff2d80a0e00202680016, +884920e89602c004d65ae058c858a0d0d6dac9e0d65ae0088f414000961020200100000010680047961020021080001522c840039610200122cac00596102000, +82102028c2d849e09010200081f00000d200a078d400a07c96102001961020029610200022c90003d60ae10222cac0052ac90002c02ae103d65ae008c80ae103, +c608a0020af0e4efc608a00102f0e4f18400800384008001070000098610e2b001000000844a211080a200021a67e4f98410a2a0c4584002c258600005000009, +0100000080a2400380a0c00406680009c600a078c800a07c0867e4d2010000000100000080a0c009c658a07002f0e4d51267e4dc0100000001000000808a603f, +10bfe4bc010000009010200081f0000001000000d220a07880a240041467e4c180a240030467e4c310bfe4c60100000004680009010000001468000b80a24004, +844a2110070000091a67e4c201000000c458400280a20002050000098410a2a0c2d849e0c25860000100000082102028808a603f1267e4bb10bfe4ba01000000, +80a280041667e49b010000000910000080a2a0020667e49f02c28028010000000af0e4b80100000002f0e4bac608a00284008001c608a0018610e2b084008003, +ca09a018808960018c01a0688c0040061667e4888d29b0058d32702280a1a0408a21200104f1248b01000000892ab004808a80041267e497010000008822a001, +9010200081f00000d470a0e8c870a0f0d270a0d8ca70a0e0ca59a0108a01400980a140040667e47bca59a0088a21400980a140091867e47f0267e482ca59a000, +01000000844a211080a200021a67e4818410a2a0c4584002c25860000500000982102028c2d849e09010200081f00000c070a0d8c070a0e0c070a0f0c070a0e8, +8210400c8088600781f000008212800bd258a0d89010200001000000d458a0e8c608a0020af0e477c608a00102f0e4798400800384008001070000098610e2b0, +80a200071a67e45f8e11e2a0ce584007c25860000f00000982102028c2d849e00467e454010000000100000080a3200080a260011467e45712bfe45e01000000, +1667e434892930058932f02280a120400100000004f32437c609e0020af0e455c609e00102f0e4578e01c0038e01c001070000098610e2b0010000008e4a2110, +c609e0c002c8c00ac65920108600c00b80a0c00c0667e427c65920088620c00b80a0c00b1867e42b0267e42ec6592000c60920188088e0018801206888004004, +88008005880100060d0000098c11a2b0ca59e0d08a49611001000000c459e0c89964d004106800428821000580a1000c8a2120018a0a80050100000009000008, +80a180051667e41b8d31b015ca5920e8010000008d2ab0088d32b03c0af1a40d02f0e4240100000001000000c65920e0c60920020af0e42bc609200102f0e42d, +8608c0068a0a80058a2160018c2980058c21a0018b29700d8a1020018d2970380267e40c010000008b31500980896001c658c0068b30f009010000008d29b004, +808aa0010267e3e38c008006d409a0188d29b0058c01a06880a1a0401667e3e904f323ec8d30f0228c2180059964d0060d00000880a180048610c0058801400c, +8a02c006050000088c004006cc59a0108d29b0058c01a068940280038d32f0220667e3dcd459a0109422800380a2800c1867e3e0d459a008d459a00080a28003, +1068000801000000126ffffc010000008200600880a0400cce594001ce72800102c2400a010000009964d003821000008620800380a0c00c8620a00186094003, +d0706020d270602882102028c2d849e09010200081f0000096100000981000009210000c94100000126ffffc010000008200600880a0400cce5a8001ce714001, +ce08a00102f1e3bf84008007840080010f0000098e11e2b001000000844a211080a200021a67e3c78410a2a0c4584002c25860000500000982102028c2d849e0, +8a1162b08a00c005884921100b000009c658a0c8c858a0d00af8e3a20100000001000000c608a0c0c658400302f0e3b70100000086102868ce08a0020af1e3bd, +8a0160118b3190058d2a70048a48a0030267e38c010000008b315002808960018532703c8a10202b0af163aa0100000002f163acca09200288014004ca092001, +9131f000900a200f0267e38601000000900a207f808a201fce5980079131f004010000008f297004cc5920e002f1a3951667e39801000000cc5920e880a14006, +04f26364893230221267e372010000009128b00d808a40088529f0088530b015932a5008922260019002200d92102001010000009048a003809a00021267e375, +0667e354c45920108420800880a080091867e358c4592008c459200080a080088088a0010267e35b8800c004c4092018892930058801206880a120401667e361, +80a100091267fff5c858a000c9f2100988004004840100020900004d881122b001000000844a6030d25a000006fa6363901222a8900040088400800811000009, +8b2970058a0160688929300d8b3130228929f008893130158809201fc828a0258931f0049409207fc830a022ca20a028d0da09e0c85a20200100000090102028, +c070a010c070a008c070a018c030a020912a1004902220018801200d90102001c828a024884920038931f0008809200f88010005c870a0008a00c005ca596010, +0900004d881122b08610e2a88600400381f00000070000099212000990102000c25860289008400882102028c2d849e0c858400492010009932a701c88102868, +82004005c8086020010000008a1029800100000081c1e00480a140041267fffb8a100002cbf0d004c858c000c870600082004004c0286025880040048248a030, +8a1163ff80a18005cc00a0040b3fffffc80860208811200212680022010000000100000080a1a00180a1a0020268001701000000cc0880008089200102600029, +8400a0088a006048c8586038c608a001108000100100000022600012c82860208a1163fe80a18005cc00a0040b3fffffc8086020881120042260001ac8286020, +0900004d881122b08b31301c8a49603081c1e0040100000001000000c870603886a0e0011267fff888012001880921ffcc2940008400a0018a014004cc088000, +8c1020018d29b03f8c11a500861180038c1020008d667040861100038089a002c8096024c65960000267ac2c01000000cc0960258089a003880100018a014004, +80a080033267fffd86108001c7f150028a016008c459400084102001832890018330700282006008c2d849e0c2086000c6f08b80821020208611800384102600, +80a10005126000238809e00fca08a0240260002a01000000cc08a0258089a0038a014006840080050b00004d8a1162b08531701c8448a0308410000383f00000, +09000007881123ff86102030c6d8cb008c102400caf18b808d29b03d8a2940068a2940068c1020018c1020008d6470408a11c0058089a00201000000ca58a000, +80a140033267fffd86114001c7f090058400a008ca5880008a102001832950018330700282006000c2586010c20860008628c004c670a0188a08c004ca30a020, +8531701c8448a030106fb073010000008a08c0028628c002050000078410a3ff86102030c6d8cb001068000282102004106800048210200f8a10000383f00000, +02f1226c01000000c808a025880900078f6670028e110007881100078088e040808ae0028f667004808ae001896670018a014006840080050b00004d8a1162b0, +8628c0048808e00f8810000089647040010000008089200280a1c0091267e26101000000ce10a02080a1c0081267e26501000000ce58a018ce08a00f02c9c00a, +808ae002c8f1cb00808ae001026800078e1020308c1024008628c007881200098e1020018f29f03dce58a0008610c0071267f1cf01000000ce08a02480a10007, +832950018400a008820060008a102001c208600083307002d230a020c2586010c6f18a80d070a018c8f1ca008143e04002600005010000008143e040c6f18b80, +0c67e22401000000c85840048aa20004c25860008810286882102028c2d849e09010200081f000003267fffd8a100003c7f0900580a14003ca58800086114001, +106ffefd8f41400002f1a22e010000008a004005cc0960258c11a2b08a0140068a48a0300d00004d010000008531701c88a140040ef1221f88102870c8584004, +82004002c258600882004002844a60100500010d8410a2b0c2d849e0c2586000010000008210202880a262001a6000109010200d81f000009010200081f00000, +8410a2b082004002c25860000500010d82102028c2d849e01a6000100100000081f0000080a2620081f0000090102006d25860189010200002c0405c01000000, +c2d849e0c2586000010000008210202880a262001a6000109010200681f000009010200081f0000001000000d4706018c258600802c04005844a601082004002, +1a60001a0100000081f0000080a2620081f0000090102006d20860049010200002c040050100000082004002c258600882004002844a60100500010d8410a2b0, +80a0800312600007d428a00486006090c258600002c2800bc458600802c0800f844a6010820040028410a2b082004002c25860000500010d82102028c2d849e0, +c2d849e0c2586000010000008210202880a262001a6000119010200681f000009010200081f00000106ff9e98f4140001260000401000000c600a00080a0e000, +80a262001a6000189010200681f000009010200081f00000c2586010d208601d02c040060100000082004002c258600882004002844a60100500010d8410a2b0, +82004002844a60100500010d8410a2b002f2a1960100000094028002d458400a952ab00384102bd880a2a0201a67e19bc2d849e0c25860000100000082102028, +c25860000500010d82102028c2d849e01a6000100100000081f0000080a2620081f0000090102006d47060109010200002c040050100000082004002c2586008, +0100000006c2801c80a262001a60001e9010200681f000009010200081f0000001000000d2006000c258600802c04005844a6010820040028410a2b082004002, +80a2a0001260000a02c0800fc258600082004002c458600882004002844a60100500010d8410a2b0c2d849e0c2586000010000008210202880a2a0021860001a, +ccd989e08c01a11081f000008c10202081f00000901020068f4140009010200001000000106ff986c608a00402c0c00480a0800312600006d420a00086006090, +834140008e01e00880a1e1803667d6c68c01a110ce59a0008c102020ccd989e08e01c006c471e0008e01e008ce71a0003667d6d183414000ce59a00080a1e180, +82100008841000098e01c006c871e0008e01e008ce71a0003667d6bb83414000ce59a00080a1e180ccd989e08c01a110c671e0008c102020ce71a0008e01c006, +8c01a110c659a0008c102020ccd989e08c018004c859a00888212008c871a00024f116ad834140008c01a110c859a0008c102020ccd989e0106800228f414000, +8c018002c459a0088420a008c471a00024f09699834140008c01a110c459a0008c102020ccd989e08c018003c659a0088620e008c671a00024f0d6a383414000, +821062b08a492110c85920d00300000982102010c65920c8ca09200122c1404b8a48611088010005c8592008c859205088102020c8d909e081c3e00801000000, +cc01607cc25960682260003882102009cc01607880a040068c01a04082098001cc01607c822060408210200bc2596070c259607022c040418a00c0058a004005, +c271a030c258a038c271a028c258a030c271a020c258a028c271a018c258a020c271a010c258a018c271a008c258a010c271a000c258a0088c018001c258a000, +c258a00080a06180c4d889e08400a110010000008410202080a080061260001acc016078c221607c8c00a04082098001c259607082206040c271a038c401607c, +834140008e21e008ce58a00024f1d646c4d889e08400a1108f41400084102020861000051068000f82004002ce70600082006008c270a0003667d65383414000, +1260000d01000000ca00e09080a1600002c140110100000001000000ca08e094c258e0a002c0401481c1e00401000000ce58a00882100000ce70a00084008007, +ccd989e08c01a110010000008c1020208410200181c1e0048610000510bfd92401000000ca58e0a880a16000326000060d000000cbe110068800e0908a102002, +834140008e01e00880a1e1803667d6168c01a110ce59a0008c102020ccd989e08e01c006c471e0008e01e008ce71a0003667d62183414000ce59a00080a1e180, +86100008106fffc78e01c006c871e0008e01e008ce71a0003667d60b83414000ce59a00080a1e180ccd989e08c01a110c671e0008c102020ce71a0008e01c006, +c659a00024f0d5f4ccd989e08c01a110c859a0088c102020c871a0008c0180048341400088212008c859a00024f115feccd989e08c01a1108f4140008c102020, +c459a00881c3e008c471a0008c018002834140008420a008c459a00024f095eaccd989e08c01a110c659a0088c102020c671a0008c018003834140008620e008, +c6706480c658a038c6706478c658a030c6706470c658a028c6706468c658a020c6706460c658a018c6706458c658a010c6706450c658a00801000000c658a000, +82102020c2d849e0106fda0d8f4140008600c002ce70e0008600e008c670a0003667d5cd83414000c658a00080a0e180c4d889e08400a110c670648884102020, +01000000861020208f41400040003159a190200010680285c07064c88f902000c07064b8c07064c0c07064a8c07064b0c0706498c07064a0c2586008c0706490, +88100005c9f1d000226fd5a78341400002c10004010000008a01600188102000c8d909e0ca0920008e00e4e0881020208400e490c258e4d8c6d8c9e0c658e008, +106fda578f4140000267ffe3010000000267ffe580a0600fc071c00080a06009c658e0088e00e4e086102020c6d8c9e0106fff108f4140002af13ffa80a14004, +8410000182102020106fada58f41400081c1e0040100000084008007ce58a0088e21e008ce70a00024f1d58f834140008400a110ce58a00084102020c4d889e0, +010000001080000580a0e0070268022580a0e0060268008780a0e0050268004580a0e003026001b380a0e0020260015b80a0e00102600152c2d849e0c658a000, +636f6d6d6f6e2f7361746c616b65732f2e2f2e2e2f677265834140002e2e2f2e8f4140001080000e8200600410bfd95b4f52543a20000000834140000d0a4142, +10bfd9428f41400078000000820060042c206c696e652030108000058341400010bfd94a8f414000732e7300820060046d6d6f6e5f636d6472632f68765f636f, +4856206d6f6e646f556e6b6e6f776e20108000098341400010bfd9388f4140003a20000082006004108000038341400010bfd9568f4140008210206582100001, +8f54000080a1e0028341400030bfd53610bfd9268f4140000d0a000082006004108000038341400010bfd92c8f414000000000008200600420636f6d6d616e64, +91d02013901000077800000090022004737472616e643d3073745f636d643a20646f776e5f67756591414000736875748e1000081080000a1868001001000000, +1080000391414000010000008e10000880a1e00218680009901000078f5400009010000391d02014010000008e10000880a1e00218680006c60860008f540000, +88012008c870e0003667d50783414000c858e00080a12180c6d8c9e08600e110c6f109e086102020c658a0108810202891d02013901000070d0a000090022004, +c258a018106800358600c002c458e0088420a008c470e00024f094fb834140008600e110c458e00086102020c6d8c9e0106fd9c38f41400088010003c4712000, +616e643d30780000636d643a20737472635f67756573745f9141400070616e698e100008108000091868000f010000008f54000080a1e0028f41400083f00000, +18680009010000008f54000080a1e00291d02014901000078e1000089010000318680006010000008f54000080a1e00290100007c60860009002200491d02013, +82102020c2d849e01068004e8f414000106fd98b8f41400088102028c6f109e090100007c658a0109002200491d02013914140000d0a00008e10000810800003, +00000000000000000000000000000000000000000000000000000000000000000000000000000000106800128541400010bf9f27c0704002050000058410a368, +8929300c8931300c88012001c87166b0cad949e0c85966b0c230a0268a1020208400a00b8428a007000000000000000000000000000000000000000000000000, +c070a018c020a02088102020c820a01488102004c820a01089460000c870a00888114004c870a0008b51c0008b2970348b29703488114004ca0960008b297004, +86102020c6d8c9e0106fccd48f41400088010003ce71200088012008c870e0003667d48d83414000c858e00080a12180c6d8c9e08600e110c030a02486102020, +00000000000000000000000000000000106800128541400081c1e004010000008600c007ce58e0088e21e008ce70e00024f1d481834140008600e110ce58e000, +8a102020cad949e08400a00b8428a007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +c870a00888102005c870a000894600008b29703488114004881140048b51c0008b2970048b2970348931300cca096000c87166b08929300cc85966b088012001, +c870e00088010003834140008801200880a121803667d4488600e110c858e00086102020c6d8c9e0c020a020c030a024c820a014c070a018c820a01009000000, +c2d849e007000005ce58e00882102020ce70e0008600c007834140008e21e008ce58e00024f1d43cc6d8c9e08600e1108f41400086102020ce712000106fcd1c, +10bfa15e0100000084102001c470e00086004003c870e0088649601082006018c858e000ca09201c010000008600a010c870400381c1e0048610e36888102001, +4f52543a20000000834140000d0a4142010000001080000580a1400102680047c2d849e0ca592010306fa15882102020106800038f4140008600a010c858e000, +6d6d6f6e5f636d6472632f68765f636f636f6d6d6f6e2f7361746c616b65732f2e2f2e2e2f677265834140002e2e2f2e8f4140001080000e8200600410bfd7ff, +10bfd7fa8f414000821021848210000110bfd7e68f41400078000000820060042c206c696e652030108000058341400010bfd7ee8f414000732e730082006004, +74207363686564752076637075206e6f6c6520637075202d64657363686564751080000f8341400010bfd7dc8f4140003a200000820060041080000383414000, +8341400030bfd3d410bfd7c48f4140000d0a000082006004108000038341400010bfd7ca8f41400000000000820060047920737472616e646c6564206f6e206d, +8f4140008f902000c258e000106800098600a0108410000181c1e0040100000084102001c470e00805000000c470e0008200601886004003ca09201c86496010, +c870e00088010003834140008801200880a121803667d3b88600e110c858e00086102020c6d8c9e010bfa0f80100000084102028c2f089e0a190200082102001, +c65860e88600e020106fa1358f414000106fe68b8f414000c470e008c4586000c470e000841020018601400305000000864920108a00a018ce712000c808601c, +ccd989e08c01a110010000008c102020ce58a00881c1e004ce70a00084008007834140008e21e008ce58a00024f1d39ec4d889e08400a110c67060d884102020, +834140008e01e00880a1e1803667d3868c01a110ce59a0008c102020ccd989e08e01c006c471e0008e01e008ce71a0003667d39183414000ce59a00080a1e180, +82100008c45860108e01c006c871e0008e01e008ce71a0003667d37b83414000ce59a00080a1e180ccd989e08c01a110c671e0008c102020ce71a0008e01c006, +8c01a110c659a0008c102020ccd989e08c018004c859a00888212008c871a00024f1136d834140008c01a110c859a0008c102020ccd989e0106fffb68f414000, +8c018002c459a0088420a008c471a00024f09359834140008c01a110c459a0008c102020ccd989e08c018003c659a0088620e008c671a00024f0d36383414000, +a19020008f90200088010003c471200088012008c870e0003667d34b83414000c858e00080a12180c6d8c9e08600e110c458a0108610202081c3e00801000000, +106fa06e0100000040002cb4921020028600c008d058e00890222008d070e00024f2133d834140008600e110d058e00086102020c6d8c9e0106800108f414000, +8410a00182004002820040020500003e050000068410a15882102020c2d849e0818000009190200f939020009d902000979020009b9020009590200699902007, +9010000ad5f21009d5e2100981c3e00881c3e0080100000010bfd7088f41400001000000821000089c007f5081c1e0049c1000009e100000bc100000be100000, +90103f002f03dfff81c3e0080100000090102020d0da09e081c3e0089010000b1267fffc01000000d7f2100a80a2800b96100009d45a000081c3e0089010000a, +80a220001c6ffff902ca0043ea5de00002600075a6102200d045e00880a23fff90102001d025e00892126220ae05c009ae1a001713000006ae1dfc00912a3020, +61746c616b65732f2e2f2e2e2f677265834140002e2e2f2e8f4140001080000d8200600410bfd6d94f52543a20000000834140000d0a41420100000010800005, +8200600410bfd6c16e65203078000000834140002c206c698f414000108000058200600410bfd6c96f61642e7300000072632f626f6f746c636f6d6d6f6e2f73, +6f776e6c6f616420834140004d4420648f414000108000098200600410bfd6b7834140003a2000008f414000108000038210000110bfd6d58f4140008210206c, +30bfd2b5a21000008f414000834140008200600410bfd6a5834140000d0a00008f414000108000038200600410bfd6ab627920535000000061626f7274656420, +a2020011a2024011d015e00ed215e00c91323030a2020011a2020011912af030912af0209132303091323030a2020011a2020011912af010d65de0009132f030, +aa056008a6a4e00891323030a2020011a2020011912af030912af0209132303091323030a2020011a2020011912af010d67540009132f030a805e020d65d0000, +d425e00881c1e0049412801110bfff8bd415e00e952ab01093326010a21c4009a202001192202001a33460100afa3ffd91346010a32c6010126ffff1a8052008, +19000036941ae200400000029e10000f8210000f1700000200000000000000000000000000000000000000000000000001000000000000000100000081c3e008, +da70e0008600e0109620000d9a02800b82010002da5860200b00019b8419637086022008d45a2008d25a200802c240139e1000019001000a980322208803000f, +00000000000000000000000000000000000000000000000081c3e008010000000afabff89a02800b8600e010d458e0009802800bd870e000d458e00002c28007, +a935e010a60d0015fa72e018ee0760002d00003faa05a3ffb01e637096048018ba100018a406800f3300019bb406a18c9e10000f350000369de3bf5040000002, +9004800581c7e0088a1a22e040003387ba102004b13f6000ba1020041100001f808860012260001d84048003c258a000090000038619239080a4e00102400010, +b606e010d0744010b8072010e25ee0009010001d40000027a002e148b610000ab802a008d25aa008d85aa00802c3000e9a1be2009404800d81e800001f000002, +8210000f1b00019b00000000000000000000000000000000000000000000000081e8000000000000b13f600081c7e0089010001dba102000d25f20000afa7ffa, +00000000000000000000000000000000d072601000000000d05a601881c3e0089e1000019202800b980320909403000f19000036961b6370400000029e10000f, +12400019941020009a00c00880a1400bca4a6000d648c0088739200090008005ca022004840220100440003588102000c202200880a060000000000000000000, +d648c00c9a00c00c80a2e000873aa00080a2c003024ffff99a0360019402a001c64b6001d648a0000240000e8400a001961000058410000980a160009810000d, +d84b60019a036001024000089402a001d84b600080a320000240000c9a0360019012c00d80a2e0009b39200081c3e008833aa000972870301080000880a2e000, +0000000000000000000000000000000090103fff000000008739200081c3e00880a10001064fffd48801000a88012001124ffff89a0360019402a00180a32000, +ab7e4415b37e440f99352004ad36b030ba05c00f9e100015ae05e344b610001aaa062010e80620049e10000f2f0000359de3bf50400000020000000000000000, +c806600c81c7e00880a0401632480004c806600cc20e600180a7001b3240000880a72020f806600480a7204e12400011ae03c00af80e6000952b3004ac0da0ff, +b210200080a72000f80e60001080001480a640172a6fffe980a640150a60001712400009b20660101080000580a640158528f004b200801591e8001987392000, +81c7e00891e80019400032d8933f2000b2102000900740123300001fa41e63082260000bb2102000ca5a200080896001a01c6390900740100240001023000003, +81c7e00891e80019a6062010b21020009de3bf500ac6400500000000000000000000000000000000000000000000000091e8001900000000b210200081c7e008, +81c7e00891e80019b6050013f6772000126ffff790100018ea5d001380a5401bec5a2008a92db00402c2000cb21000084000002a9410001a9010001892100019, +b13de00081c7e008f05a2008f076e00002c20007ae1020014000001494168019393b0000b32f301f921000199010001891e800199de3bf50b210200081c7e008, +0240000f80a16045ca0a600080a1600000000000000000000000000000000000000000000000000081e8000000000000b13de00081c7e00881e80000ae102000, +81c3e0089010000d9a0360109a10200080a26045124ffff880a260000240000401000000d20b600080a2000a026000099a036010d05b60000240000d9a100009, +2b00001fb806c00fb606e0f4ee062008fa062004b40620109e10000f370000359de3bf5040000002000000000000000000000000000000000000000000000000, +22400056a20460100240002b80a360201640000880a360001640001180a36045b007001480a36061a006c017a205bff0b606801da81d6358da0e6000ac264018, +22480036d80660040240001d80a360641640000880a36061a73c700380a36073c80660041080004680a3604e2248001480a36045024000211080004da73c7003, +a204601095387004b2066010820440029201001b8530f03ca73c7003873c7003d00660041080003680a360762248001d80a36073024000271080003da73c7003, +4000323690062010b20660109201401ba2046010d45e600881e80000ca06600481e800004000323db0063ff84000323f10bfffd5da0e60004000324490063fe0, +9202401b94028010d406600cb2066010d2066004a204601010bfffbfda0e600090062028a2046010b20660104000322fd45e60089202001b10bfffc7da0e6000, +900620709e044012da0e6000a534f03c9006204810bfffac9402c0104000321bb2066010a2046010d60660089203001b10bfffb5da0e60004000322490062038, +9de3bf3040000002000000000000000000000000000000000000000000000000da0e600000000000b206601010bfffa240003212933b6000a2046010953bf004, +9010001c7ffffee3b4066018d45e6148aa1da390f85e60182d000003ae1e20e031000020b206c01ab41f6370b607000f3b00019bb80723149e10000f39000034, +9607a7f79010001c01000000d45ea3f890053f187fffd0b101000000400031eb808a600102600004ba100008d25c2000a006c0150ac2000a92102000a806c017, +80a2a0010260000ed85fa7f7953330207fffd0a201000000400031dc90053f380260000401000000d65c2000808ae00180900008124000097fffff339210001d, +808da0012260000901000000ec5c2000921020017fffd0919006c013400031cb2b000020a61d6048808b6001026000069e06c011da5be00025000003a21ca390, +12400003961000179210001d809000089010001c7fffff08ae07a7ef9607a7ef90053fc0d45ea2f095363020400031bfb12df0209335f020d45ea2f0ee5fa7f7, +c476a0b87ffffef49010001cd45ea210c077a7efc45fa7ef12400003961000179210001d80900008c276a0b07ffffefe9010001cd45ea208c077a7efc25fa7ef, +b2102000f25fa7ef80900008024000057ffffee99210001dd45ea300c876a0c0c85fa7ef9010001c86102001c677a7ef12400004961000179210001d80900008, +8b2a3007ca76a41890228009d45ea3e896100017952a7004972b30029222c0199b2bf00598034019a32e70079e044019c077a7eff276a0c810800004f276a0c8, +80900008124000047ffffec79210001dd45ea310e676a0d0e65fa7ef9010001ca4103fffe477a7ef12400004961000179210001d809000089010001c7ffffed2, +9807a7e79022c00a9803400a972b3003944bc0119b2ab004c45ea138ec5ea180de5fa7efb128701f8729301f03270000ea77a7efe25ea0c809308000aa10201e, +4000315690053ff00260000401000000e45c2000808ca0019210001d0ac20009f276a4d87ffffe939010001cb3297007961580188a02400894108003932a3002, +7ffffe7c9210001d941600019614c0159010001cc676a108e65ea150ab2db01f8328b01f9807a7e72d270000f05ea138c65fa7e7053080007fffd01c01000000, +9010001cf25ea340d25ea1388b2a301f173080001127000001000000d85fa7e7901000147fffd005010000004000313f80892001026000040ac20009c85c2000, +2b30800025270000da76a118de5ea160da76a118da5fa7e79a102000108000049210001d0ac20004961640057ffffe659412400a9807a7e7952af01fd876a110, +ec76a0f8d45ea320ec76a0f8ec5fa7e7ac102000108000049210001d0ac200049414c0147ffffe539010001c9613c0119807a7e7a32cb01fe65ea138a92d701f, +80900008124000037ffffe579210001dd45ea328f076a0d8f05fa7ef9010001c96100017c077a7ef80900008124000037ffffe619210001d961000179010001c, +c876a510c676a408c85fa7efc45c200007000040c077a7ef80900008124000037ffffe4d9210001dd45ea3f0c276a0e0c25fa7ef9010001c96100017c077a7ef, +d076a4d00260000b80896001912a7001972ab0029222c00ad45ea0c8ca5c2000400030ee90100019981b60f0b206c00c1b000020130000408088a00102600014, +c076a4c8c076a128961000179010001c9e103fffde76a4f0a52cf001e476a4d0b72d3002a626c0149e103fffe85ea0c89006601810800008d25ea4d0400030e3, +0000000000000000000000000000000081c7e00881e80000e25fa7efe274200002400004010000009210001d80900008d45ea2e07ffffe20c076a508c076a0e8, +9a1be390a40440121f000003a41d218029000020aa044016ac1f6130a205c00f3b00004bae05e2049e10000f2f0000339de3bf40400000020000000000000000, +090000469404e03090103fffc604e0009004bfa07fffcf7101000000400030ab808de08002600004a6056030ee5d200080a420090a40000ae0056030a804400d, +99372000d873a8b7da73a8af9004bfb8ba2762009b36a000ae02000a0260001780896080912c3007a138e000ba044013d624e000a6192330ca5d20009600e001, +108000050100000040003088901000120260000901000000e25d2000808c608080a6e2000240000e4000309094100017993660009b36e0009338e00097362000, +de5d20008205e080ab2c3009ac0762000240000ff825e008f625e00cf425e010808ea001f025e00490103ffff225e000f025e0047fffcf4980a6e20022480026, +c075e068b200c004c45d20008807700002400022872c30099004a030808ea004808ea0044000306dc275e06002600020d275e058808be08092054016c075e050, +92076200c075e050f825e008912c3009f425e01002400009808ea001f625e00c81e80000f225e000b004a0484000305fc075e07802600019f275e0708088a080, +000000000000000081c7e00881e8000096030013d675e070a6077000c075e078992c3009c075e068808ea00402400007ca75e058d475e0609405e0808a020009, +aa1da258b40700152d000020ba07001ab41f6390b806c00f3b000003b606e3fc9e10000f370000329de3bf204000000200000000000000000000000000000000, +921aa370900700091500019b9607a7f77ffffdac921000190260000490100018ca5f60008089608040003030921000190260000a9006bf88ee5f6000808de080, +90103fffd45efff09006bfa07fffcedf0100000040003019808ae0010260000412400009d65f60009210001980900008901000187ffffd70d45a2250b6022250, +d45ee0c09607a7e77fffced090103fff4000300a9006bfc00260000401000000d85f6000808b200180900008124000097ffffd61921000199607a7ef90100018, +9607a7df9010001890103fffd45ee0309006bfe07fffcec10100000040002ffb808b60010260000412400009da5f60009210001980900008901000187ffffd52, +02600016d45ee028e05fa7e7808c200a7fffceb290103fff40002fec9010001a0260000401000000de5f6000808be00180900008124000097ffffd4392100019, +40002fd69007001833000020b01e6278808c600102600005a4070013e25ca00029000003a61d239080900008124000107ffffd31921000199607a7d790100018, +000000000000000081e8000000000000d807a7db81c7e008d207a7f37fffff09d607a7e3d407a7ebc077a7d7d007a7fb10800004d007a7fb7fffce9c90103fff, +ac0680172b000003ae1e2370b61f61303100019bb407000f3b00004bb80721fc9e10000f390000329de3bf404000000200000000000000000000000000000000, +921000191103ffc390073fa840002fa7808ce0800260001ae65da000c0266030ac068014b8068011a21ca2f0f275a0b825000020ae05a0b8b206801ba81d6390, +96066002952af00c3303ffc392103fff0260001490073fc0c8766010c6766018808f6080861121008929700cd47660088a022002d4766000fa5da00094103fff, +901020029210200296132100d6766018992b700cd87660109a03e002e0766008a0103fffe0766000901020021f03ffc396103fff1080000c9812a10040002f93, +921020000ac2000a901000157ffffc65ea5dff60d45de0907ffffeba98102000941020359610220090102003921020027ffffec0981020009410203596102200, +a52cf01f9613400f9f2c301f9807a7f7273080002127000001000000da5de0d09010001c7fffce350100000040002f6f808b200102600004a2100008d85da000, +0260000e05000020e85da000808d200102c2402dd275e06001000000c077a7f7d25fa7f71080000302c20005921020007ffffc98921000119413401290100015, +0b270000912ab01fc65de0d81530800090100015d25fa7f7c65de0d87ffffccdd25fa7f722600006f05da000808e200140002f5290068001d25de0608218a310, +d25fa7f79810001c7ffffef890100015d077a7f7d25fa7ef9610001d02c2000e9410001b7ffffc7390100015ba10c004b807a7ef8929701f9807a7efb610c008, +00000000000000000000000000000000000000000000000081e8000000000000d25fa7ef81c7e008d077a7f72afa3ff77ffffc689610001d901000159410001b, +02600011a2062130ea5da000808d6004b21ea370b00740193500019bac074016ac1de390ba06c00f2f000003b606e38c9e10000f370000319de3bf4040000002, +e65c6020f85c60009210001c10800006901000177ffffc8b808b60040260000902c7002bda5da00090074009f85c6000921aa32840002f1115000020ee5c7ee8, +9410001b7ffffc2bb413c01190100017a32cb01fb207a7f7b614c0149807a7f7a92f701f9210001c25270000de5c6238e65c60203b30800002c70021ee5c7ee8, +d25fa7f781c7e008b81000082afa3ff77ffffc209610001a901000179410001b9210001c981000194000001e90100017b8100008d25fa7f79610001a02c20014, +0000000000000000000000000000000081e8000000000000b007400c40002edb81e80000981c23402100002081c7e008808ae0011268000481e80000d65da000, +a005e3a07ffffc1490100018d45de3a09607a7f7ae07001ab41f6370b806c00f3b00019bb606e2449e10000f370000319de3bf20400000020000000000000000, +9006fe30c45f60000100000040002eb7808860040260000ab6070017c25f6000ba07001dae1ea138ba1ee39035000021024000dd370000039210001980900008, +0260000401000000c65f60008088e00180900008124000097ffffbfb921000199607a7ef9010001892100019d45c3fd0901000187ffffc338088a00402600004, +961b23b040002e950260000519000020ca5a200080896001921aa390900700090a60000d15000003c85fa7ef80a120017fffcd6a0100000040002ea49006fe50, +80900008124000097ffffbd7921000199607a7e790100018d25fa7efd45c3fd89006fea040002e8d808b60040260000401000000da5f60009007000b7fffcd5b, +ea2d0013b404c014ac068017a92db004b52df004e65c3cb0ee5fa7efea0fa7f67fffcd460100000040002e809006feb80260000401000000de5f6000808be001, +80900008124000097ffffbb7921000199607a7df90100018e85f6000d45c3fe0c076a0c81080002e80a4600222600028e25fa7e702c44006e40fa7eee42ea0c0, +9b2b30039603400c9f2c70039803c009a52a7005a2224012d25fa7dfc85c3c887fffcd260100000040002e609006fee00260000401000000c25f600080886001, +808ce0040260000dd45c3fe8e65f6000d25fa7df108000129006ff0840002e4b8088a00402600015c676a0c8c45f60008b2a300686010005952af0019022400a, +901000187ffffb84d45c3fe89607a7d77fffcd020100000040002e3cd25fa7e7026000049006ff50d45c3fe8808d20049006ff301080000a0100000040002e43, +03000003ae18639080a5a1000a60000d01000000ec5fa7d79006ff707fffccf30100000040002e2d808d60010260000412400009ea5f60009210001980900008, +40002e16d25fa7d7026000049006ffd0c85f6000808920047fffcce40100000040002e1e90070002070000218418e0d8808e200102600005b2070017f05e6000, +0260000623000021d45ae000808aa001981b63909607000c1240000e1b000003d20ea0c080a2600232600022f25f6000ca5fa7f780a16001d05fa7d7d076a0d0, +e45f6000808ca004e876a080e676a088a8070015f0742138a6043c60aa1dbc342d000039f05fa7ef7fffccc80100000040002e02010000009e1c61109007000f, +f82ea00181c7e00801000000b8102001d25fa7f77fffccb19006e01840002deb808e6004026000041080000ab810200140002df29010001b0260000eb8102001, +ae1e23909607000f31000003b807226c9e10000f390000309de3bf404000000200000000000000000000000000000000000000000000000081e8000000000000, +f65ce110808be1009002c00cde5de000981b617040002dc9a60660181b000021808da00102600006ec5de000f85e6018b61f6370b202c01b3b00019bae02c017, +9210001b9410001827270000a52cf01fe25ce158b0150015a007a7f79010001cab2eb01f9807a7f79210001be85ce1389010001c7ffffb430260000535308000, +ba1000082afa3ff77ffffade961000199010001c941000189210001d98100010400000149010001cba100008d25fa7f79610001902c2000eb21440127ffffae9, +2d000003b606e1649e10000f370000309de3bf204000000200000000000000000000000000000000000000000000000081e8000000000000d25fa7f781c7e008, +9607a7f72b00002192100019d45ee350901000187ffffb0b02600005b605e088e85da000808d2100b41f6370ae07001a3b00019bac070015aa1da390b806c00f, +01000000c25fa7f790057de87fffcc3f0100000040002d79808b61000260000412400009da5da00080900008aa07001d7ffffad19210001990100018ba1d63a0, +d05da000808a21007fffcc300100000040002d6a900700120b000021a41961b0808aa1000260000584070003d458a000090000038619239080a060200a60000d, +a623c00c972cf003a02300119f2c3004a8200017a32d3001d45ee1c0ae06800cd25effb0b52b3003d85fa7f79010001840002d62d25fa7f70260000490057e38, +da5fa7ef80a360207fffcc100100000040002d4a90057e500260000401000000fa5da000808f610080900008124000097ffffaa192100019b402400b9607a7ef, +d05effb8832cf00601000000e65fa7ef900700047fffcc01881ca21040002d3b0260000525000021c25aa000808861008418e390940700020a60000d07000003, +90100018d45ee1b08a020009ca76a010932af0039607a7e7992bf00296230013a12c70019e24c010af2d3003a205c014bb2b7001a824c01dc02ea01c9a204013, +09270000c076a140d20fa7ee113080007fffcbe20100000040002d1c90057e900260000401000000d45da000808aa10080900008124000097ffffa7392100019, +0260000401000000d65da000808ae100921000190ac20009941480057ffffa41e45ee0d096108003d22ea01dc45ee1188729301f901000188b2a301f9807a7df, +0100000040002cf5808b21000260000412400009d85da0009010001880900008d45ee3507ffffa4cd25fa7df9607a7d77fffcbca0100000040002d0490057eb0, +40002ce6900700173b000021ae1f62b0808c210002600005a2070013e05c600029000003a61d239080a3e0200a60000d01000000de5fa7d790057ee07fffcbbb, +d25fa7d7c25fa7d790057f4040002cd7808b61000260000412400009da5da0009210001980900008901000187ffffa2ed45ee1e09607a7cf7fffcbac01000000, +e4720005ae0140089224800b912a70069804000f972b30019e044012a12bf003a6248014a32cf003ca5effa0a92cb005fa2ea01ee45fa7d7c277a7cffa0fa7d6, +40002cb696100017d45fa7d7d25fa7f70260000690057f80c45da0008088a0018605c004f470ebd8d45fa7e7892ab00340002d52921020289006a950ee76a000, +01000000da5ea0e8961022ea7fffcb6f9410001540002ca990057fb092057fd880a0400202600009c25dc003c45de05086012248da76a0e8da5de05009000009, +97396000da5ea0e8d45be00040002c9790070008d206a018901a63c0d85dc00b96032248ca0ea01dde5ea000130000210260000e19000009d45da000808aa100, +b8102003f876a06081c7e00881e80000b2102001f276a060808c001102600005e05ee000a32c90139010001ae607a7f3a410200140000015b0036020f076a0d8, +b80720ecb41f63703b00019bc07620f09e10000f3900002f9de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e80000, +94102000a73aa00080a000091a600017ee76a000d25ea00040002cfc9010001aae102003f2762008b206c01ab40622d0c02e294092102670c07620f8b607000f, +d6732020da732010d6732028da5e20d8913aa000de7320189804401ad6732008a32cb0039e142400a4050013a12a3028a92cf0029402a0019010200096102000, +c0762168c07621b8c0762178c0762158c07621b0c0762198ea76a240ea76a258ac10200fec76a1c8d276a0f8aa1020060a6ffff0a73aa000d25ea00080a20009, +000000000000000081e8000000000000c076208881c7e008c0762128c0762138c0762108c0762118c07620f0c07620f8c0762240c0762248c07621a0c0762188, +b41f2370b207401a3900019bac074017ae1e2390ba06c00f31000003b606e3bc9e10000f3700002e9de3bf404000000200000000000000000000000000000000, +808a2200026000079207400ad05a6000ee5f2108941ae3909007400c17000003981b600840002c1db80660181b000022808d620002600012ea5da000f65e6018, +a12cb01f9010001bb414c014b007a7f7a92f701f9807a7f725270000de5f2188e65f21383b308000e65f2138ee5f210892100017108000049010001b7ffff995, +7ffff92c961000199010001b9410001a9210001198100018400000149010001ba2100008d25fa7f79610001902c2000e9410001a7ffff937b213c01092100017, +9e10000f2f00002e9de3bee04000000200000000000000000000000000000000000000000000000081e8000000000000d25fa7f781c7e008a21000082afa3ff7, +a203e36890100018808b620002600005da5c2000b80740159e074011aa1da300a21ca3702d0000222500019ba0074013a61d2390ba05c00f29000003ae05e29c, +90073d207fffca8d0100000040002bc7808ea2000260000412400009f45c20009210001980900008901000187ffff91ed45c60709607a7f77ffff95692100019, +7fffca7e0100000040002bb8900740052d0000228a1da048808862000260000584074003c258a000090000038619239080a3e0200a60000d01000000de5fa7f7, +a402400ad25fa7f7952af00602600006992b70019624800cab2df0039a054017a92cf003ae050012a624801b808a2200b72cb005d25c7cc0e45fa7f7d05c2000, +026000060b000022de586000808be2008418e390820740029010001207000003d45c7e68400003ad80a6a0ff3240001594100012f404a01090073d7040002ba3, +80900008124000097ffff8d7921000199607a7ef90100018c024a010d45c7e684000036a90100012400003de9010001240002b92d25cade88819608890074004, +d45c7e607ffff8c4d2748008901000189607a7e79005a250d25fa7ef2d0000097fffca460100000040002b8090073da80260000401000000ec5c2000808da200, +293080001b270000b605a258a6103fff01000000f45fa7e790073dc87fffca330100000040002b6d808aa2000260000412400009d45c20009210001980900008, +7ffff88c961000139807a7df94100015aa15c015a612c00ca8102000d65c7e78ee5c7de892100019992b701f90100018b607a7dfe674a050f474801bab2d301f, +808be0010260000582074002de586000070000038418e390809000081240000d7ffff89d90100018d25fa7df9607a7d7b407a7c7d45c7f38ae10000802c20045, +9407400b9607a7cf961b2370901000181900019bda5fa7d780a200091a600015d25ca050d05fa7d77fffca080100000040002b42900740040b000022881960e8, +d45c7f289610001a82208003c274a060c45fa7cfc65ca050de5ca050de77a7cf32400005c45fa7cf9210001480900008d45aa2987ffff880da74a050e85fa7df, +92100017901000189810001bc874a05880a140041a600003ca5ca05888020009d25fa7c7d05fa7d722480002c077a7c79210001480900008901000187ffff872, +0ac5000dee5c200040002b08d65ca060d25ca050d45ca0580260000f90073e10d45c2000808aa0012afa3fc0d45c7f3896100013ae100008941000157ffff849, +7ffff845921000149607a7c79010001801000000d45c7f28d45c7f287fffc9c3010000002acd000590073e40108000040100000040002b01808de00102600008, +08600009e65c2000f45c801d80a6800bba05a258d65fa7c77fffc9b40100000040002aee90073e680260000401000000f65c2000808ee0018090000812400009, +e85c2000808d220080900008124000097ffff829921000199607a7bf9010001890103fffd45c7e8890073e887fffc9a70100000040002ae1808ce00102600004, +c074800dd45c7f80aa04800c9210001990100018c274800f9a05a2989805a290c25fa7bf9e05a2207fffc9980100000040002ad290073eb80260000401000000, +960480037ffff804d45c7fe890100018901000128605a270ca7480044000013bc4756000ca5ca0508805a24884103fff80900008124000047ffff81396100015, +901000187ffff7f4d45c60609604a87080900008024000097ffff7fb92100019d45c6058901000189005a270c0748008124000049604a8689210001980900008, +b52af016f474a870d25ca8681700010090073ed840002a99808a620002600004d474a868d25c20002f000040952df01632400015d45c7f489210001980900008, +124000051b00000992100019809000089604801d7ffff7d890100018ba04e260d45c7f482700000940002a90d25ca8700260000490073f08f65c2000808ee200, +c074800fac00a280030000099e006268124000050500000992100019809000089604800c7ffff7ccd45c7f8890100018c0748014980362682b000009a8056260, +960480057ffff7b4d45c7f5090100018c07480038a022278090000098601228012400005110000099210001980900008960480167ffff7c0d45c7f5890100018, +c074abc8b404ae1012400003ba1020009210001980900008901000187ffff7aac0748009d45c7ec8150000099202a278124000059604abc89210001980900008, +c02efffd80a7601cba076004b606e004b604adf0c02ee000c02ebfffba102000c02ebffe044ffff9c02ebffd80a767fcba076004b406a004ed6ea102c02ea000, +90100018a72d301ff65c6088b52af01f172700009807a7b790073f38fa5c7de82930800040002a3d808de00102600004c02effffee5c2000c02efffe044ffffa, +0260000401000000ea5c2000808d600180900008124000097ffff77b901000189607a7afd25fa7b702c20015d45c7f707ffff76892100019941740139616c01a, +053080009b2bf01fd85c60901f27000001000000c25c7de8c25c7de87fffc8e39010001210800005d25fa7af40000a3f7fffc8ea0100000040002a2490073f50, +12400009c65c20009010001880900008d25fa7b77ffff758d45c7f709607a7af9210001902c200159807a7b77ffff7459613000d9410401690100018ad28b01f, +c85c7e20153080007fffc8c00100000010800005c85c7e2040000a4a9010001201000000d25fa7af90073f787fffc8c70100000040002a018088e00102600004, +d25fa7a7b612c014a92d701f27270000d65c7e282b3080009210001902c20034901000187ffff72394110009961100059807a7a78b2a301f11270000932ab01f, +90100018809000089607a7977ffff726d45c7f10d25fa79f02c20025d077a7a77ffff71496100017901000189410001bb407a79fae12c01d9807a79fbb2cf01f, +d25fa797de07a79b90073fc0400029c7808b60010260000490103fffda5c200090073fa07fffc89501000000400029cf808b20010260000412400009d85c2000, +8088620002600005d45c7f10c25c2000d077a7a72afa3fe07ffff6f296100017901000189410001bd25fa7a79810001a4000096c9410200990100012933be000, +c45c6000921000198729301fb407a78f9807a78fca5c7de8d674800a912a701f940322a009270000190000091330800090073fe09610210096102100400029b3, +9010001894100017921000169810001a4000004892100018d45fa78f9010001202c2000fac1000087ffff6d69610001bb610800394100017ae11400890100018, +000000000000000081e80000000000009010001c81c7e008010000004000298b808c220002600004d45fa78fe05c2000ac1000082afa3ff67ffff6ca9610001b, +ac05e3fff206e000f65e001a2f00003fb40762208606c00f3b000009b606e0fc9e10000f3700002c9de3bf504000000200000000000000000000000000000000, +7fffc82e01000000400029689000c00a17000022941ae31880892001026000058a00c008c859600013000003901a639080a520010240000dab366010a80d4016, +0000000000000000000000000000000081e8000000000000da76000c81c7e008a204a0109a040011e406e00ca004c01cf806e0089803e228e606e0041f000009, +2b000022a41ce39090100019270000039607a7f7ac074017ae1ee370ba07000f3700019bb80720449e10000f3900002c9de3bf10400000020000000000000000, +90047f607fffc7fd0100000040002937808da0010260000412400009ec5de00080900008a20740149210001aae074012a005a3b87ffff690d45da370a81d63e0, +25000009d25fa7f78088a0010260000d01000000c45de000961026137fffc7f394047fe04000292d90047f9892047fc080a061000a60000801000000c25fa7f7, +0a680018d45fa7f7da5e000f80a3000d9e04a2a0d85fa7f71080000cde5fa7f73a60000ad45fa7f7c85e000580a0c0048a04a2a0c65fa7f74000292490100011, +f85de000808f200122400015d45c3fc0d60f200180a2e000992b7004b804c00c9a06c00fa606001db72bf004ba04a2b0d2760008de5fa7f79202a0019004a2a0, +124000ca01000000c60f200180a0e0008b2a7004b80100059202c00a88060008972ab0049004a2b081c7e00881e800004000290290046018026000d801000000, +01000000d45c3fd0900460307fffc7af01000000400028e9808d20010260000412400009e85de0009210001a80900008901000197ffff640d45c3fc09607a7ef, +c40fa7f6c42f20c07fffc7a001000000400028da900460600260000401000000ea5de000808d600180900008124000097ffff6319210001a9607a7e790100019, +d25fa7e71080002e90046090400028c78088e001026000311080002dea5de00022c5800bd45c3fc822600006c65de000ec5fa7ef80a5a001c25fa7e7c27720d0, +01000000ca5de000900460b07fffc77f01000000400028b9808920010260000412400009c85de0009210001a80900008901000197ffff610d45c20009607a7df, +992f70019624c00c9f2b7003ba03c00db72cb0039a06c013a92cf005a424c014e65fa7dfd25c3c70400028b0d45fa7e7900460e0d25fa7df8089600102600005, +901000197ffff5e4d45c20009607a7d77fffc762010000004000289c900461080260000401000000d45c2000808d6001d07720c81080000a952af0069002400a, +900461387fffc74d0100000040002887808e200102600004ec2f2003f05de00080a5a00202400059c22f2002ec0fa7de02400011821020019210001a80900008, +01000000400028758088a0010260000412400009c45de0009210001a80900008d45c3fd87ffff5cc9607a7cf90100019c0772008c02f20020100000010800050, +40002866900461800260000401000000c65de0008088e00180900008124000097ffff5bd9210001a9607a7c79010001901000000d45c3fe0900461587fffc73b, +ae06e2b8c27720409e072038a806001dc25fa7cfba06e2b04000285cd45fa7c7d25fa7cf900461a8026000063700010dc85de000808920017fffc72c01000000, +da5fa7c7da772098400007f29410200af407a7d3933ea000b2060012de764017e65fa7cfa52cf004ab2db004f8750015ec5fa7cfa207209090100018a006001d, +c0772068c0772070c0772010c0772018400007e49410200aca07a7cb93396000e272001790100018932ab00490060009f874000bd45fa7c7d85fa7c7972b3004, +00000000000000000000000000000000000000000000000081c7e00881e80000c0272078c027207cc0272024c077206084102001c42f2001c0772008c0272020, +4000281690010005110000238a1a21a8808c200102600005a2010012e05c6000a41ce3908805000f27000003a805238c9e10000f2900002a9de3bf5040000002, +ee72a000fa760019ee5e0019b4077fffbb3a6000b822a030b6027fffc02aa02592102fff9406000bda76001996032280b203e2a81900010d1f0000099a103fff, +000000000000000081c7e00881e8000081c7e00881e80000164ffff8b406bfffec772030f476001980a6e000ec5e0019b606ffffb8272030ed6f3f05c02f2025, +86197de0c0722d40c0722d38920262b4c0722d300b0000599e10000f1300002a0500004e40000002c0722d288210000f00000000000000000000000000000000, +c0722da0c0722da8c0722d90c0722d98c0722d80c0722d88c0722d70c0722d78c0722d60c0722d68c0722d50c0722d58c0722d488218a0308802400f9e100001, +c0722de09a008003c0722dd88729700698010003840b7fc09a02e03f8a028009952a7006c0722dd0d25a200096010001c0722dc0c0722dc8c0722db0c0722db8, +81c3e00801000000044ffff9d8737ff880a2e201d8737ff09a036020d8737fe8d87360009602e0049a036008ed6b6110d873600096022001da722de890102000, +9de3bf50400000020000000000000000000000000000000000000000000000004000283e9e1000019002288092102100c07228788210000f81c3e00801000000, +d05f6010d0776010d077600040001f8d40001f900100000002c60015d05f6000ba068019f05f6000b21ee398b407000f37000003b80721949e10000f3900002a, +81e80000000000000100000081c7e008d05f60000afa3fefd0776028ba07603040001f84d05f6028d05f6020d0776020d077601840001f8740001f8ad05f6018, +b204c017ec5e6030ae1e2398a606800f31000003b406a0f49e10000f3500002a9de3bf5040000002000000000000000000000000000000000000000000000000, +03000023a81da3902d0000038404c00309000003861923982afe3ffbaa056030f05d6060aa05603002c6c00709000003aa056030f65d603002c5800aaa100019, +9fc1400090102001ca5d6028aa2560304000275ad25d6000026000049006ffb0d05f2000808a200180a540180260000eb000bfd0b604c017b804c014ae186258, +9fc30000901020029006ffd0d85ea028d25ea0004000274922600006d85ea028d45f2000808aa00102c24031b4100019d05f2000d25e600080a54018386ffff6, +e25f60289fc44000400027389006ffe8e25f6028d25f6000808be00122600006ba100019de5f2000da5e600002c340202afafff5d45f2000b406a030d65ea000, +ea5e60289fc54000400027289010001bea5e6028d25e6000808ce0012260000602c4800fe65f2000de5f2000e45e6000e05f60002afc3ff590102003ba076030, +000000000000000081c3e008da22201cd2222014da2220189a103fffc022201081e80000c0722008e65f20007ffff3b9e85e60002afd3ff590102004b2066030, +ba040016b4062008a007000fb610001aac1de390ee5e20082f000003b807233c9e10000f390000299de3bf204000000200000000000000000000000000000000, +e606a00880a4e02002400048b802e02880a6e000960400139004000aa61f2370941da270400026fd2d000023d25ea000026000073900019bea5f6000808d6001, +b0008001a92e30018200c01385287003aa24c004872d7003892cf005de5f200081c7e00881e80000b4102007b13ea0007fffffd5921020010a60000890100019, +900724e8d25f600081e800007fffcf42b13ea00081c7e00892102001b4102007901000197fffffc080a320ff124000089a03c011d8036010a424c014a32cb006, +010000007fffcf3a80a580130260000b01000000ec5f24e080a2bfff0260000f90040005d45f24e08a1a2280400026cf11000023d25f24e0808a600102600006, +a0103fffe07724e0d45f2120b13ea000b4900008224000227ffff3189010001781c7e00881e8000092102001b13ea000b41020087fffffa4900724e890100019, +7fffff899210200190100019b41020087fffcf1f900724e80260000b01000000d65f24e080a2ffff7fffcf1b900724e881c7e00881e800007fffcf29900724e8, +7ffff38492102000d45f21209010001781c7e00881e8000002400004b13ea00090100017b4900008900724e87ffff2fb81e800007fffcf16b13ea00081c7e008, +921000089607a7f781e80000d45f23e89004001381c7e008a61de2a84000268bb4102004b13ea000b41020042f000023808ea001226000c50ac2000df45f6000, +9004001c81c7e008b81e62c840002677b4102005b13ea000b410200533000023808f6001226000b1e25fa7f7fa5f6000809000083240000e7ffff3d390100017, +400026669410000c90100011921020012260009eb4102005f65f6000808ee0012260000ee45f6000a204000d80a32001993470209a1be2f881e800001f000023, +b0040002c25e2000070000038418e3984000265a9210000ca92e30209535302090046050f05fa7f7808ca0010260000781c7e00881e80000b4102005b13ea000, +c85f6000d25e2000ca5d60002af97ff69fc20000aa05603090046080d05d6010d25d60004000264d22600006d05d6010c85f60008089200102c04078aa100018, +9fc68000901000179407a7e79607a7e3f45d60189207a7f34000263c90040016d25d6000ac1ae3880260000617000023d45f6000808aa00102c24068aa100018, +d25e20004000262522600006d85e2020d65f6000808ae00102c28050ac07a7dfd45f6000d45e2000aa0560302afa7fee01000000d25d6030b490000812400034, +ee766008e60620081080003d80a6e0002afc3ff1d65f6000e05e2030b006203012400008010000009207a7dbb4900008901000169fc30000900460c0d85e2020, +a8103fffe87724e080a6e0000240003b4000260a933ea00002600004900460d8da5f6000808b6001de07a7dbde26601cc0266018e4266014e6266010e407a7df, +10800004ee7660089a03c012a13b7004a93bf003a535303cf05fa7e79e26000102c3000a8205e01081e80000d85fa7e7900724e881c7e008b13ea0007fffce78, +933ea00080a6e000900460a8400025e78088a00102600004c626601cc45f6000c8266014c607a7e3c807a7f3e0266018ca056008ca266010ee766008a0102000, +400025d69210001302600004900460f0f25f6000808e600180a6e0000240000c81c7e00881e800007fffce55900724e8d07724e0b13ea0000240001890103fff, +0000000000000000000000000000000081e8000000000000b13ea00081c7e00801000000b4102000b41020007ffffe51900724e810800005e67724e07fffce48, +f05e650880a63fff7fffce2390100016b206801bac066510b61f6370b407000f3b00019bb80722049e10000f390000289de3bf50400000020000000000000000, +2300019bb32eb0059de3bf50b53e200081e8000000000000b13d600081c7e0087fffce2390100016ee75bff8aa10200010800004aa10200812600004ae103fff, +a72d3001d85be028a80580159205e3c09e06c0102f000115b607000fad2d7003b8072188aa05c01a39000028af2e3003400000029e10000fa01c6370b0268019, +d67720008605e308973ea000820122efd42720108a06c008901a6370941020ff1300019b0937ab6f400026209010001c9b2cb006b803000dac102000a4268013, +fa36401c81c7e008b205e350ba10200c044ffffc90100018ac05a00180a5a03f4000063ab006202090100018c2770002b0072068c27700038405e310ca772008, +9602e0a807000115170000289a1a6370400000029e10000f8210000f1300019b00000000000000000000000000000000000000000000000081e8000000000000, +9a0360109002000cc602201094020001892af001920160019b2b30018a1020008410000bd05a20288200e2b0993ae0009001000d9600e3c08802c00f9e100001, +8530f03f9002000c953060008620000a80a2601f8218a0ff92026001c4022010c16a000ded694004c62aa0008a02800b8a2000018731703f8418e0ff8330a000, +9de3bf404000000200000000000000000000000000000000000000000000000001000000000000000100000081c3e0088a01400b81c3e008c4296000044ffff5, +a405a01805000024808c200102600006e05ce000fa5da018ae1e2370ac0440173100019ba6044014a81d6390a207000f2b000003b80723d49e10000f39000027, +02600006b0102004c65920008088e0018a1a2390880440059210000811000003921020000ac200129010001d7ffff20d90044001d45ca1808218a01040002523, +9010001d9f2c701fd65ca1882527000023308000b807a7ef81e80000da5ca138c026e00081c7e008c076a000b13e2000400025129004400915000024921aa028, +b09000081240000c4000001e9610001b9010001d94100019aa100008d25fa7ef9610001702c20019941000167ffff235ae12c00c9807a7ef992cb01fac13400f, +81c7e00881e80000b13e2000f676a000b0102000f65fa7efd25fa7ef10800008aa1000082afa3ff37ffff226961000179010001d941000169810001c92100015, +2b000003f473a8af9e10000f2d0000279de3bed04000000200000000000000000000000000000000000000000000000081c7e00881e80000b0102000b13e2000, +c458e0008088a0018819639086074004900740080b000003901a6048400024cb0260000e13000024e45ce000808ca001ba05800fa6074014ac05a264a81d6390, +124000122b0000039210001980900008d45aa3d87ffff2089607a7f7a602a3d8961b23709407400b1900019b901000187ffff244921000190260000490100018, +81c7e00881e80000c0266000c026e000f25ba8afb13e2000400024ac9007401333000024a61e606002600006b0102004f45de000808ea001ac1d6390ae074016, +f45ba8afb13e2000400024989007400d1f0000249a1be08802600006b0102004e05d2000808c200180a720200a600010a41c6390a807401223000003f85fa7f7, +9403000b932ab00196068008992af0038088a001b52df003c65cfc50ae220016c45d2000ad2a300581e80000d05fa7f7c026e00081c7e00882102001c226a000, +d45cfe107ffff1c490100018e426e000e407a7fb9607a7ef4000247c9410001caa1d20b09007401529000024d25fa7f702600008b800c0048a22000989297006, +b0102008ba10200401000000f85ba8af80a6e0000240000901000000f6072010d45ce00002c4400dc077a7ef1080001032400005e25fa7ef9210001980900008, +b207401ce65e600031000003b81e23903240000ede5fa7e79210001980900008901000187ffff1acd45ce0009607a7e781c7e00881e80000b13e2000fa272000, +809000081240000d7ffff1979210001990100018d45cfdf8de7720009607a7df10800172b610200240002450900740101b000024a01b60c8808ce00102600176, +9607a7d79206e2b8d45fa7df370001151080015eb61020024000243c90074005110000248a1a20f0808860010260016284074003c258a0000900000386192390, +ac1d6110400024250260014b2b000024d65b2000808ae001b41de3909807401a1240000d2f0000039210001980900008d45cfdf07ffff18090100018d4770009, +33000003a61e63903240000ede5fa7cf9210001980900008d45cfe187ffff16a90100018e4770014a806e2c09607a7cfb6102002e45fa7d79007401610800147, +90100018d45cfe28de77000d960700109a06e2d0a006e2d810800130b61020024000240e9007401c31000024b81e2130808c600102600134b6074013e25ee000, +124000059006e2e89210001980900008901000187ffff148d45cff109607000384103fffc47700018606e2e08206e2d880900008124000057ffff15392100019, +a806e318e2770012c0770009a406e2c8a2103fff9206e2e880900008124000047ffff13d92100019d45cff7890100018ca770004960700088806e2e08a103fff, +ac12800b94100017ae168017b41020009807a7c7d45cfe08f45cfd78972b301faf2db01f9210001990100018c0770015c077001419270000aa06e3202d308000, +80900008224000347ffff11790100018d25fa7c796100011a207a7bfa007a7afd45cfec8a806e318d073a8b7aa06e2c802c2004ca406e3207ffff10a96100016, +7ffff1059210001af45fa7c7d458629890100018c87700159607a7b782074002c85fa7bf8418e3701a6000150700019bda5fa7bf80a3400f33000003de5f0015, +80900008224800027ffff0f79210001a9610001090100018d0770012d45cfeb8d45f00159022400aca77a7b7d25fa7b7d25fa7b7ca5f00158090000832400005, +d073a8b72afa3fcb7ffff0ce961000169010001894100017d6770014d25ba8b71a6000039807a7c79603400f80a3000bda5fa7bfd85f0014c077a7afde5fa7af, +0ac6800d2f000003108000acb61020024000238a9007401c31000024b81e2150808c2001026000b0b6074013e05ee00001000000a61e6390d45cfec81080000d, +7ffff0c59210001a9607a7af90100018b6102002d45cfeb8900740011080009f8218a1784000237d026000a305000024e85d6000808d2001ac1de390aa074016, +b6102002ca5f0009900740191080008bb21f21a0400023690260008f39000024c65920008088e001b61ce3908807401b9206e2c027000003809000081240000e, +7ffff0a592100019901000189607001a81e80000b406e2f0b13e200081c7e008f0276000b0102004fa5ba8afb010200628600009d45cfed8d05fa7af80a14008, +c077000b980362801b0000099606e2f880900008124000047ffff09b921000199607001090100018c077000ad45cff18a006e2f89406e2f08090000812400004, +960700117ffff084d45cfee090100018c077000fa2052278250000099e04a280124000052900000992100019809000089607000c7ffff090d45cfee890100018, +173080008206e30080900008124000047ffff079921000199607001790100018c0770015d45cfe582d000009aa05a27812400005ae06e3009210001980900008, +881962288418e3900b000024070000037ffff050921000199414000a90100018952af01f96120009e05cfd78932eb01f352700009807a7a7c0770001d05ce018, +b610200240002305808ee0010260002bd85da000f65da000809000083240000a7ffff05d901000189607a79fd25fa7a702c2001ad45cff00b4074004ac074002, +29270000e45ce020ea5cfd78033080009a06e308de77000d90100018de5fa79fd25fa7a77ffff07f22600006de5fa79fb6102002808b20019006bf9810800027, +809000083240000f7ffff037901000189607a79fd25fa7a702c2001fd45cff007ffff024921000199614801190100018a32d301f94154017af28701f9807a7a7, +8088a0012260000681c7e00881e80000b13e2000f6276000fa5ba8afb01020049006bfc0b6102002b6102002400022df808f200102600005c45da000f85da000, +80a220ff124000119006bfe8d0072010f0072010400022c9808960012260000fc8770003ca5da000c85fa79f8606e3107ffff05490100018c85fa79fd25fa7a7, +1080005cb0102000ba102002fa2e801c21000009b406e2b080a620ff1248000810800006b406e2b0400022c09010001a2260000ab406e2b0d25da000808a6001, +aa06e2d0e85f001912600041b2042220de5f001880a3c011b006e2c0e25f001212600047a4042258d45f000c80a2800b9806e2b8d65f000d210000099a042250, +1260002f98042268c65f000580a0c0048a06e2f0c85f00081260003590042260ec5f000180a580178206e2e8ee5f00021260003b84042270e65f001580a4c014, +1260002013000003f05f001280a3401802600006a406e3a89e0422ef80a3400fda5f00112137ab6f12600029a206e308d25f000b80a2400a9606e2f8d45f000c, +80a040021260000ec45f2bc8c25f0003130000038606e30080a4c01612600015ae06e3b0ec5f001780a4c01402600006e65f0019a80562efb206e3102b37ab6f, +901a63908a074008b0102000130000039006a0401080000fb01020004000226b808b2001026000139a07400fd85b6000c02c401c9e1c2390a206e2b021000003, +000000000000000081e8000000000000b13e200081c7e008d62a801cb01020009406e2b096102004400022609006a020026000059406e2b0c859600080892001, +b41f62b8290001153b000024aa070016ac1de370b806c00f2f00019bb606e03c9e10000f370000259de3bf504000000200000000000000000000000000000000, +22400024a0042001de04601080a3600280a360012248000e80a360000240002880a360031640000bba0523c0da0c401aa0102000e25d6028b607001ab40522b0, +b2102004b13e6000e4262000e026600002400017a41020049006e02080a3e000a00420011080001480a360042240001d80a360030240000f1080001b9006e020, +9610220b7fffc0dd9406e05040002217a00420019206e0480100000010800009961022067fffc0e59410001b4000221f9006ffd09206fff881c7e00881e80000, +0000000000000000000000000000000081e8000000000000b13e600081c7e008da0c401ab2102000a2044013244fffd1a73f600080a4201f01000000a0042001, +a005a2b0b405a3c02b000024270000032d000115ae06c019b21ea370b607000f3500019bb80723049e10000f390000249de3bf50400000020000000000000000, +80a660010248001680a660000240001080a660031640000b1240003fae070010f20f001080a64018ba102000ac06c012a41ce390a206c014f85de028a81d6328, +808b20010260002790046080d85da000010000001080002580a660040248002380a66003024000161080002c9004608002400017010000000100000080a66002, +808b600102600004c02de000da5da0009010001c1080001cc02de000400000b59010001c10800020c02de00040000133933f60001080002490100011400021d3, +10800009c02de000400000449010001c1080000dc02de0007fffc08401000000400021be961022309204605894046060933f60009004603090046018400021c3, +81e8000000000000f20f001081c7e008b807000f244fffbc9f3ea00080a7601fc02de000ba0760017fffc07801000000400021b296102236920460a8940460b0, +a606c00f80a6a000b606e174b21f60683b000025f40620109e10000f370000249de3bf5040000002000000000000000000000000000000000000000000000000, +ea5f2000808d6001ac1de390b804c0167ffff99a90100018010000002f000003961022417fffc05594053fe04000218f90053f9092053fb8a804c01902400008, +00000000000000000000000000000000000000000000000081e8000000000000901000187ffff959901000147ffff9cdd25e2de8400021810260000501000000, +22600006d2062010ee5e6000808de001aa1da0f8ba06c0152d000025b206c01ab41f6390b607000f3b000003b80720cc9e10000f390000249de3bf5040000002, +3b000115a40722507fffc020010000004000215a9610225392077fd09410001d3900000990077fa880a260ff1240000990077f90d2062010d25e200040002163, +b6072260e076000fac0762f0ae060019e05e0011b20722908a0762d08607222092076320e67600129a0762c896076318e65e00149e072258a80762b8a20762c0, +820762e0c07600029010001884072298c87600037ffff7b9d0762060c85e0005d4762058d05e0009d8762050d45e000bd85e000da0072248a80762f8a4072268, +400001b0901000184000016590100018da5e000fda76000ce25e2050e2760010e65e0014e6760012ea5e0016ea76001bf45e0001f475e0009e0762e898072270, +9de3bf50400000020000000000000000000000000000000000000000000000004000016c81e8000094076310f25e000a400001429010001896076308d25e000b, +d25e20004000210522600006e2062010de5c2000808be001a61d2228b806c01329000025a006c011a21ca390b605400f25000003aa0563549e10000f2b000023, +2d000115bb28701603000040c02620107fffbfc201000000400020fc9610229092073f4094073f703300010090073f1880a460ff0240000990073ef0e2062010, +ba076004b406a040ed6ea120c076a000b4060012e8762bc8a404e2b0ba10200090100018e85e00152700010d7fffff7baf2e7016ee762870fa762868aa05a300, +ac062e10ed6da102ae102000c676000286102100840122a0c076bff809000009c076bff0044ffff5c076bfe0c076bfe8c076bfd0c076bfd8c076bfc880a761fc, +80a7601cc02e7ffeb2066004c02e7ffdc02e6000ba076004ba102000b2062df0044ffff9c02dbfff80a5e7fcc02dbffeac05a004c02dbffdc02da000ae05e004, +90073f9092073fb880a160000240000890100018ca062010d25e000840000109901000189006a310d25e0009400000df350001159206a308044ffffac02e7fff, +400020a681e8000002600004b010001cd45ae000808aa001981b63909606c00c901000181b000003010000007fffff11961022c87fffbf7994073fe0400020b3, +ac1de390a206800f2f000003b406a16c9e10000f350000239de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e80000, +90073fb092073fd880a2e0000240000890073f98d6062010d25e20004000208b22600006d6062010e85d6000808d2001a41ce2a8b804401227000025aa044016, +b8072004c02f3ffdc02f2000ba076004b8062e10ed6f210290100018ba102000901000184000010701000000400000bc961022d77fffbf499410001c40002083, +e00620047ffffabd044ffffac02effff80a7601cc02efffeb606e004c02efffdc02ee000ba076004ba102000b6062df0044ffff9c02f3fff80a767fcc02f3ffe, +9de3bf504000000200000000000000000000000000000000000000000000000081e8000000000000c02b200081c7e0089a03e2b09806000d913c20001f000115, +80a7600a02400011ca5d60000240000eb407001380a76009ba0ea0ffa61d22c829000025aa070016ac1de390b806c00f2f000003b606e0549e10000f37000023, +1080000680896001900263a8f65e00089006a02813000115953e600010800016920462ef4000203d2337ab6f9010001a0260001cb604a2ef2537ab6f80896001, +9006a0289206a0503268000ab33e6000980362ef80a6c00c9210001b1b37ab6f953e60004000202d026000059010001a9402e3b0f65e000a1700011580896001, +0000000000000000000000000000000081e8000000000000fa2bc01081c7e008a006c0199e062e1001000000b33e6000961022ff7fffbee99406a07040002023, +b405e2ef108000100240000a2f37ab6f9a06c00f80a7200a80a7200902400008b80ea0ffb606e3449e10000f370000229de3bf50400000020000000000000000, +2d000025aa1da3581268000cbb3e6000a60522ef80a68013a204a3b0f45e0011250001152937ab6f108000062937ab6f9e0423a8f45e000f2d00002521000115, +000000000000000081e8000000000000c02e001981c7e008b206801db0062e107fffbeb60100000040001ff096102314920220289402204890034015bb3e6000, +25000025a21ca3c01260000ba006c00fb606e27880a6401a37000022b40762ef400000029e10000f9de3bf503b37ab6f00000000000000000000000000000000, +e82cedf081c7e008a6060015a8102009aa0da0fff276001739000115ae0723a881e80000ad3670069610231e7fffbe979402204840001fd19004001192022028, +0000000000000000000000000000000081c3e008c67200028a020009c0296df09532f006920aa0ff860122efd65a00020937ab6f840363a881e800001b000115, +9005800f90020009ac05a1b0921aa0282d00002215000026400000029e10000f1260001023000115a80562ef80a640149de3bf502b37ab6f0000000000000000, +f2760010b202ffff80a6800b1640001fb40be0ff960b20ff9f367006993370069a066200a00463b07fffbe6881e8000040001fa29610233a9202202894022048, +f62f3ffd80a6801db406a004b8072004ed6f2102f62f200001000000ba26600380a620040640000fb0076001b8048013b610200aa73ea000a4062df0ba26401a, +070001158400e3b081c7e00881e80000244ffffdf62f2000b807200180a68019f62f2000b406a0011440000801000000f62f3fff80a68019f62f3ffe044ffff9, +80a260040640000f920360019401000588022df08b3ae00098027fff9a23000b80a2c0091640001d960860ff920b60ff833330069b32b006d85a000294032200, +c02aa0009602e0011440000801000000c02abfff80a2c00cc02abffe044ffff9c02abffd80a2c00d9602e0049402a004ed6aa102c02aa000010000009a232003, +00000000000000000000000000000000000000000000000081c3e008c47200018402e2ef8200e3b01737ab6f07000115244ffffdc02aa0009402a00180a2c00c, +9e10000f2f0000219de3bf504000000200000000000000000000000000000000000000000000000081c3e008c02a2018da722000da722010c07220089a103fff, +9410001940001f25d25e2000901000160260000f9806401be85ca000ba8d2001a01ce090ac04401027000026a4044015aa1da390a205c00f2d000003ae05e3dc, +0a68000f80a5001580a56040a93670229e24e001ab33f0229005a030a606401aa93670221080000a80a560400a6000129224e001ab3270229610001aa606401a, +01000000ae0620680100000018600014ba0aa0011080001480a500150860000601000000d45ca000961020787fffbdd79405a07840001f119005a0309205a058, +ba0ae0010acf4004d65ca000086ffff3f6732010f82b201880a50015e6732008f2734017980340179b2d3005a805200140001f029210001402c740049005a0a0, +9e10000f390000219de3bf504000000200000000000000000000000000000000000000000000000081e800000000000081e8000040001ef1b005a0a881c7e008, +a206401a40001ed5d25e2000941000190260000e9010001cea5c2000b68d6001a61d2140b807401329000026a0074016ac1de390ba07000f2f000003b807229c, +80a580159007202880a560400a68000fb226a001ab367022b406401aad3670221080000a900720280a600012ad367022ab33702280a560409610001a9a246001, +ae06206802c6c0051860001101000000108000110100000008600006b60be001de5c200080a580157fffbd880100000040001ec29610209d9207205094072070, +81e8000040001ea5b00720a081c7e008b60ca0010acec00480a58015086ffff6e45c2000ac05a0017fffff6c9006001740001eb292100016b12db00590072098, +9602e1689a10200017000021921aa370400000029e10000f8210000f1500019b00000000000000000000000000000000000000000000000081e8000000000000, +01000000000000000100000081c3e008c0233ffc81c3e00880a367fe044ffffb9a03600298032080ed6b217cc023203c8a020009d85960309002c00f9e100001, +9a02c00f960160029602e0f08a10200017000021921aa370400000029e10000f8210000f1500019b000000000000000000000000000000000000000000000000, +80a2e7fe8530f03fc82abf808620000d9602e002c202a03ced6aa0c08933303f98200005c16aa0fc94012080da01207cc85a2030ca01203c900340099e100001, +00000000000000000000000000000000d02abfc0000000009133703f81c3e008d22abf809a20000d982000019333303fc42abf40044ffff4da02a07c9402a080, +b8074017a41ce1e8ae1e23902700002631000003a8074015aa1da370ba07000f2d00019bb80720449e10000f390000219de3bf00400000020000000000000000, +90100014c076a000c076a00040001e37808e60012260000592100008f25f2000a80740120ac2000e7fffeb2e92102000d45d21d890100011e25d2018a0052018, +9010001194100015aa174001a613c0029807a7ef852cb01fde5c21c88328f01f073080002527000081e80000fa5c2138b13ee00081c7e008c026e000b6102004, +90100011809000089607a7e77fffeb66af2b701fd25fa7efba102002b41020041b270000ad2bf01fd45c23c01f30800002c20107a41000087fffeb5a96100013, +9607a7dfd45c2280d25fa7e7d25fa7ef9005207040001e098089600102600004f026e000ca5f20001a6000dd01000000f05fa7e780a62800024000ed01000000, +9802c01880a3000bd65fa7dff05fa7d7024000b10100000090100011809000089607a7d77fffeb4cd45c2278d25fa7ef80900008024000c37fffeb5390100011, +c65c2140c25c218880a3c00d0860007dc45fa7d79e03400201000000da5fa7cf809000080240008e7fffeb3f90100011d25fa7ef9607a7cf086000a0d45c2288, +01000000c85fa7bf80900008024000577fffeb29901000119607a7bfd25fa7c702c20069d45c23c07fffeb16901000119410c016961040179807a7c7d25fa7ef, +d007a7c3d026200480a16000d2762018d4762010d25fa7cfd45fa7d7ca06203cb0030018d6762008d65fa7dfb12b7006d85c2018da5fa7e780a120201a600048, +1260002001000000c45fa7bf80a040029807a7efc2062038fa2e20001080001b40001dbed25fa7e7fa2e2000900521c0808be001226000201240000bde5f2000, +01000000c02e200080a2c00c12600005d85fa7cfd65e20301260000a01000000d25e202880a2400a01000000d45fa7d780a140081260000fca5e2020d05fa7df, +c65f20008088e0011080007eb61020002afa3f81d45c23c096100013a4100008941000157fffead39210001290100011f42e20009807a7ef108000049807a7ef, +900521a0f6266000b610200140001d87808ea0010260000481e80000f45f2000c826600081c7e008b13ee0008810201940001d92900521e802600004b6102004, +81e80000e25f2000b13ee00081c7e008c0266000b610200440001d7c900521802260005fc0266000f85f2000808f200181c7e00881e80000b6102004b13ee000, +40001d669005212002600004ba102017e45f2000808ca00181c7e00881e80000b6102004b13ee00090052150e0266000a010201840001d71808c600102600004, +81c7e00881e80000b6102004b13ee000900520f8e6266000a610201640001d5b808d60010260000481e80000ea5f2000b13ee00081c7e008fa266000b6102004, +ae10201440001d45808aa0010260000481e80000d45f2000e826600081c7e008b13ee000a810201540001d50900520c802600004b6102004ec5f2000808da001, +d226600081c7e008b13ee0009210201340001d3a9005208802600004b6102004d05f2000808a200181c7e00881e80000b6102004b13ee000900520a8ee266000, +808c20010260000481e80000e05f2000b13ee00081c7e008c026e000b610200490052048f4266000b410201240001d2f808920010260000481e80000c85f2000, +000000000000000081e8000000000000b13ee00081c7e00881e80000b6102000b13ee00081c7e008c026e000b610200490052020f8266000b810201140001d23, +9e10000f3900001f9de3bf504000000200000000000000000000000000000000000000000000000081c3e0089010200000000000000000000000000000000000, +80a640181240003eb406c013f20f2000ba102000f85de030a006c015a61d239029000003aa1da3f02d000026ae06c019b21ea370b607000f3500019bb807231c, +80a660040248002380a66003024000161080002c9004208802400017010000000100000080a6600280a660010248001680a660000240001080a660031640000b, +c02f20004000002b9010001c10800020c02f200040000065933f6000108000249010001040001cdd808c60010260002790042088e25ea0000100000010800025, +7fffbb8e0100000040001cc89610219e9204205894042060933f6000900420309004201840001ccd808ca00102600004c02f2000e45ea0009010001c1080001c, +b807204080a767ffc02f2000ba0760017fffbb820100000040001cbc961021a4920420b0940420b810800009c02f20004000007c9010001c1080000dc02f2000, +fa06203cb606e1a49e10000f3700001f9de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e80000244fffbef20f2000, +9e1c2370ca5e200801000000e4062004961021b37fffbb619402205040001c9b900700089202202813000027901a60d00240000b2100019bb806c00f80a76000, +d65b6028a2248013d4762028a72d3001e4262038a8058015d45e2010ad2d7003d2762030aa05c0129a07000faf2e7003ca762020b224801ad25e2018b52cb005, +00000000000000000000000000000000000000000000000081e8000000000000d426203c81c7e0089810200194102001962140097ffffd49992c70069002c00c, +9402205040001c65900700099202202815000027921aa1480240000b2100019bb806c00f80a76001fa06203cb606e0cc9e10000f3700001f9de3bf5040000002, +a52d3001a224c012ad2d7003a8058015af2e7003aa05c013d65b6028b224c01ab52cf005d25e20309e1c23709a07000f01000000e6062038961021c97fffbb2b, +9de3bf507fffffd100000000000000000000000000000000000000000000000081e8000000000000c026203c81c7e0087ffffd6ad45e2028992c70069002c00c, +2500019bb73e20009e10000f3900001e9de3bf504000000200000000000000000000000000000000000000000000000081e8000000000000901000187fffff99, +ba03400f40001cb5a625001b9f2cf003aa26c016a92d7004ad2df001da5c2038ae20001892102978a21ca370a0068011b407000fb006401bb80723e4b32ef003, +400000029e10000f8210000f1100019b00000000000000000000000000000000000000000000000081c7e00881e8000098102005d87760609010001df6276018, +d05ae9d894026978c45ae0609202e978d65b60389a10200182102001881020009a0100029e1000018802400f8a03200592026358981020001300001e841a2370, +c22aa0688a016003837b0400c65a6060920229789820e005997b4400d82a60689002a978c45aa9d8da2ae0689a222005c65aa060981020019820a0059b7b0400, +8223200592022978d42a606894102001957ac404c45a20609620e00590036978d42a20689410200195784404d85a69d88220a0059a0269789410200180a1601d, +0000000000000000c82a606800000000897b540c81c3e008981020019a20e0059b7ac404da2a20689a1020019620a005044fffedd42b606895784404c65a6060, +a405a018d45da168ac054017e05da018ae1e2370aa07000f3100019bb807223c9e10000f3900001e9de3bf404000000200000000000000000000000000000000, +9005400ac076a000941ae1c040001bb7b01020041700002780892001026000068a054008c859600013000003901a6390921020000ac20011901000107fffe8b1, +b807a7ef90100010ba13000d9807a7ef9b2bf01fa214c014d85ca158921000081f270000a92d701f2b308000e65ca13881c7e00881e80000b13e2000c026e000, +90100010941000119810001c92100017b09000081240000c4000001e9610001b9010001094100019ae100008d25fa7ef9610001d02c20019941000117fffe8d9, +81c7e00881e80000b0102000b13e200081c7e00881e80000b13e2000f676a000b0102000f65fa7efd25fa7ef10800008ae1000082afa3ff37fffe8ca9610001d, +2f000027a4040014a81d6390a007400f2b000003ba0760f49e10000f3b00001e9de3bf2040000002000000000000000000000000000000000000000000000000, +a000a3d87fffe8b484040003d458a3d886192370901000180900019b9607a7f77fffe8f0921000190260000490100018e65ca000808ce100ac1de208ba040016, +d05fa7f780a22020108000efb4102004d426a000c026e00090077fd8941020079410200740001b5d80896100026000051240000cca5ca0009210001980900008, +d65ca000808ae100d807a7fbd826e000108000e1b4102004d226a000c026e0009010001d921020089210200840001b4f808f2100026000050a60000cf85ca000, +9e10200940001b35808b6100026000051240000bda5ca0009210001980900008901000187fffe88cd45c3e709607a7ef40001b42d25fa7f70260000490076028, +90076060f226a000b210200a40001b27808c210002600004d45c3e60e05ca00080a460202a60000bb4102004e25fa7efde26a000108000c8900760409e102009, +90076080e426a000a410200b40001b17808e210002600004ea5c3d80f05ca000809000083240000b7fffe86f921000199607a7e790100018108000bbb4102004, +c25ca00080886100921000190ac2000b901000187fffe83f941540169616c0139807a7dfa72d301f29270000ad2df01ff65c3dc82f308000108000abb4102004, +1240000ac65ca0009010001880900008d45c20007fffe848d25fa7df9607a7d710800095b41020048410200dc426a00040001b02900760a0026000058410200d, +ba10200140001ae580896100226000050a60000bca5ca000c85fa7d780a1202010800085b4102004900760d0c026a000c026a00040001af18088e10022600089, +808a210022680010d45fa7d7d05ca000809000081240000d7fffe82b921000199607a7cf90100018b4102004d45c3e90fa26a00010800078900760f8ba102001, +d65fa7e7e65fa7f7d25fa7f740001ac70260000590076160f85ca000808f210010800003f85ca000d45fa7d7d477a7cf40001ad29210000ad477a7cf90076120, +d607a7dbd6272074d807a7ebd8272070b803c011da27206cb6250013a32ef003aa24c016a92d7004ae200001ad2df001da07a7f382008013de5c3c60852cf003, +f65f2060d25f2060b088e1002260001001000000c65ca000961020f87fffb973940761e040001aad90076190920761b8d25f20600ac24008d407a7d3d4272078, +32680009d45f2010b010200280a6e0059007622010800006b010200240001a9bb009610002c6000a80a1200512600011c85f2060ca5ca00040001aa490076200, +80a3000b12600016d80f201dd65fa7e71260001b01000000d05fa7ef80a24008d45f2010d20aa00081c7e00881e80000b4102000b13ea000b0102002f02f2068, +40001a769007624022c60005c02f20681260000b01000000e25fa7cf80a4801101000000e40f201e80a3400f12600010de5fa7d7da5c200001000000e05f2000, +000000000000000081c7e00881e80000b4102004b13ea00090076260f226a000b210201040001a6d81e8000002c60004b13ea00081c7e008c02f2068b4102000, +9e10000f3900001d9de3bf504000000200000000000000000000000000000000000000000000000081c3e0089010200000000000000000000000000000000000, +ba042068808b6100da5f2000ae06c013a2102000e05d6038b806c019a61d20d8b21ea3902900002835000003aa06c016ac1de370b607000f2f00019bb807205c, +1640000b80a660001240004e80a66003f20f600080a64018993e2000da5f2000973ca00040001a3dd45c2060933be000de0c201de40f60000260000a9005ffb8, +108000349005e11822480029808b61000240001d80a660049005e11880a66003808b61001080003b80a660022240001a02480015808b61000240001080a66001, +c02f600002600004901000101080002c933c6000400000df9005e01840001a1bc02f600002600004933c6000108000349010001740001a21808b610002600037, +9405e09040001a059005e0609205e08840001a0a933c6000026000049005e048c02f6000808b61009010001010800024933c6000400000359005e03040001a13, +7fffb8be01000000400019f8961021429205e0f09405e0f8933c60009005e0c89005e0b0400019fdc02f60000260000401000000108000169610213e7fffb8cb, +ba04206881c7e00880a4601f044fffa2a2046001a0042978c02f6000da5f20007fffb8b601000000400019f0961021459205e1409405e14810800009c02f6000, +ae1e6390b607000f33000003b807226c9e10000f3900001c9de3bf504000000200000000000000000000000000000000000000000000000081e8000000000000, +c206206cda0620700260000a90057e88f45de000808ea100400019cc90057e700260001001000000ec5de000808da100b41f63d0aa06c01a3b000028ae06c017, +9e24001cf45f6040a12f3006ec062070b93c6000ba06c001e40620748218a370e206206c0500019b400019c0993f2000d2062018973b6000f806207495386000, +892ab0029f2c300394270005a02080118b2a3001a328b0059002c009e82e201eec2e201d853ca000c02e201c972a7003a60da0ff9227000c992bf001e8062078, +0260000aba01000ac65a800480a0c0028a20800895297006c85f6028912a7001f27620109203000b992af003b206800db80760409b28f0038621001c9603c002, +90057f4092057f68e65cabd802c4c00ba92db003a4074014ad34e000fa76200001000000e60e201d961021687fffb85794057f204000199190057ed092057ef8, +c0762258c07620f086012248c076225009000009da762008f074abd89a073fc0b32eb003a407401901000000f40e201d9610216b7fffb84994057f9040001983, +da5e20e8d45de0007fffb830010000004000196a9610218292057fd8941000150260000990057fb0c45f605080a04002da7620e8c25f4003c07620f8da5f6050, +da5e20e8a80360204000195897396000d2062018d45be000d85f400b9006c008ca0e201d901a63f0130000289603224819000009de5e2000808aa1000260000e, +f6762060b0062950b0062950b6102003ea7620601080000502600005aa102001a32c9013808c0011e606206ce05f20487fffecd690100018e87620d8a4102001, +f45e20603b0000299e10000f3900001b9de3bf504000000200000000000000000000000000000000000000000000000081e8000000000000b2102028400019d3, +961021aa7fffb7ed94073f404000192790073ed092073ef880a420030260000801000000e05e2060b806c0190260000cb607000f80a6a001b80723e4b21f6168, +92073fe89410001ca610200590073fc0e45e20100ac480097fffb7e4010000004000191e961021ac92073f8894073fa00ac4400890073f6001000000e25e2000, +81c7e00881e80000c0762258e6762060c0762010c0762250c0752bd8c0762000ad2df003a8054016ee0e201dea5e20007fffb7da0100000040001914961021ad, +2d000029b206801bb61f6370b407000f3b00019bb80722f49e10000f3900001b9de3bf5040000002000000000000000000000000000000000000000000000000, +e60c6001d80c600180a2e0ff3240000ea207001dd6072010b0068015a4102000a005e3c0b2102086f85e6028b6102000aa1da1e8ba0622b0310000092f000115, +da2c60f8a20461109b33f03fa404a001e60c60019e2000137fffb7a401000000400018de9610001992063fc8941000189a10200090063fa080a320002248000c, +0000000000000000000000000000000081e8000000000000a410200081c7e008b8070014044fffe3a93c200080a6e01fd6072010b606e00180a4a0ff244fffeb, +e45ce000fa5da018ae1e2370ac0400173100019ba6040014a81d6390a007000f2b000003b80722049e10000f3900001b9de3bf40400000020000000000000000, +8a1a2390880400059210000811000003921020000ac200129010001d7fffe59990040001d45de1808218a208400018afae05a01805000029808ca00202600006, +233080002127000081e80000d65de138c026e00081c7e008c076a000b13e20004000189e9004000915000029921aa22002600006b0102004c65920008088e001, +9010001d94100019a8100008d25fa7ef9610001602c20016941000157fffe5c19010001dac13400f9807a7ef9f2c301fb807a7efaa12c00cda5de188992c701f, +b13e200081c7e0082afa3ff2d25fa7ef96100016a8100008941000157fffe5b1921000149010001d1240000e9810001c9810001bb09000089610001a4000001b, +9e10000f2f00001b9de3bf404000000200000000000000000000000000000000000000000000000081e8000000000000b13e200081c7e00881e80000b0102000, +88196240900500041240000a0b0000299210001980900008a60563d87fffe5aa90100018d45d63d89607a7f7aa050016ac1f6370a805c00f3b00019bae05e09c, +9005000c400018451b000029981b6290808a2002026000069205000ad05a600017000003941ae3907fffb7180100000040001852961020ca9202202894022030, +7fffe56c9610001d9210001994100016ae07a7ef90100018ac144012ba14000f272700009f2cf01fa52d301fe05cff90e25cfd789807a7efd25fa7f729308000, +941000167fffe55b92100015901000181240000c981000179810001c809000089610001a4000001f933e600090100018f207a7fbd45fa7ef02c2001caa100008, +81c7e00881e80000b6102000b13ee00081c7e00881e80000b6102004b13ee000f85fa7eff876e00010800009b61020002afa3ff1f207a7fb9610001daa100008, +a8244015ba0763249e10000f3b00001a901a6370400000021300019bab2c70059de3bf10a33e6000000000000000000000000000000000000000000000000000, +9607a7f78b2ab006972b30019424400bc858e028ae00e028901000189803c00d9f2b7003a404001686040008ac1de2e0a007400f9a04c0112f000029a72d3003, +9004bfc8c0272000c0272000400017e780886002226000d61240000ac25da0008218a390ac04000105000003809000087fffe5419210001ad458e370ba010005, +a410203480892002c027200010800162400017da9010001222600166c0272000f45da000808ea0022a60000bc85da000c65fa7f780a0e100108000d284102033, +ba044009d03760fe9607a7ef932ab004992af0049403000bd017a7fda207400dd65fa7f79a0662b0400017d0933c6000d45fa7f79004a0380260000633000009, +9004a058108000a384102033400017b7808c2002026000a7d45de360e05da000809000083240000a7fffe50f9210001aca272000d45de35090100018ca07a7fb, +a4102034400017a5808e200222600132ea0fa7f6f05f2000b804000f3240000a809000089e1f23909210001a39000003901000187fffe500841020339607a7e7, +808da0020260002a1080011df25f200022c4c00cd45de35822600006ec5f2000e65fa7ef80a4e001e817a7ede83760fca4102034ea2f60fb9004a0881080012e, +808de00202600073c25f2000ee5f2000809000083240000a7fffe4db9210001a9607a7df9010001810800026d45de39040001792d25fa7e7a21020009004a0b8, +9821400d972b3003c45de0009b297005d45fa7e7ca5fa7dfd25fa7df4000177b026000059004a11084102033808860029004a0e01080006f8410203340001783, +80900008024000347fffe4b79210001a9607a7d790100018f2776108d45de39087293006b2008003a210200188214008a2028009912c70019202c005952a7003, +a410203440001755808da001226000e212600009ec5f2000ea5fa7ef80a5600132400026e25f2000de0f60f980a3e002e60fa7dee62f60f9a8102001e82f60fa, +808920010260003312400009c85f20009210001a80900008d45863987fffe49a90100018820400029607a7cf8418e370a41020340700019b9004a170108000de, +a410203440001735808c6001226000c21080003dee0f6001ca376102ca376100d05fa7cfd077a7c784102033ca17a7d59004a1901080002f8410203340001743, +0260001484102033f85f2000808f20023240000ad45de3709210001a80900008d45de3687fffe47c9607a7c790100018a4102034c02f60fa9004a1b8108000be, +8410203340001715808f60020260000519000003fa5f2000809000081240000e7fffe46d9210001a9607a7cf901000181080001084102033400017249004a1d8, +d25fa7c79004001a1b00002ab41b6108808a6002026000079404000bd25aa00081e80000961b2390b13ee00081c7e008c426e000b61020049004a20084102033, +22600083b6102000f25f2000808e6002b6102002f62f60f83240000ee60f60c0e037610280a5e000f0376100e017a7d5f017a7cdee0f600140001704d45fa7cf, +ec5f2000ec0f60fa80a5001532600027ea5fa7e7e85f60d032600031d05f2000de5fa7ef80a4c00f81c7e00881e80000b6102000b13ee000400016f49004a248, +2240000cf25f2000ee5f200080a4600080a0c0043260000ac85fa7cfc65f60981260000e01000000c25f604080a0400280a46000c45fa7c780a5a0001240000d, +9004a398c02f60f8c02f60f8400016c7808e6002226000051080004cba10203532680029da5fa7c7ee5f2000808de00222680008f25f2000ca5f60c880a14019, +d25f2000808a6002400016b89204a278026000399004a270ba102035808a20029004a2a01080003d808da0023268001381c7e00881e80000b6102000b13ee000, +da5fa7c7f45f604022600028ba102035d85f2000808b2002400016ac9204a2a8da5fa7c79004a2a080a2800b2260000ad65fa7e7d45f60d022600034ba102035, +400016969204a308026000089004a300f05f609880a6000fba102035de5fa7cf808c20022260001d9204a2e0e05f20009004a2d8400016a180a6800d02600008, +808d6002026000059204a330ea5f20009004a3284000168980a500190260000801000000e85f60c880a460000240000c22600012ba102035e65f2000808ce002, +a4102034e426e000400016789004a14022600005a410203481e80000808e6002b13ee00081c7e008fa26e000b61020049004a370ba102035ba10203540001683, +0000000000000000000000000000000081c3e0089010200000000000000000000000000000000000000000000000000081c7e00881e80000b6102004b13ee000, +b21ea2f02700011525000003290000093500002aaa06c016ac1de370b607000f2f00019bb80720849e10000f390000199de3bf50400000020000000000000000, +1640000b80a66000ae0560f880a6600380a6401812400053aa074010f20d60f8ac06c00fa8102000b8102000a204e3c0a00522b0fa5d6028b406c0199e1ca390, +108000399006a1002248002cd85da0000240001e80a660049006a10080a660039010001d1080004080a660022240001f0248001e9010001d0240001080a66001, +10800030c02de0007fffb4f0010000004000162a961021c59206bff89410001a953d20009006bfd0d25f60004000162f026000059006bfb0d45da000808aa001, +953d20009006a040d25f600040001617026000059006a020d65da000808ae00110800028c02de00040000044921000151080002cc02de000400000f092100015, +9006a0b09206a0d840001608953d20009006a090d25f6000808b20010260000510800018c02de0007fffb4d80100000040001612961021d09206a0689406a070, +a8052001aa05611001000000c02de000961021d87fffb4c19406a130400015fbc02de0009206a1280100000010800009961021d57fffb4c99406a0e040001603, +c0722060c0222078c0222020c022202481e80000c0722008a810200081c7e008ba07400d044fffa19b3c600080a7201ff20d60f8b807200180a520ff244fffa9, +2500002bb804c00f21000003a604e26c9e10000f270000189de3bf504000000200000000000000000000000000000000000000000000000081c3e008c022207c, +0ac0c00b371e1e1e89789c028731301f842640088838a0009202e2b0900600090260001717000009d85b6000808b2001a21ca078ba0700119e1c23909a07000f, +e20e60fae01660fc90077fc8d80e60fbd25e2000400015b9d25e20009568a1109425001510800004a93da007ab38a01fae4e801bad35f020b606e079b538a000, +9007601815000003070000031080002480a320022240001c22480012f65e6108da2e600380a32000e22e60020240000ada0e60f9e07660d0d82e60c080a32001, +e85d6000808d2001ac1de390aa0700162f000003f67660c810800020130000034000159e90077ff80260002c01000000de5ca000808be001a61aa390a4070013, +90076010108000090100000040001587808ea0010260001582070002f4586000130000038418e3909010001d10800013d25ee000400015910260002001000000, +40001576d25e60d00260000490076068c859600080892001901a63908a0700080100000013000003961022087fffb44794076048400015811300000392076040, +94040014f272a000ab2ef004a0060015b73c6000f67660409e04e2b89a0763b03b000115a4066038e2166100a804e2b0124000312700010dd60e600280a2e000, +7ffff5009410200a933c6000901000187fffb422010000004000155c961022159202202894022048ac1de0f0900700160ac3000a2f00002be474000fd85e000d, +f42e6004c07660107ffff4f29410200af2708005c87080038406000890100018d2766098912a7004b410200193386000880660908604e2b8c21661028a04e2b0, +00000000000000000000000000000000000000000000000081e8000000000000d62e600181c7e0089010001996102001c07660707fffff58c0766018c0766068, +0260001729000009de5c2000808be001981b61c0a407000c1b00002ba0070011a21ca390b804c00f25000003a604e3cc9e10000f270000179de3bf5040000002, +9425401610800004ab3de007ad3c201fb44f401baf36b020b6076079bb3c20000ac3000b3b1e1e1e9b7c1c109933701fa02640119a3c2000a60522b0a2060013, +01000000ea0e6002961022367fffb3cf94100012400015099004bfc89204bff080a2a000124000089004bf98d40e6001d25e200040001511d25e2000956c2110, +7ffff4e49410200a90100018c07100179001001dc0722000880600099210000b9738e000932af004ba0162b0ae0162b80b00010dc606604480a560001240001a, +000000000000000081c7e00881e800009410200ac02e6001c076c0177ffff4d9b406c01dc076a00092100002b6060001853da0008328b004ec06609c90100018, +c65a6050d008e0019e1000019202800b980322789403000f19000017961b6370400000029e10000f8210000f1b00019b00000000000000000000000000000000, +2b000003b80722249e10000f390000179de3bf304000000200000000000000000000000000000000000000000000000081c3e008c828e0f88a2000088931703f, +400014b6010000009e1c21e09004400fa405a0182100002b808c200402600007e05ce000fa5da018ae1e2370ac0440173100019ba6044014a81d6390a207000f, +400014a6900440011300002b821a61f802600006b0102004e65d2000808ce004aa1e2390a80440150ac20011310000037fffe1a092102000d45ca1309010001d, +961080037fffe1cb8729301f941140089807a7ef912ab01fc45ca34009270000921000081530800081e80000ca5ca138c026e00081c7e008c076a000b13e2000, +992cb01fac13400f9f2c701fd25fa7ef252700009010001db807a7e7d65ca350da5ca1382330800081c7e00881e80000b0102000b13e20009010001d0ac20005, +9810001cd25fa7efb09000081240000c4000001e9610001b9010001d94100019d077a7efd25fa7e79610001702c20019941000167fffe1b7ae12c00c9807a7e7, +b0102000b13e200081c7e00881e80000b13e2000f676a000b0102000f65fa7e7d25fa7e710800008d077a7ef2afa3ff37fffe1a8961000179010001d94100016, +ae1f2370a607400f3900019bba07606c9e10000f3b0000179de3bf204000000200000000000000000000000000000000000000000000000081c7e00881e80000, +961b23901300002b81c7e00881e80000b4102000b13ea00012400006190000039210001980900008a405a3a07fffe19e90100018d45da3a09607a7f7ac04c017, +809000081240000a7fffe187921000199607a7ef9010001890073fc0d45cbfd0d45cbfd04000143d808aa00422600005b804c008d45de000ae04c00b901a6258, +808e2004226000d4de5de000f05de00080a360012a60000cb2102036da5fa7efc026e000108000d24000143090073fd8226000d6c026e000e05de000808c2004, +901000187fffe164d45cbfd89607a7e74000141ad25fa7ef0260000490072028b8102037808be004c026e000108000cf400014229010001cc026e000d25fa7ef, +ea26e0008400c015ec5cbcb0872d7004108000afb21020364000140c90072040026000b3b2102036ee5de000808de0013240000aea5fa7ef9210001980900008, +7fffe145921000199607a7df90100018f25de000d45cbfe0ea5de000108000a580a4600222600028e25fa7e702c44006ba058001e82f60fbe80fa7ee8328b004, +9f2c7003a003c013d05cbc88a224c014b2102036a92cf0059007206810800090b2102036400013ed808f600402600094e65fa7dffa5de000809000083240000a, +d45cbfe8808d6004d25fa7df1080000890072090400013d9808920040260000bca776108c85de000932ab0068a020009972b30019424c00b9b2c300398034010, +b2102036400013c5808ee0040260006c12400009f65de0009210001980900008901000187fffe11cd45cbfe89607a7d7400013d2900720b80260000401000000, +c45de0008088a00410800068b8102037400013bad25fa7d70260006b90072128c25de0008088600480a5a1000a600009b2102036ec5fa7d7900720f810800068, +12400009d25de000d00f60fb80a2200232600049d65de000c65fa7f780a0e001c80fa7fec82f60f9ca17a7ddca3760fc400013b2d25fa7d70260000490072158, +80a320001240000d900721a0d80f6001d80f600140001399808aa00422600005b8102037d45de000900721781080004fb8102037400013a1808a600422600053, +80a4400f12400019de0f60c0e20f60fb81c7e00881e80000b4102000b13ea0004000138e900721d822600042b4102000e05de000808c20049a102002da2f60f8, +f65de000808ee00401000000c02f60f880a540141260000dea1760fce85f60d032600013f05de000e45f610880a48013ea1760fce65f60c88090000f32400008, +f226a000b410200840001368900721f002600004b2102038f05de000808e200481c7e00881e80000b4102000b13ea000400013729007223022600026b4102000, +808e60040260000481c7e00881e80000b4102004b13ea000b2102036f226a0004000135ed25fa7f702600004900721b881e80000808ae004b13ea00081c7e008, +00000000000000000000000000000000000000000000000081e8000000000000b13ea00081c7e008f826a000b4102004d25fa7e7b8102037900720d840001353, +b21ea370b607000f3500019bb80723ec9e10000f390000159de3bf504000000200000000000000000000000000000000000000000000000081c3e00890102000, +80a76000024000109e06c0121640000ba41ce390b406c01480a76003a81d60a02b00002c270000031240004fb805a0f8fa0da0f880a74018ae06c019ec5de050, +9006a0e8da5be000e25be0001080002f80a760042248002380a7600302400016108000369006a0e802400017010000000100000080a7600280a7600102480016, +c02f2000e05be0009010200010800026c02f200040000031901020001080002ac02f2000400000a1921020001080002e9010001a40001311808b600102600031, +808c60010260000410800017c02f20007fffb1c201000000400012fc9610233f9206a0589406a060921020009006a0309006a01840001301808c200102600004, +400012e6961023469206a1109406a11810800009c02f20007fffb1b401000000400012ee961023439206a0c09406a0c8921020009006a0989006a080400012f3, +9e10000f390000159de3bf504000000200000000000000000000000000000000000000000000000081e8000000000000c02f200081c7e0087fffb1ac01000000, +ac05c01ba52db004af2ef004e25ce050b01e6340d85b6000b73e2000a6068014a81d63703300002c9e1c23909a06800f2b00019bb407000f21000003b807225c, +7fffb17e01000000400012b89610235892073ed894073ee80240000890073eb0e20e600180a46000400012c090073e9802600004b2044012b8068018808b2004, +94073f38400012a5ea1660fc92073f30e67660c81080000990073f08e65e6108ea1660fc1080000680a4a0022240000f02400007e42e60c0e40e60fb80a4a000, +ac068017c27764d8ae1e3c34ba068002310000398418e370833ee0000700019b80a520011240000de80e60f9ea7660d001000000ea1660fc961023647fffb16b, +92073fa094073fa8933d200090073f7890073f584000128980892001026000048a068008c859600013000003901a639010800013d40e6001ec766080fa766088, +96102001d62e60017fffb140010000004000127a9610237d92073ff09410001c0240000890073fc8d40e600180a2a0007fffb14a010000004000128496102379, +2f00019bb407000f25000003b80720ac9e10000f390000159de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e80000, +02600005b804c014808be004ba06800cb006400ba92e3004b32af004e65d6050981b63b0de5c2000973e2000aa068016ac1de3701b00002ca21ca390a0068011, +81c7e00881e8000001000000c02f20019610238b7fffb1119410001d4000124b90077fc892077ff080a6e00012400008933ae000f60f200190077fb040001253, +8800c00f9e1000018600e3f090102000070000149a02a3c0400000029e10000f8210000f15000115000000000000000000000000000000000000000000000000, +9002c00c9402a003ed6ac00dc02ae980c02a69809602400cc02a69809202400cd25ae0289a036980993b60009a4b2005981863709601000c0300019b94022002, +00000000000000000000000000000000000000000000000081c3e0080100000081c3e00801000000044ffff89601400c80a2a01dc0296980c02a29808a02000c, +9400e001ca5a202886102000932b70029002400a9b38a0009203000f840123c0980323480900011519000014941ae370400000029e10000f8210000f1700019b, +044ffff99602c00d8330b03fc22ae98880a2a01f842000059402a001ca0ae980c6296988c16ac00c882000088731303fd00969809601400d9e10000198026980, +29000003b80722a49e10000f390000149de3bf404000000200000000000000000000000000000000000000000000000081c3e0080100000081c3e00801000000, +90074010d45ca3c8a01be3d0400011d7a40560181f00002c808be00102600006de5c6000ee5d6018ac1de370aa0740162f00019ba2074013a61d2390ba07000f, +90074002c076a000841a63f0400011c7b01020041300002c808c600102600006a6074018e25ce00003000003b0186390921020000ac20011901000177fffdec1, +ac10c004901000178929701fb807a7efaa12000a9807a7efc65ca3d00b27000017308000952af01f92100008d05ca13881c7e00881e80000b13e2000c026e000, +90100017941000159810001c92100014b09000081240000c400000289610001b9010001794100019a8100008d25fa7ef9610001602c20019941000157fffdee9, +a0074012da5c200033000003a41e639081c7e00881e80000b13e2000d876a00033000003d85fa7efd25fa7ef10800008a81000082afa3ff37fffdeda96100016, +00000000000000000000000000000000000000000000000081c7e00881e800009007401ab13e2000b41ee0104000118fb01020003700002d808b600102600006, +02600005a40563d8de5c2000808be001ac1de370aa0440162f00019ba0044013a61d2390a207400f29000003ba07610c9e10000f3b0000149de3bf1040000002, +808d6001026000041240000dea5c20009e1d2058ba04400f2900002d809000087fffdebd921000199607a7f79010001892100019d45ca000901000187fffdef5, +d026e0008328b01f8929701f9807a7ef0b3080000527000081e80000d007a7fbb13ea00081c7e008b4102004c026e00090077fd8ec26a000ac10203940001163, +400011469010001db610203ad25fa7f7808c200102600005d45ca000e05c2000921000192ac2000e9615c0017fffde85ee5cbdc89410c00490100018c65cbd80, +22600005ba10203bf25c2000808e60013240000fd25fa7e790100018809000089607a7e77fffde8c81e80000d25fa7efb13ea00081c7e008f626a000b4102004, +02600004a410203cf05c2000808e20012a60000ee65fa7e781e8000080a26020b13ea00081c7e008b4102004c026e000ba10203bfa26a0004000113490076020, +9e054013a92bf003ab2db003808aa001ac24c017d65cbc50af2cf005d45c200081c7e00881e80000c026e000b13ea000e426a000b41020044000112490076050, +c25cbf908b2a301f11308000072700009610001cc85cbd78d25fa7f74000110bd45fa7e79007608002600007b802c01c9824c00db92b3006a205000f9b2c7001, +1240000db61020029210001980900008901000187fffde48d45cbe289607a7d7921000190ac2001f901000187fffde3594110005961040029807a7df8528f01f, +d25c2000808a6001d45fa7d7d477299081e80000f62f2989b13ea00081c7e008f226a000b4102004400010f0900760a802600004b2102041e05c2000808c2001, +f05c2000808e20013240000fd65fa7cf9010001880900008d45cbf987fffde2ad25fa7df9607a7cf10800034d45cbea0400010e2900760d80260003701000000, +f85c2000808f20012a60000fda5c200081e8000080a2e100b13ea00081c7e008b4102004c026e000ba10203dfa26a000400010d2900760f822600005ba10203d, +d85fa7cf9007615802600008a610200181e80000808b6001b13ea00081c7e008b4102004c026e0009810203ed826a000400010c290076128026000059810203e, +e85c2000808d2001809000081240000c7fffddf9921000199607a7c790100018de27298cd45cbea0e62f2989de07a7d3400010b29610001cd45fa7e7d25fa7f7, +0260000582102040ee5c2000808de00180a5a0400a60000d81e80000ec5fa7c7b13ea00081c7e008ea26a000b4102004400010a29007619802600004aa10203f, +8088a001026000041240000bc45c2000f62f298a80a66000f20f2980f60fa7ce81c7e00881e80000b4102004b13ea00082102040c226a00040001094900761b8, +ca5f29a8913a6000d65f29c0d207298c80a660013240000f80a6400412400026b4102000c80f2989c62f298810800033d25fa7e786102002900761d840001083, +12400007010000001240001380a66002d40ae00680a2801b1080000ef65c20003240001ae25c2000f00ea00680a6001b01000000f45f29c080a140081260001e, +b4102000e25c2000c02f29881080000b4000105ad25fa7e7c02f298890076238808ee00122600010e25c2000f65c200080a3000d3260000dda5f2990d85f2998, +0000000000000000000000000000000081e8000000000000b13ea00081c7e008e42f2988b410200040001050d25fa7e7a410200490076208808c600102600005, +3500019bb80723e49e10000f390000129de3bf504000000200000000000000000000000000000000000000000000000081c3e008901020000000000000000000, +80a6401812400044a206c012f20ea988ba05a3c0a006c014f45de028b8102000a81d62c0a41ce390270000032d0001152b00002dae06c019b21ea370b607000f, +0240001b80a66004900420c880a66003d85c60001080003180a660022240001702480016010000000240001080a660011640000b80a66000ae06a98880a66003, +10800025c02de000400000ee9010001a10800029c02de0004000100c933f20000260002c90100010d65c6000808ae0011080002a900420c80248002801000000, +933f2000900420709004204840000ff7808b600102600004c02de000da5c60009010001a1080001c933f2000400000559004202040001001808b200102600004, +40000fe696102170920420f0940420f810800009c02de0004000001a9010001a1080000dc02de0007fffaeb80100000040000ff29610216a92042098940420a0, +0000000000000000000000000000000081e8000000000000f20ea98881c7e008b406800f244fffb79f3f600080a7201fc02de000b80720017fffaeac01000000, +ee5e6000808de001aa1da060a606c0152d00002eb206c01ab41f6390b607000f3b000003b80722449e10000f390000129de3bf50400000020000000000000000, +010000004000009b9610217d7fffae7f9410001340000fb99004ffa89204ffd080a52000124000089004ff80e80e2980d25e200040000fc122600006e80e2980, +33000003b80721a49e10000f390000129de3bf504000000200000000000000000000000000000000000000000000000081e80000000000009010001840000009, +80a160000240000990047da0ca0e2980d25e200040000f9922600006ca0e2980ec5f2000808da001b41f62e8a206c01a3b00002eb806c017ae1e6390b607000f, +81c7e00881e80000f65e2990f676299812400006d02ea000d00e298980a220027fffae560100000040000f909610218d92047df094047e20b406298090047dc8, +9b3ce000ba06000b960422b0e42e29a0e606298c210000097fffae440100000040000f7e9610219892047e7094047e98a410200190047e4880a2200102400009, +961021a57fffae2d94047ef840000f6790047ec092047ee880a2600012400008ba07400ad20f6001c07629b8952b3004c07629b09803c00dda7629a89f2b7004, +90047f8892047fb080a560020240000801000000ea0f6003961021a67fffae2394047f6040000f5d90047f2092047f4880a520001240000801000000e80f6002, +a6052218a33ca000933da000a40da03f9010001140000f490260000529000005ec0e298a808de00101000000ee5f2000961021a77fffae1994047fd840000f53, +8606c00a912c300e1700019d941ae0b094102009e05e2000ec2b20067fffeee5d87760b8933da000d87629c035000008901000189803400f9a0600139f2c7006, +aa1e2300b006c015010000003100002e808e600102680007c2776068f25f2000f477607082008003f47760188529300eca776010c85e20009202001a8a00c009, +33000003b80723649e10000f390000119de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e8000040000f2481e80000, +80a160001240000a90073e40ca0e2980d25e200040000f0922600006ca0e2980ea5da000808d6001b41f60e0b806c01a3b00002fac06c017ae1e6390b607000f, +81e80000a12bf004c02f600081c7e00832400005de5e29a8ca0f600080a160027fffadc60100000040000f00961021d992073e9094073ec0ba06298090073e68, +7fffadae0100000040000ee8961021e592073f1094073f201240000890073ee8d00ea00180a220009206000bb402400a960322b0952b7004190000099a04000f, +92073fd89410001c0240000890073fb0e40ea00380a4a0027fffada40100000040000ede961021e692073f7094073f881240000890073f48e20ea00280a46000, +c02f600081c7e008c076a070c076a018c07629c0c076a0b87fffeeba94102009e60d2006933ce000e85e29c0901000187fffad9a0100000040000ed4961021e7, +980321e88610200019000011941ae370400000029e10000f8210000f1700019b00000000000000000000000000000000000000000000000081e8000000000000, +82100000837b34018a01618080a2a006ed6962f89402a002d658a0c8c1696248d858a0088a00a1809400e002c45925308801400a9a1020008a03000f9e100001, +d0297f28c6297fe8917b3401877af4019010000086100000da717e78da717f38d2297e68044ffff2937af401d6597f48da717db892100000d8597e88c2297da8, +ae1e2370aa07000f3100019bb807212c9e10000f390000119de3bf404000000200000000000000000000000000000000000000000000000081c3e008da717ff8, +02600006b0102004c65960008088c004090000088a05400813000003901a6390921020000ac20012901000107fffdb6da405a018d45da1b0ac054017e05da018, +921000089b2bf01fa92d701fd85ca190e65ca1381f27000081e800002b308000c026e00081c7e008c076a000b13e200040000e729005400a1700002f941ae108, +9610001bb0900008941000194000001fd25fa7ef9010001002c20019ae1000087fffdb949610001d90100010941000119807a7efb807a7efa214c014ba13000d, +f676a00081c7e008f65fa7efb13e200010800008b01020002afa3ff3d25fa7ef9610001dae100008941000117fffdb8592100017901000101240000c9810001c, +9e10000f190000109de3bf204000000200000000000000000000000000000000000000000000000081e8000000000000b13e200081c7e00881e80000b0102000, +a81ce370172700007fffdbaa921000192700019b90100018808a401c02600005ae102000d25d600039000008aa05800a941ae390ac03000f17000003980323dc, +8a1aa1c0a0058005921000191500002f9413400f7fffdb4f9612000990100018da5b21589807a7f79f2c301fba032158932af01fd05b21709805801421308000, +d45fa7ef80a2a020024000740100000090100018809000089607a7ef7fffdb5aa329701fd25fa7f7d45f60f0a52a301f113080000b27000002c20089a6100008, +7fffacbe0100000040000df8961020b692043fd094043fe0af2d300290043fa880a520080a600009e85fa7efa93530020ac5c020010000001a60006701000000, +0260000490100010d05a6000808a001cc075e0b8e826e000da5be530ae034001961b23909205800b9e058002832930068418e370190000030700019b8825c014, +9611401194128012d45f6000d25fa7f7d075e0b8ca5f60489807a7e79012400b992b400f973b2000d25de0b89e08a003c45fa7ef9a10200140000de492100014, +9807a7f7c225e0b480a060201a60000f01000000c25fa7df809000080240001c7fffdb1d901000189607a7dfd25fa7e702c2002cd45f62807fffdb0a90100018, +02600004aa102001ec5d6000808d801c10800030d45f61202afa3fafd45f60f092100013a61000089610c0117fffdaf5c65f60189411001290100018c85f6000, +f65d6000808ec01c1080008b8610200490042048c026a000c026a00040000dab808e401c2260008f86102004f25d6000ea26a0001080009440000db490042070, +108000798610200490043f88f826a000b810201f40000d99808f401c0260000486102004fa5d6000f026a0001080008240000da29004201802600004b0102021, +809000081240000e7fffdad7921000199607a7d79010001886102004d45f6120e226a0001080007040000d9090043f6802600004a210201ee45d6000808c801c, +0b000008901a63908610200413000003ee26a0001080005c40000d7c9004209802600004ae102020e4586000808c80112300000882058002070000038418e390, +b88a800b0260000fd825e0b0d45f600017000008d807a7db92100014e825e0acd45fa7df40000d6d900420c0d65fa7d78089000502600006ba058008c85f6000, +c85de0082ac9000910800006a010200240000d5a9004211022c7000aa01020020ac34011b80f000f1f000008f85f6000d25de008da5de008900420f040000d63, +ea5fa7dfec5d200001000000e85de09880a6c01812600025f65de000b13e600081e80000f205e0acb138e00081c7e008e02de0a886102000f205e0aca0102002, +8210200440000d350100000002c7000580a4401d0260000ce25de020fa5de0b81260001a01000000e65de01880a4c01201000000e45fa7d780a580151260001f, +81c7e00881e8000086102000b138e00090042150c02de0a8c02de0a840000d2b81e8000022c70005b138e00081c7e008c22de0a8861020009004213082102004, +00000000000000000000000000000000000000000000000081c7e00881e8000086102004b138e00084102022c426a00040000d229004217002c7000584102022, +a81d6370b607000f2b00019bb807232c9e10000f3900000f9de3bf504000000200000000000000000000000000000000000000000000000081c3e00890102000, +1f00002fd80c2000808a00110260000ed05f6000a004a0a823000008b806c019ae102000e45ce530ba06c016b21ea3a0ac1de3903500002f2f000003a606c014, +80a660031640000b80a6401812400049d05a6000f20c2000941ae3909206c00a993e200017000003973b200040000cefd25ca000d45ca0089a1be3589006c00d, +808a00111080002f80a660042248002980a660030240001d10800036900720c82240001a808a0011808a001180a6600280a660010248001580a6600002400010, +10800027c02c2000400001449010001240000cca933de00002600004900720181080002fc02c200040000cd0933de000026000329010001c900720c8808a0011, +9207208894072090933de000900720609007204840000cb9808a0011026000041080001fc02c20004000004e9010001240000cc2933de0000260000490072030, +920720f0940720f810800009c02c2000400001ce9010001240000cac933de00002600004900720b010800011c02c20007fffab7a0100000040000cb496102137, +000000000000000081e8000000000000a004a0a881c7e00880a5e007044fffa3ae05e001a404a0c0c02c2000d05f60007fffab6a0100000040000ca49610213e, +8600e00180a0e01f010000008400a97880a140080260000a8400a978ca092000c85a601022c10007861020008402601000000000000000000000000000000000, +00000000000000000000000000000000913b600000000000d672a00081c3e0089a1020019738e000913b600002c280049a10200081c3e008244ffff7c858a000, +a206c015ee5f2000aa1da1a8330000082d000030b806c01ab41f6390b607000f3b000003b80720c49e10000f3900000f9de3bf40400000020000000000000000, +8728b0038200c002892970038401000d912b70058a2340089b3a6000a806c015aa1da370e00620ac90047f10d20620b42d00019b40000c61808dc01902600004, +961021677fffab0d94047f7840000c4790047f2892047f500260000aa003c013d65cc00f80a2c00dae234019a72df006b3287001de5d2028993c2000d8762000, +d85e2000952b30037fffab000100000040000c3a9610216892047fc094047fe03500000890047f98fa5cacd802c7400cb52b3003a404001a01000000d85e2000, +90100011d45e2000808d401a0260003a1260000aea5f20009f3ce000808ac00fa8102001a72d0010d65e20b8bb2b7002a0102000da5e2000a404000af074acd8, +d85f2000c65fa7f7809000082240000e7fffff8a92100012ac06c017e45da038ae1e63709010001d3300019b9407a7f710800036a004200140000c24933c2000, +40000c069210001d0260000490046038f074a250808b001aa40480011080000a842100038328b0038a20c008892970049220000a912a70019728f0039402c003, +90100012953d20009610001de80620b0993be00040000bf9d45fa7f7d25e200090046050de0620b4808b401a02600008f074a250da5f20007fffaacc01000000, +c0722040c072204881c7e00881e80000244fffbcd65e20b8ba07600180a4200394102009a0042001933ce0007fffeb99e60620b0d05e20984000018892100018, +39000030ec5e20989de3bf50ee5e200000000000000000000000000000000000000000000000000081c3e008c022203cc0722068c0722070c0722050c0722058, +40000bc6961021ac92073f0094073f280ac4c00890073ed8e65d2cd8b807401aa8054016ba06c00fab2df003b606e24c9e10000f3700000eb41f236840000002, +ad3920008218a390880e6003050000037fffaa820100000040000bbc961021ad92073f7094073f983500000890073f48ea5e20080ac540097fffaa8c01000000, +d65e202015000008961000199e102001d859600040000ba9953da000d25e200090073fb8ca5e2098808ec01a02600008c028e028f65de000ae07400186060016, +7fffffb0901000180ac2400b010000009010001cd25e20200100000040000b9b808a000a02600005d2762020d05de000993b6000920ac00ca12bc0169a3c2000, +00000000000000000000000000000000000000000000000081e8000000000000c076209881c7e008a2048019c0746cd8a52f7003c0762008fa5e2000f25e2098, +90047f1092047f3880a5e00f02600008a206c0190260000ab607000f80a5e001b807210cb21f6070ee5e20083b0000319e10000f3900000e9de3bf4040000002, +010000000b000003961021d87fffaa2f94047fe040000b6990047fa092047fc80ac04009a010200001000000c25e2098961021d67fffaa3994047f8040000b73, +02c08033901000111260000c2500019b933aa000808b000996102001952ac010c65ea0008408c01cb406c004bb2a300288196390d85e2020d05e200039000008, +d25e2000d65d200090046040e85e2098f25b603802c080079e1ca3709a06c00f1080002ca0042001e65ea000840cc01c40000b529410001dd65e2000933c2000, +9210001d10800009d45fa7f740000b370260000d9004608002400009808d401cea5ea000809000087ffffeb0921000199407a7f79010001d40000b449410001d, +9210001dec5ea000901000187fffff4f7fffeb1894102009ee06201c933de00001000000d05e20989210001d7fffa9f7900460a040000b31d05e209802600004, +9de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e80000244fffc4d85e2020ba07600180a42003840d801ca0042001, +da5ea0100ac3400922c68011a00420089604000cf45aebd8a0102000ba070017b806c00fa2102000b606e354ae1ea16835000031d85e20989e10000f3700000d, +80a46020264fffeba0042008a20460010240000a2d000003de0b600080a3c01901000000da5ea0109610220e7fffa9c79410001d40000b0190077fc092077fe8, +40000ae6973f2000953e6000d25e200090076020f80ea01d808c801302600007a8070015e45d2000aa1da3902700000881c7e00891e8001ad85e2098b4102000, +b807226cb21f62a8c25e20083b0000319e10000f3900000d9de3bf504000000200000000000000000000000000000000000000000000000081c7e00891e8001a, +0ac08009a010200001000000c45e2098961022247fffa99194047f8040000acb90047f1092047f3880a0600f02600008a205c0190260000aae07000f80a06001, +d65e2020952b5010bb297002b605c003861923909a102001090000033900000801000000ca5e2000961022257fffa98794047fe040000ac190047fa092047fc8, +1080002da004200140000aa89410001dd25e2000973ca00090100011e40620b4808bc01c026000331260000cde5ee000900b000a80a24008d85e20b8920ac00a, +e85ee000808d001c01000000f074e250961022427fffa9619404607840000a9b90046040920460680ac20009a61000087fffff8c9010001802c2001e933f6000, +ee5ee000808dc01c1080000fa00420014000001e9210001890100013953da0009410001dec0620b0973d600040000a8fea0620b4d25e20000260000790046098, +9a10200181c7e00880a420040a6fffc1a0042001ba0760017ffffea49210001d9410001d90100018d65ea00040000a7ff45e2098d25e200002600007900460d0, +9210001aba07000f3700019bb80720ac9e10000f3900000d9de3bf504000000200000000000000000000000000000000000000000000000081e8000000000000, +8210000f1300004c00000000000000000000000000000000000000000000000081c7e00881e80000ee5e2000ee7660987fffbbac90100018b41ee3709407401a, +da72e000c02ae020981020009600a0089e1000018201000384010008861963708802800f0b00019b9402a0509a1020001500000d901a6230400000029e10000f, +d822ffd8da72ff489602e0c0da72ff58ed6ae1a3da72e000da72ff48ed6ae188c4706530da72ff58d822ffd898032001c02ae0239602e0c0c02ae021c02ae022, +0000000000000000000000000000000001000000000000000100000081c3e008c02aff6081c3e00880a32007044ffff4c02aff6198032001c02aff63c02aff62, +c027a7cfac102038b806c00fae07a787b207a7bff077a7c7c037a7c5b606e384ba102004fa37a7bf9e10000f3700000c9de3bed0400000020000000000000000, +9007a7bf9207a77f40000a089007000d1f0000319a1be3b0808ca04002600005a6070014e45ce0002b000003a81d6390164ffffef475c016f45e4016aca5a008, +00000000000000000000000000000000000000000000000081e80000000000009007001081c7e008a01c63c0400009ff23000031921000087fffe2f494102000, +aca5a008164ffffeac102038ee5e8016ba06c00fb207a787b407a7bff027a7c7c037a7c5b606e2ccb8102005f837a7bf9e10000f3700000c9de3bed040000002, +400005209207a77f9007a7bf31000031400009da933e20009e1c23d89007400f0260000621000031e45ce000808ca040a81d6390a6074014ee7640162b000003, +9e10000f3900000c9de3bf304000000200000000000000000000000000000000000000000000000081c7e00881e80000400009d29007401192100008a21e23f0, +b804e088400009b5808da0400260006da6068014ec5ee000b6068017a81d6370ae1e63902b00019b33000003b006801bb61f6218b407000f3b000032b807221c, +9200801d400009a5c45f3f98ba0680030900000c86193de0808e60400260006190063e20f25ee000d25f3f98400009af808de0400260006790063df0ee5ee000, +1300265bba1860b0808960401b002f29290000d02300265e0300039d2f00011b9210001dca5ee00090063e584000099f808860400260005790063e38c25ee000, +e4773fb0de773fb89e0680109606800cd0773fd0a40680139006800aea773fa8f2773fa0941a60b0a01c6160981b6060a61d2070aa068016b206801dac1de370, +92102020c65ee000960123c0400009770900011590063e980260004ad45f3fa0c45ee0008088a040400009809410254090063e7892073f78d6773fc802600051, +92102020d05ee0009610297840000967d45f3fb090063ed8808960400260003992102800ca5ee000961020404000096fd45f3fa890063eb88088e04002600041, +400009569210200190063f189610211002600028d45f3fc8d45ee000808aa0404000095e9210202090063ef896026158d45f3fb813000046808a204002600031, +07002f293b00265b170000d01100265e2500039d1f00011b1080001a010000004000094e9210200e90063f38961020e802600020d45f3fd0d65ee000808ae040, +c8773fb8ae0680198806800582068002d8773fa8d2773fb0e0773fa09206800a8418e060b21f60b08a1a21609806800da0068011941ae070a21ca0b09a1be370, +de5ee000808be0404000092890063f580260000ad25f3ff0808b2040da772000d85ee000da5f3ff07fffd58cd05f3f904000007c01000000c2773fc8ee773fd0, +7fffea98f85ea018a01c6370b40680107fffdcea2300019b7fffd9f8010000007fffd95e010000007fffd71a010000004000092290063f7802600004d25f2390, +010000007fffebfd90063f907fffa7cf0100000040000909808ca0400260000402400009e45ee0009010001c809000089607a7eb7fffeabf9207a7fb9407a7ef, +400008f690063fb00260000401000000e65ee000808ce04080900008024000097ffff7149010001c9407a7ef9607a7eb010000009207a7fb901020027ffff6ef, +02400009e85ee0009010001c809000089607a7eb7ffffa5d9207a7fb9407a7ef7ffffa32010000007fffdb14010000007ffff8b8901020027fffa7bc01000000, +40000af09010001c9407a7ef9607a7eb010000009207a7fb9010200240000aed010000007ffffbd190063fd07fffa7a701000000400008e1808d204002600004, +400000d2010000007fffd5620100000040000afc901020027fffa79401000000400008ce90063fe80260000401000000ea5ee000808d60408090000802400009, +9de3bf5040000002000000000000000000000000000000000000000000000000400008be81e8000081c7e00881e800001260000401000000ec5ee000808da040, +9010001cd65f6000b804000c400008a71b000032981b6228808e604002600012ba04001bf25f6000b61f6390a007000f3b000003b80721d49e10000f3900000b, +a204600180a4601f913c60004000002f90072030a2102000a21020004000089b808be0400260000590072020de5f6000a2102000400008a1808ae0400260000b, +80a4e01f044ffffd7fffec4ea604e001a6102000913ce000913ca0007fffe9ef80a4a01f044ffffd7fffe2e8a404a001a4102000913ca000044ffffd913c6000, +ae1e2260aa1da370310000062d00019b0100000040000a59010000007fffd4b1010000007fffe0d70100000040000293010000007ffff643913ce00040000ae9, +400000029e10000f893a20008210000f00000000000000000000000000000000000000000000000081e8000000000000e876a42840000047a8040017b4040015, +98210001c65960408a0140098328b00184024003921aa3701500019b9328f0039e1000018621000a8a03000f952af00198032098962340041900000b9b293006, +c07126b0c071000cc0712028c0712030c0712018c0712020d0288003c031201096036360ca712008980363588800c0021b000005852af0039b2b300296234004, +b006200880a7602fba076001d0762000d05e20004000002f9de3bf50ba10200000000000000000000000000000000000000000000000000081c3e008c071000b, +3b00019bb80723a49e10000f3900000a9de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e80000244ffffbd05e2000, +d0762000244ffff7ae05e01080a5a0ff40000010d05de008d075e000ac05a00140000014b005e008ee5e6428d05de000ac102000b206801bb61f6370b407000f, +980323249403000f9e10000f1900000a8210000f4000000200000000000000000000000000000000000000000000000081e8000000000000d05de00081c7e008, +00000000000000000000000000000000000000000000000081c3e008902200059202800bca5a602090102000961b63701b00019b81c3e0089e1000010ac20004, +ec06201080a5a0fff05e6028a8062010a6102000aa05e3c02f000115b206801bb61f6370b407000f3b00019bb80722cc9e10000f3900000a9de3bf5040000002, +00000000000000000000000000000000000000000000000081c7e00881e80000244ffff9ec052000a604e00180a4e01f7ffffdee913ce00002400004a8050015, +822760028418e39888064005921aa3908a1a237007000033b202c00f150000039602e24cba1000191100019bf223a8af9e10000f1700000a9de3bf0040000002, +0240000a80a76001fa06201080a760047fffa68201000000400007bc9610221e92047b4094047b88a60124d890047b18a206400208400009a406400980a06001, +400007a6933ee000f603a8afd40620100260000690047c48f85ca000808f20407fffa67601000000400007b09610222192047bd094047c280240000890047ba8, +961022347fffa65d94047cb04000079790047c7092047c9880a3001802600008ba076008d85ea000f45f600022c6809fb6100008b81020007fffd34aba062bd8, +80a060040260000801000000c25ea06080a260010260000c01000000d25ea06080a5e00202600010d65ea060ee5ea06080a3401b3260001f01000000da5ea010, +7fffd28f9010001a400007789338a00090047d88c40ea01d808e60400260000501000000f25ca0009610223a7fffa64794047d684000078190047cd092047cf8, +80a12006226ffffb01000000c85ea06080a0e0070267fffe01000000c65ea06080a2a0061260000ac65ea060d45ea06080a2e0072268000710800074ba076008, +80a520040260000890102003e85ea06080a560010260000d90102003ea5ea06080a5a00202600011ba076008ec5ea06080a4200322600061c65ea060e05ea060, +80896040026000189207a7bfca5ca000d05ea0107fff7d84d077a7bff477a7cf0100000090102003961022517fffa61794047e384000075190047da892047dd0, +80a36001026000189210001ada5ea060953de00040000739ee0ea01dd65ea0600260001190047e78de5ca000808be04040000742933b200090047e58d80ea01d, +01000000c25ea06080a5a00302600020da5ea060ec5ea06080a5e00122600025c45ea060ee5ea060c25ea0601080001380a260033268000d01000000d25ea060, +d40ea01d400007150260001490047ea8d65ca000808ae04080a0a00112600008c25ea060c45ea06080a66003326ffffb01000000f25ea06080a0600102600006, +981b6001817b2401ba076008da5ea060933c200010800009e00ea01d4000070b0260000d90047ec0c85ca0008089204080a0e00312600010933aa000c65ea060, +90047ed8aa0522a029000009400006f70260000c1f000009f65ca000808ee040244fff5ff45f6000b807200180a7201f817d2401ba076008e05ea060a81c2003, +b53da000aa060010a006e2b0a806e370ac1020003700000980a0001b1a600042b403e2a0f65e001a10800008370000091a600043ac102000ec5e001580a00016, +c0768001ae06e320124000238206e2c8d80e800d80a32000024000279a06e2b2ca0e801d80a160009f2a3004b403c0189f2eb0049003c01aba06e2b1b806e2a0, +8604000a89297004912af0048a02000bd65de0d0d45de0c8108000150100000002400004ae03c015f20e801480a66000ac05a001c0768017d25e801722c2401f, +90100017ac05a0019210001a7ffff0ce901000197fffcf42400006bc9810001a90047ef8933da000808b20400260000502c6800bd85ca000b200c004f45e60a0, +b40620187fffaf1080a720030240000790047f38f803a8aff803a8af400006ab808c204022600005b53da000e05ca00080a340170a6fffcfee5e001c9b3da000, +4000069690047f580260000401000000c25ca0008088604080a3c0091260000ad25e2000de5ce0307fffaf0b9004e0387fffaf179010001a9010001ac0262010, +e65ca000808ce04080a080180260000986010005c458e0c8900280098b2a3004d25ce000952a70049004e038c85cfb78f274e0307fffaf067fffdf16b2103fff, +92047fd8941000110240000890047fb0e406201080a4a0011240000e01000000fa03a8af80a76003400005ea901000184000068290047f880260000401000000, +9de3bf104000000200000000000000000000000000000000000000000000000081c7e00891e820004000000a901000187fffa53a0100000040000674961022f3, +400006569610230d92073e4094073e68aa10200090073e18b806c01902400009b607000f80a6a001b8072094b21f61a0f40620103b0000349e10000f39000009, +f45da000ba10200080a5601f244ffff7ac05a008aa0560011260000b01000000ee5ea06080a5e00322c68007ac05a008ac062bd8f45e2bd87fffa51c01000000, +80a040180260000801000000c25ea000961023157fffa50194073ed84000063b90073e8892073eb080a660010260000881e80000f25ea060b13f600081c7e008, +9610231e7fffa4ed94073fa84000062790073f5892073f8080a0a0010260000801000000c45ea0609610231d7fffa4f794073f384000063190073ef892073f20, +981b63909606c00cd406a0181b000003973be00040000619de0ea01dd25e20000260001490073fc8c65920008088e0408a1a63908806c0050100000013000003, +1260000aaa102001e65ea01080a4c0087fffd1b0010000004000060c9010001cd25c2088d45c2090a21ca370a006c011026000082500019bd45ae000808aa040, +9207a7bfb13f6000d05ea0107fff7c32ba102001f477a7cfb6102001f677a7bf10800009ba102001ea752018f4752020ad2df004a8020016f00ea01caf3e2000, +ae1e2390b806400f31000003b20662ac9e10000f330000089de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e80000, +a0070011b8102000b6070013b4102000a61d2130a21ca3709007000d2500019b9a1be1c0400005dd2900003a1f000034808d604002600006ac070017ea5da000, +f876fff881c7e008fa76fff0044ffff5fa76ffe0f876ffe8fa76ffd0f876ffd8f876ffc880a6a1fcb406a004b606e040ed6ee120fa76e000ba103ffff6742068, +0000030c00000000000002dc000001ac0000018c000002ac000002180000016c0000024c0000027c000001b8000001e481e800000000000081e8000081c7e008, +2700019bb8068017ae1e6390b407000f33000003b80721b49e10000f390000089de3bf5040000002000000000000000000000000000000000000000000000000, +e215e01840000549988b60042260000790067fe8da5f2000ae0464384000059b988da0040260000cec5f2000b2068014a2068012a81d61f02b000034a41ce370, +02c30006e015e01a12400099010000000100000080a7600280a76001024800a380a76000024000c3fa0de000e235e058980be004e215e0189005e018de5f2000, +c615e004822460034000038681e80000c02de000b205e05802400006b13c2000e815e00480a5001080a46000024000bf1080000380a460004000058490066030, +01000000d65f2000f046c01d81c6001dba05800fb72d600280a5600a18400016ab306000ad3da0008400e001c435e0042d3fffffac05a2d0400000029e10000f, +b005e058b61020029006611010800065b610200240000559808b200402600068b005e058d85f2000900660f81080006db610200240000561808ae00402600070, +8089600402600005b005e058ca5f2000b610000810800057400004549005e0584000054e900660780260000401000000c85f20008089200410800062b005e058, +40000536900660a8026000059005e018d05f2000808a20041080004ab005e05894102000b61000089205e0587fffde2f900660909005e0189005e01840000543, +400000709205e058900660c89005e0189005e01840000529808a600402600005b005e058d25f2000b61000081080003d7fffde22941020019005e0189205e058, +b005e058da5f2000b610000810800025400000ec9205e058900660e09005e0189005e0184000051d808aa00402600005b005e058d45f2000b610000810800031, +9005e01840000505808be00402600005b005e058de5f2000b610000810800019400001709205e058900661289005e0189005e01840000511808b600402600005, +7fffdf349205e058900661589005e0189005e018400004f9808c200402600005b005e058e05f2000b61000081080000d400002e69205e058900661409005e018, +400004e69006601802c30006e015e01a81c7e00881e80000933f6000c02de00090066048400004ed81e8000002c30004b33ee00040000321b6100008b005e058, +a404e00102400007e615e00480a46002400002e881e80000c02de000b13c200002400006b205e058f415e00480a6801080a46000024000211080000380a46000, +80a4600002400005400004c89010001902c3000580a460004000037281e80000b005e018b205e0584000030081e80000b005e058b2102002e435e004c02de000, +9de3bf50e20620080000000000000000000000000000000000000000000000004000031481e80000b005e018b205e058400002f281e80000b005e058b2102002, +a404c01496034008a81d63709b2bf003a606c00f9e220010b606e1c4a12a30052b00019b913c60009e10000f37000007b01020014000000280a460201a400041, +02400018ae1020011640000a80a0a000c407601080a0a0037fffad079010001aba00c004b40760188a220009892970069403000b932ab001992af003c65ca028, +b6102008108000157fffacfd9010001a10800007b010200108400004b0102004ba20a00380a760011080000db01020012840000ab0102004ba20a00180a76001, +b1664000b76640009010001d809000089010001a7ffffe13b61020077fffacf0ee276010b010200310800010f026600c9010001ab6102007f026600c7fffacf8, +9de3bf504000000200000000000000000000000000000000000000000000000081e8000000000000b13ee00081c7e008f026600cb610200710800004f026600c, +026000089004ffc0e85c200080a5001822c40019a404a008a2102000a606c019b607000fa4062bd8b8072094b21ea3a035000034e05e2bd89e10000f39000007, +ee5c206080a5e0040260000f01000000ec5c206080a5a0010260001301000000ea5c206080a560027fffa31801000000400004529610214a9204ffe894100013, +81c7e00881e80000f00f6000b136200081e80000fa5c2010b136200081c7e008e05ca000b01020ff80a46020264fffe5a404a008a20460010260000b01000000, +98210010400000023100019ba1293005b6102001893b600080a360201a4000829de3bf10da062008000000000000000000000000000000000000000000000000, +a2004002ae046018862100058528f0068b2a3001c25f602890028009ba07001b952a7003b61e23709202c004b806c00f972b3003b606e3949e10000f37000006, +b610200180a6a003b61020001080005980a6a0022240000c0248004eb61020000240005a80a6a0011640000b80a6a000f404601080a6a0037fffac7f90100017, +290000037fffac6aaa102004ea24601002400037b01000089010001180a23fffb61020007fffff9710800052b610200102480049ba1020000240000680a6a004, +c677a7bf8218a3900500000386102007400003ea90100016881963c0ac070004026000140b000034de5ca000808be001ba102000a407001390100017a61d2390, +af2c30061700265ee277a7cfa1362000b4102007f477a7bf10800006a1362000400003de933e2000026000099005a020ee5ea000808de001e277a7cfb4070001, +9207a7bf1080001e900200097fff7a0298234010912b30039e2400119b2bf002a4050013a32cb001a6240015a92cf003ab2db0019207000aac25c010941ae160, +1080000ff626600c90100017b6102000f626600c7fffac2eba102009108000147fffac339010001710800019f626600c90100017ba102009f626600c7fffac38, +81c7e00881e80000ba102007b13f6000f626600cf626600cba102007108000047fffac239010001710800009f626600cb6102005ba1020087fffac2990100017, +0a400007a2102001de06200880a3e020b606e174b806c00f9e10000f370000069de3bf1040000002000000000000000000000000000000000000000000000000, +e85da050952a7003972b30039202c0049821000df45da4d8ac0700019b2930058933e0008218a37081e800000500019bb13c200081c7e008e226600ca0102007, +e026600ca010200712600007a0102001ba06c01d80a74012e45ce0c8bb28f00686210005a60500158b2a3001ab2df00490028009ae06001af65da028b12eb004, +80a4e0040240000f1080000da410200128400014a8102000b824e00280a7200180a4e0000240000c80a4e0041640000981e80000e6076010b13c200081c7e008, +aa076bd8ec5f6bd881c7e00881e80000a0102007b13c200081e80000e426600cb13c200081c7e008a2102005e226600ca4102001a0102008a810200010800008, +f426600ca010200712400007b4102003ec5d600080a5202080a5201f244ffff7aa056008a805200122600010b2102006ee5da06080a5e00222c58007aa056008, +000000000000000081e80000000000009207a7bf81c7e008d05da0107fff7976ec77a7cfb13c2000f277a7bfa010200081e80000b2102006b13c200081c7e008, +a406c00f80a62004f0062010b606e3ac9e10000f37000005a21020014000000280a4e0201a40005c9de3bf50e606200c00000000000000000000000000000000, +9403000b932ab00196034008992af0039b2bf003f858a0289e220010b40763303b0001158404800386192370a12a30050900019b913ce0001a40004db6066008, +22400012b01020000240000d80a620011640000880a620009010001c80a62002b805c0147fffab78a8070001ae06401a83297006b32d70038a220009ab3e2000, +1080001ac02c4012b0102000e676e010a2050015a4076328ba102042e60520109206e0101080001f80a620032248001c80a620020240001710800026ba102042, +f476e01010800009b2076328b0102000f45d2bc8ae05001510800010c02d0015400003b694102020aa076328ec2ee0109006e011a8050015ec0d202092052021, +f026e00cb010200781e80000b0102042b13e200081c7e0087fffab519010001cfa26e00cb0102007108000040100000090100014b0102000c02dc0194000002f, +da5a2960ca5a295800000000000000000000000000000000000000000000000081c7e00881e80000b0102007b13e200081e80000e2266014b13e200081c7e008, +00000000000000000000000000000000000000000000000081c3e0089021400a9002c0058b6550089021400a9622400dca5a295881c3e0080ac3400580a34009, +ae1ebfff1900019bea5e0016b60600123b200000b52f7020a404e3987fffab23ac04e390b806c00f27000115b606e1cc9e10000f370000059de3bf5040000002, +f45aa038ae06a968da766010c0766020c07660189a27400fe0766008de5ee0009407000ba0274011ac102000e25ee000a8274015e8766000ba0a0017961b2370, +b406a978ae05e97890010008d0766020ca75e000c85e6020d25de0008a0240087fffffc89210001dd45de0009010001a1260000cac05a001c65ea00080a0c018, +80a420201a4000439de3bf50e006200c00000000000000000000000000000000000000000000000081c7e00881e80000c65ea000fa76e00080a5a01f244ffff0, +ac200017b606e0a837000005ae060019400000029e10000fa01c6370b12e70032300019bb33c2000b2066008b406601080a46000124000399e102008e2062010, +921abfffb80a0009ba06e950952af020b010200017200000b603000d7fffaad3a424c0199b2cb003a72d3004d85be0389e030010a82640159806c00fab2db001, +9210001cec5ee970d45ee9707fffff81ae270001ee76a018c476a010c25ee950c65ee9508427000388270005c876a0089010001bca5ee948d05ee060d02ea000, +f826600cb13e2000b0102007b810204281c7e00881e80000e676a020f8776000b13e2000a610001480a2001408600003ea76e970e85ea018a6100008aa058008, +000000bc000000ac000000bc000000ac000000ac000000ac0000007c0000009481e8000000000000b13e200081c7e008de266014b010200781c7e00881e80000, +b7352000ad3da000e8062008ac05a3bc9e10000f2d3fffff9de3bf5040000002000000000000000000000000000000000000000000000000000000bc000000ac, +7fffff8e9210001981e8000090100018b13a200081c7e0087ffffedc921000190100000090100018fa47401581c7401518400015bb2ee00280a6e009aa05800f, +0000000000000000000000000000000081e8000000000000b13a200081c7e00881e8000090102007b13a200081c7e00881e8000090102003b13a200081c7e008, +ec5de000808da004a81d6370a60700142b00019bae07001ab41f6390b806c00f3b000003b606e2c49e10000f370000049de3bf50400000020000000000000000, +000000000000000081e8000000000000b210200140000009c02c2000b0100019400001de9007001125000035a21ca000d4142004933e200002600008a004e438, +80a660000240001308400007f236200680a76001b806c00fba266001b606e23c9e10000f370000049de3bf504000000200000000000000000000000000000000, +ae1ea038900700170260000635000035e65d2000808ce004aa1da390a8070015a0070011c02c24382d000003a21ca3702d0000032500019b0100000010800007, +25000003f41620029e10000f370000049de3bf5040000002000000000000000000000000000000000000000000000000400000a481e80000400001b4933e6000, +0260000ab4062008e635243a808c2004ea35243cba05243ca606ab5ee05de000aa06a001a8070016ac1de370ae070011b806c00fa21ca390b606e1a42f00019b, +ec366006ea366008c0366000aa10200102400012ac102003e616a00080a4e0014000018e953ca00090070011933c2000a21e2060e416a00231000035e016a000, +15002eb6841020019610235cd677600c4000006c81e800004000017c9007001ab41ee088b01000190260001d37000035c02f7ffc808d2004c036600ae85de000, +981b60a0400001651b000035d25e60088088600402600006c25de000c42f7ffc86190005c6766008c85f600c8a122f20c0366006912a700cc43660009202a3ee, +3b000003b606e0649e10000f370000049de3bf50400000020000000000000000000000000000000000000000000000004000005481e800009007000cb0100019, +a8070015032595fc9010001d09000003aa1da370400001492d00019bba070005110000358a1a20c8808da00402600022ae07001aec5de000b41f6390b806c00f, +9007601010800015b010001940000137808c60040260001980a4801302600008e258a000a41ec017e65d2448ae16a42a84070003b528700186192390f65e2008, +de5c24489a1cc014ab2e3001a815642aa21ca370a0070011e65e2008312595fc921020022500019b90076028108000129210200240000131b010001902600016, +81e8000000000000d22aa4387fffff47b21020009407000bb0100019961b237081e800001900019bb21020027fffff4f92102002b010001980a3400f02600006, +9e1000018802800b980323309403000f19000003961b6370400000029e10000f8210000f1b00019b000000000000000000000000000000000000000000000000, +9e10000f390000039de3bf504000000200000000000000000000000000000000000000000000000081c3e008c631243aca11243a86016001d211243ad2322002, +e804650ce826a020ea5c6010ea76a0107fffa95590046510ec5c6008ec762010ee5c6000ee762008b4062008a206c019b21f6370b607000f3b00019bb80722dc, +00000000000000000000000000000000000000000000000081c7e00891e820007fffa95390046510e45c6018e476a01822600004c076a018e65c650880a4ffff, +9010001cee0e0019b806001d7fffa93292102040ba06a338b206a3294000015b35000115b607000f9007a7bfb807224c9e10000f390000039de3bf1040000002, +e427a7cfc027a7d3e6062004e627a7cbe837a7bfc027a7c7920620212100019b9007a7d8e42e0015a810200caa05a329a41020012d00011580a5e00012400023, +9207a7bf1100019b913a60007fffc8809406c00bd202a4dc1900019b961b23707fffa919900364e09e1c23709a06c00f4000017a94102020e20e2020e22fa7d7, +9de3bf104000000200000000000000000000000000000000000000000000000081c7e00881e800007fffa9159010001c7fffa917900124e08a1a23708806c005, +b010001c7fffa8fa02400005aa102001ee0e001980a5e0007fffa8f79010001cba06a330b806001db206a328b607000f35000115b80721549e10000f39000003, +e427a7cbc077a7cfe40620049a06c00f9e1c2370c027a7c792102040e637a7bf2100019b4000010da610200cea2e00149007a7bfa805a32881e800002d000115, +8a1a23708806c0059207a7bf1100019b913a60007fffc8429406c00bd202a4dc1900019b961b23707fffa8e59010001c7fffa8dd900364e0e2062010e277a7d7, +0000014c000001540000013c000001440000012c000001340000011c000001240000010c00000114000000fc0000010481c7e00881e800007fffa8d9900124e0, +ac1de390b806c00f2f000003b606e02c9e10000f370000039de3bf50400000020000000000000000000000000000000000000000000000000000015c00000000, +4000003690063d20d416a002d616a004b4046450d216a0008a8d20040260000ce85d6000b0070018a2070012b01e63e833000035a41ce3702700019baa070016, +1840001fb92ea00280a6a00c9a04000fb5332000a13c2000213fffffa0042338400000029e10000f8a0a2004d816a0009207000ad05a600017000003941ae390, +b2063e501080000fb2063e2010800011b2063de810800013b2063dc010800015b2063d8810800017b2063d5010800019010000001080001bf847000d81c7000d, +02c1400401000000b2063fa8b2063ff0b2063f6810800003b2063f4010800005b2063f1810800007b2063ee810800009b2063ea01080000bb2063e781080000d, +a007a88780a6e02580a6e00002400043c02fa7f6f64e2000f877a89ffa77a8a7f477a88ff677a8979de3bf40f277a88781c7e00881e800004000000481e80000, +80a6e0700240001080a6e0700640001bf64e2001b006200110800031f62fa7f57fffcb8190100011b410200df42fa7f580a6e00a12400035a207a7f502400009, +b0062001d8042000a00420081080001f901640157fffcb6cf2042004ab2db02010800026b00620012240000cd8042000ec04200080a6e07880a6e07322480007, +b0062001e804200080a6e0643240000f80a6e0250240000d80a6e0000240001710800016b00620014000002492102010a00420089013c00bde042004972b3020, +124fffc380a6e025f64e200080a6e00090100011b0062001f62fa7f57fffcb4e10800006b0062001400000149210200aa52d30209014c012e6042004a0042008, +b80721aca207000f80a6600ac02fa7fe9e10000f390000029de3bf404000000200000000000000000000000000000000000000000000000081c7e00881e80000, +80a6c01c0a600008ba4f401cb66e001d0a60000cba102001b93e600080a6001c90100010b0200018da2fa7fd7fffcb320ec600069a10202d12400008a007a7fd, +90100010808f4013e82fa7fd7fffcb1ae84d4012a6276001ac1ee148a404401637000004aa6e001d3a6ffff9ba4f401c9e6e001d80a3c01c37000004ba4f401c, +000000000000000081e8000000000000aa6e001d81c7e008ba6f401c2aff7ff1ae260019b0100017b46e001db24e801d2acf4006b010001712600004ae0e0013, +80a3400283657001872a30208418fffe112000008210000006600026941000089a10000980a3600280a000091a60002f00000000000000000000000000000000, +c02abffd80a2c00d9602e0049402a004ed6aa102c02aa000010000009a23200380a260040660000f9610200098037fff9810200092036000808860012240001e, +98102000c02b000a81c3e00801000000246ffffdc02aa0009402a00180a2c00cc02aa0009602e0011460000801000000c02abfff80a2c00cc02abffe046ffff9, +9a10000a8a10000880a0000a1a60004600000000000000000000000000000000000000000000000081c3e008010000002a6ffffec02b000a9803200180a3000d, +80a2c00d8366f001962300038965700198188003821000008738b03f80a34009921abffe881000009528702084214008901000090320000080a360040660003b, +c16a2082ed6960829402a00190022001d60a20009a2320030660001a0100000098037fff80a2600592036000941020002240002b8810200094092001808a8001, +8a01600180a2800cc4297fffd6296000d60a3fff046ffff3c40a3ffec6297ffec60a3ffdc8297ffd80a2800d8a01600490022004d62960009402a004c80a2000, +d22900058801200188102000d209000881c3e00801000000246ffffbda0a20008a01600180a2800cda29600090022001da0a20009402a0011460000a01000000, +9e10000f290000019de3bf50400000020000000000000000000000000000000000000000000000000100000000000000d209000881c3e00880a1000d2a6ffffd, +3310c6f7b00662839732b0200ac2c008d85f2000944e000c7fff9da4010000000ac3c004b80420e0a0044012de5c20e0a41ce370a205000f2700019ba805229c, +1a60000801000000b822001b80a7001d7fffa742b61000087fffa74401000000b6076240ba6a801bbb35a0123b0003d0ad35f02010800005b532a000ae4e8018, +8210000f0500019b00000000000000000000000000000000000000000000000081c7e00881e800000a6ffffc010000009a22001b80a3401d7fffa73c01000000, +8a012060c201600080a360000440001c8a102000da012030c85920b802c100218218a370880140018a00c00f9e100001070000018600e1d0400000029e10000f, +d0716040d67160301080000e8a102000364ffff6c20160008a01608080a36001010000009a037fff80a0800a026000099a037fffc401600480a0400932600007, +0000000000000000000000000000000081c3e00890100005901000058a102000c621601481c3e008d221601086136800da0160149212a800d8716038d4016010, +921020029604001bb61f7d84980400187fffca203b000091b01e7dd8a007000f33000091b80721049e10000f390000019de3bf50400000020000000000000000, +2f00019bac1de3707ffffe68900400142b000035a81d63f0808be04002600005a2040012de5c600027000003a41ce3900ac2000cb81000087fffffbe94102002, +3500019bb80720649e10000f390000019de3bf504000000200000000000000000000000000000000000000000000000081c7e00881e80000b4040016f876a0b0, +2240001ab0063fffa006c0148088600aba05a060a81d7e982b000062c205a07004400026b805e0b8f005a03080a62000ae06c019ec5de0b8b21ea370b607000f, +961000109022400a9603400c952af0019803c0099b2b3003a22240129f2c7003a52a7005c60760089334e000c85f3f700a400015a620a010c407600080a0a010, +00000000000000007fffffa681e80000364fffe3c2076010ba07608080a62001d0776028b0063fff7fffb96898102000900100059338e0009410001d8b2a3006, +9006801bb01e60e0b61f63607ffff5db33000006b407000f3b000005b807237c9e10000f390000009de3bf504000000200000000000000000000000000000000, +19000000961b6390400000029e10000f8210000f1b00000300000000000000000000000000000000000000000000000081e8000000000000b00680187ffff5d7, +81c3e008010000007ffffdf89e1000018210000f90014003d25a2000861920180260000809000036d25aa000808a60019e1000019401400b980323208a03000f, +9de3bf504000000200000000000000000000000000000000000000000000000081c3e00801000000000000000000000000000000000000000000000000000000, +81c7e00891e820007ffffdd8900680162f000036ac1de048808e200102600005b206801bf05e6000b61f6390b407000f3b000003b80722949e10000f39000000, +9e1000019401000b980322308803000f19000000961b6390400000029e10000f8210000f1b000003000000000000000000000000000000000000000000000000, +0000000000000000000000000000000001000000000000009e10000181c3e008900100057ffffdbd8a1a20608210000f0260000711000036d25aa000808a6001, +2f000036ac1de078808e200102600005b206801bf05e6000b61f6390b407000f3b000003b80721c49e10000f390000009de3bf50400000020000000000000000, +00000000000000009e100001000000008210000f7ffff34300000000000000000000000000000000000000000000000081c7e00891e820007ffffda490068016, +74315f667067615d6f6e746172696f3a61746c616b65733a3a3238205b67726530312f31392030302e3120323031362f727669736f7220304028232948797065, +04c0c0140100000002c080160100000010bfa016010000008341400082007fa05f667067610d0a00746172696f3a74316c616b65733a6f6e0d0a006772656174, +880120018400a00122c14006ca28800088013f9fca0900008620e001894140008400a0010cf8fffbca28800088012001ca09000022c140068941400088013f80, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081c1e004010000000cf8fffb8620e001, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000fff002f9d8000000fff002f998000000fff002f70800000001000000010000000100000300000000000000000000000000000000000000000000000000, +0000000000000010000000fff00193a00000000000000002000000fff00195580000000000000001000000fff001934c00000000000000000000000000000000, +0000000000000016000000fff0019a780000000000000015000000fff00199180000000000000014000000fff001a6900000000000000012000000fff0019ad8, +0000000000000020000000fff001a6100000000000000019000000fff001a59c0000000000000018000000fff0019dfc0000000000000017000000fff0019fc0, +0000000000000024000000fff001cf780000000000000023000000fff001cefc0000000000000022000000fff001c9c00000000000000021000000fff001c768, +0000000000000028000000fff00197f40000000000000027000000fff001988c0000000000000026000000fff001d0200000000000000025000000fff001cfdc, +0000000000000031000000fff0019904000000000000002b000000fff001cca8000000000000002a000000fff001cc180000000000000029000000fff001d28c, +0000000000000051000000fff00195fc0000000000000050000000fff001a0cc0000000000000042000000fff0019f140000000000000032000000fff0019e54, +0000000000000091000000fff001a2c00000000000000090000000fff001daa80000000000000061000000fff001dcd80000000000000060000000fff001963c, +0000000000000095000000fff0019fd40000000000000094000000fff001a47c0000000000000093000000fff001a3cc0000000000000092000000fff001a3ac, +00000000000000f0000000fff001a4a40000000000000204000000fff001ce8c0000000000000203000000fff001cd380000000000000202000000fff001a0a0, +0000000000000062000000fff0019c740000000000000011000000fff001a6240000000000000005000000fff001e51c00000000000000f1000000fff001e458, +0000000200000000000000fff002fb08000000fff002fa18000000010000000000000002000001b0000000fff001e2500000000000000063000000fff001df20, +00000000000000a2000000fff001a82800000000000000a1000000fff001a7cc00000000000000a00000000000000000000000fff002fb88000000fff002fb08, +00000000000000a6000000fff001a9a400000000000000a5000000fff001a94800000000000000a4000000fff001a8ec00000000000000a3000000fff001a884, +00000000000000aa000000fff001ab1400000000000000a9000000fff001aab800000000000000a8000000fff001aa5c00000000000000a7000000fff001aa00, +00000000000000ae000000fff001abd800000000000000ad000000fff001acec00000000000000ac000000fff001ac9000000000000000ab000000fff001ab70, +00000000000000aa000000fff001ab1400000000000000a9000000fff001aab800000000000000a8000000fff001aa5c00000000000000a7000000fff001ac34, +00000000000000ae000000fff001abd800000000000000ad000000fff001acec00000000000000ac000000fff001ac9000000000000000ab000000fff001ab70, +000000fff001ad4800000000000000700000000000000000000000fff002fbd0000000fff002fbb000000001000000000000000300000048000000fff001ac34, +00000000000000b00000000000000000000000fff002fdd8000000fff002fbf800000001000000000000010000000208000000fff001af5c0000000000000071, +00000000000000b4000000fff001c36000000000000000b3000000fff001c2a800000000000000b2000000fff001c30400000000000000b1000000fff001c194, +00000000000000b8000000fff001c57800000000000000b7000000fff001c4fc00000000000000b6000000fff001c45c00000000000000b5000000fff001c3bc, +00000000000000c3000000fff001e69c00000000000000c2000000fff001e64000000000000000c1000000fff001e5e400000000000000c0000000fff001c608, +00000000000000c7000000fff001e82400000000000000c6000000fff001e7bc00000000000000c5000000fff001e76000000000000000c4000000fff001e6f8, +00000000000000cb000000fff001e9a000000000000000ca000000fff001e94400000000000000c9000000fff001e8e800000000000000c8000000fff001e880, +00000000000000d0000000fff001ea6400000000000000ce000000fff001ea0800000000000000cd000000fff001eb1c00000000000000cc000000fff001eac0, +00000000000000b0000000fff001ec9800000000000000d3000000fff001ec3c00000000000000d2000000fff001ebe000000000000000d1000000fff001eb84, +0000000000000000000000fff002fe50000000fff002fe0000000001000000000000010200000078000000fff001c24c00000000000000b2000000fff001c1f0, +000000fff00167940000000000000083000000fff00167680000000000000082000000fff0016ad00000000000000081000000fff00168880000000000000080, +000000fff002fea00000000200000000000000fff002fea0000000fff002fe90000000010000000000000103000000c0000000fff0016ba40000000000000084, +000000fff001be040000000000000117000000fff001bed80000000000000115000000fff001b53c00000000000001100000000000000000000000fff002ff10, +000000fff001bd9c0000000000000116000000fff001b97c0000000000000111000000fff001bcec0000000000000114000000fff001bc3c0000000000000113, +00000000000001000000000000000000000000fff002ff78000000fff002ff3800000001000000000000020000000068000000fff001bb8c0000000000000112, +0000030000000048000000fff001d4a80000000000000103000000fff001d4300000000000000102000000fff001d50c0000000000000101000000fff001d4c0, +000000fff001a7a40000000000000201000000fff001a73400000000000002000000000000000000000000fff002ffc0000000fff002ffa00000000100000000, +00000000000000e1000000fff001f20800000000000000e00000000000000000000000fff00300c8000000fff002ffe800000001000000000000010100000108, +00000000000000e5000000fff001f72400000000000000e4000000fff001f59800000000000000e3000000fff001f36800000000000000e2000000fff001f308, +00000000000000eb000000fff001fdc800000000000000ea000000fff001fcf800000000000000e7000000fff001fbd800000000000000e6000000fff001f8a0, +00000000000000ef000000fff00207e000000000000000ee000000fff00201b000000000000000ed000000fff001ff3400000000000000ec000000fff001fed8, +000000fff00371b00000000000000010000000fff00371a80000000000000008000000fff00371a000000000000000000000000000000000000000fff0020848, +000000fff00371d00000000000000050000000fff00371c80000000000000058000000fff00371c000000000000001c0000000fff00371b80000000000000018, +000000fff00371f00000000000000068000000fff00371e80000000000000060000000fff00371e00000000000000020000000fff00371d80000000000000028, +000000fff003721000000000000000f0000000fff00372080000000000000100000000fff00372000000000000000078000000fff00371f80000000000000070, +000000fff00372400000000000000080000000fff00372380000000000000088000000fff003722800000000000000b8000000fff00372180000000000000118, +000000fff00372600000000000000140000000fff00372580000000000000148000000fff00372500000000000000150000000fff003724800000000000001a0, +000000fff00372900000000000000130000000fff003728800000000000000b0000000fff003728000000000000000c0000000fff00372700000000000000158, +000000fff00372b00000000000000098000000fff00372a80000000000000090000000fff00372a00000000000000108000000fff003729800000000000000f8, +000000fff00372e80000000000000128000000fff00372d80000000000000190000000fff00372c80000000000000180000000fff00372b80000000000000160, +000000fff003730800000000000000d8000000fff00373000000000000000188000000fff00372f800000000000001b8000000fff00372f00000000000000198, +000000fff00373300000000000000048000000fff00373200000000000000040000000fff00373180000000000000038000000fff00373100000000000000030, +000000fff00373500000000000000168000000fff003734800000000000000c8000000fff00373400000000000000138000000fff003733800000000000001c8, +000000fff003739800000000000001b0000000fff00373880000000000000170000000fff00373700000000000000178000000fff003736000000000000001a8, +000000fff00373e00000000000000220000000fff00373c80000000000000218000000fff00373b80000000000000210000000fff00373a800000000000001e8, +000000fff00374180000000000000240000000fff00374080000000000000238000000fff00373f80000000000000230000000fff00373f00000000000000228, +000000fff00374480000000000000270000000fff00374380000000000000268000000fff00374300000000000000260000000fff00374280000000000000258, +000000fff003748800000000000002b0000000fff003747800000000000002a8000000fff00374680000000000000280000000fff00374580000000000000278, +000000fff00374b800000000000000a8000000fff00374b000000000000000a0000000fff00374a80000000000000288000000fff00374980000000000000290, +000000fff00374e80000000000000200000000fff00374d800000000000002b8000000fff00374d000000000000002a0000000fff00374c00000000000000298, +000000fff003752000000000000001d0000000fff003751000000000000000e8000000fff003750000000000000000e0000000fff00374f80000000000000120, +000000fff003755800000000000001f8000000fff003755000000000000001f0000000fff003754000000000000001e0000000fff003753000000000000001d8, +000000fff003758800000000000002c8000000fff00375800000000000000250000000fff00375780000000000000248000000fff00375680000000000000208, +000000fff00256200000000000000000000000fff0038498000000000000000000000000000000000000000000000000000000fff003759800000000000002c0, +000000fff0027790000000fff0027288000000fff00271d80000000200000000000000fff00384a0000000fff00263c8000000fff0026290000000fff00256f8, +000000fff00384b0000000fff0028270000000fff0028250000000fff0027c90000000fff0027b700000000100000000000000fff00384a8000000fff00277b0, +000000fff00287d80000000500000000000000fff00384b8000000fff0029ee0000000fff0029ec0000000fff00298a8000000fff00298500000000700000000, +000000fff002aac8000000fff002a428000000fff002a3800000000600000000000000fff00384c0000000fff0029248000000fff0029228000000fff00288c8, +000000fff00384d0000000fff002b7a0000000fff002b780000000fff002b1a0000000fff002b0e00000000300000000000000fff00384c8000000fff002aae8, +000000000000000000000000000000000000000000000000000000fff002f498000000fff002f508000000fff002f438000000fff002f4180000000400000000, +00000000000000000000000000000000000000000000000038396162636465663031323334353637000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +0000000000000000000000fff001d628000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000fff001d6e8000000fff001d748000000fff001d7d4000000fff001d77c000000fff001d668000000fff001d634, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +000000fff002089c000000fff0020850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000fff0020ab0000000fff0020a64000000fff00209f8000000fff00209a8000000fff0020934000000fff00208e8, +000000fff00309b00000000000000000000000fff00309b00000000000000000000000fff00308300000000000000000000000fff00308300000000000000000, +000000fff0030cb00000000000000000000000fff0030cb00000000000000000000000fff0030b300000000000000000000000fff0030b300000000000000000, +0000000000000000000000000000000000000000000000000000000000000000000000fff0030fb00000000000000000000000fff0030e300000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +0000048c00020000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +7069746f6e2d7377652f6d6d61746c2f706f72742f686f6d702e63000c2f65787372632f6d6473752f636f6d6d6f6e2f2e2e2f2e2e2f2e2e0000000000000801, +756e73747564696f00202f6f70742f732f74315f667067612f6f6e746172696f6561746c616b6573722f7372632f6772797065727669736f2f7375626f732f68, +6c202d492e2e2f2e7761726e3d25616c784f33202d657272202d4b504943202d617263683d763961696e2f6363202d786f2f70726f642f622f53554e57737072, +6d6d6f6e2f696e636c616b65732f636f2e2e2f67726561742d492e2e2f2e2e2f696e636c756465206f6e746172696f2f61746c616b65732f2e2f2e2e2f677265, +5245534554434f4e65202d492e202d442e2f696e636c7564492e2e2f2e2e2f2e6e636c756465202d636f6d6d6f6e2f692e2f2e2e2f2e2e2f6c756465202d492e, +5f4552524154554d444e494147415241554242455253202d424c4548575343524e4649475f454e41445245534554434f454e5449434b202d4649475f42524f4b, +4552524154554d5f4e4941474152415f554d5f3431202d4452415f4552524154202d444e49414741524154554d5f343041474152415f45525f3339202d444e49, +535f4552524154552d44534f4c4152494e4b5f4841434b20524154554d5f4c492d44504c585f45524d5f32305f313820455f4552524154553433202d44464952, +54554d5f363533385249535f4552524145202d44534f4c415745525f4359434c524154554d5f504f535f315f305f455236202d444c444f4d4d5f363439363236, +4445425547202d5545494e4954202d44454d4f52595f5052315f465047415f4d534e4554202d555454315f465047415f5f46504741202d55383938202d445431, +4f4e4649475f44494e475550202d4443474152415f4252495049202d554e49415354524943545f414154494f4e202d44202d4453494d554c464f525f5a455553, +49475f494f42595053202d55434f4e46464952455f45425555434f4e4649475f475f46495245202d202d55434f4e46494649475f50434945534b202d55434f4e, +475f535441544943202d44434f4e46494649475f465047415643202d55434f4e434f4e4649475f53435f535643202d444e4649475f564253415353202d55434f, +4f4e4649475f48565f534153202d44432d55434f4e4649474f4e42434f5059204649475f4c4547494f4e202d55434f4e4255475f4c454749544f44202d554445, +5f425249444745204e4649475f4c4443455354202d55434f455253494f4e5f54434f4e4649475f565f55415254202d554f4e4649475f434e55415254202d4443, +202d63202d6f206d5f4252494e4755502d55434f4e4649474f525f5a4555532054494f4e202d55462d4453494d554c415f43525950544f202d44434f4e464947, +756e4f535f737061204320352e3920533b503b523d53756e702e630058613b4f7372632f6d6473752f636f6d6d6f6e2f2e2e2f2e2e2f2e2e647375702e6f2020, +322e320000000000475f47454e20352e773b63643b004442636b656e643b726130372f31323b6261303120323030372f203132343836372d7263205061746368, +6d6f6e2f737263002e2f2e2e2f636f6d000000012e2e2f2eff040a000101010100000000002f04000000003900020000ffffffff000000000000000000000000, +0008012e2e2f2e2e02000000000000000000000000048c00000000ffffffff0008874408250810070308130b1b0885440001000000011100006d647375702e63, +6f732f68797065726e2d73772f73756261746c2f7069746f2f686f6d652f6d6d0c2f6578706f727465636f6e662e63006f6e2f7372632f722f2e2e2f636f6d6d, +577370726f2f70727564696f2f53554e70742f73756e73746670676100202f6f6172696f2f74315f616b65732f6f6e74632f67726561746c7669736f722f7372, +2f67726561746c612e2e2f2e2e2f2e2e3d25616c6c202d492d6572727761726e4943202d784f33203d763961202d4b5063202d78617263686f642f62696e2f63, +202d492e2e2f2e2e2f696e636c756465732f636f6d6d6f6e726561746c616b652f2e2e2f2e2e2f67756465202d492e2e72696f2f696e636c6b65732f6f6e7461, +42524f4b454e544954434f4e4649475f2e202d4452455345636c756465202d492e2e2f2e2e2f696e6465202d492e2e2f6f6e2f696e636c752f2e2e2f636f6d6d, +2d444e49414741524154554d5f333920474152415f4552525253202d444e494157534352554242455f454e41424c45484554434f4e464947434b202d44524553, +44464952455f455254554d5f3433202d4152415f4552524131202d444e49414752524154554d5f344941474152415f454d5f3430202d444e415f455252415455, +3936323636202d44524154554d5f36344c415249535f455241434b202d44534f4d5f4c494e4b5f48585f4552524154555f3138202d44504c524154554d5f3230, +2d4454315f46504736353338383938204552524154554d5f534f4c415249535f4359434c45202d444d5f504f5745525f305f4552524154554c444f4d535f315f, +5a455553202d445347202d55464f525f54202d4444454255595f505245494e4947415f4d454d4f52202d5554315f46505047415f534e455441202d5554315f46, +55434f4e4649475f475f4449534b202d202d44434f4e46495f4252494e475550554e49414741524143545f415049202d4e202d4453545249494d554c4154494f, +2d55434f4e4649474f42595041535320434f4e4649475f495f45425553202d554649475f464952455245202d55434f4e4f4e4649475f464950434945202d5543, +2d5544454255475f41544943544f44204f4e4649475f535446504741202d444355434f4e4649475f49475f535643202d43202d44434f4e465f564253435f5356, +202d44434f4e4649475f485655415254202d44434f4e46494e4649475f5341534f5059202d55434f4c4547494f4e424355434f4e4649475f4c4547494f4e202d, +4e4649475f435259444745202d44434f5f4c44435f4252492d55434f4e4649474f4e5f544553542049475f564552534954202d55434f4e46475f434e5f554152, +662e6f20202e2e2f2d6f207265636f6e4e475550202d63204e4649475f425249455553202d55434f202d55464f525f5a4d554c4154494f4e50544f202d445349, +20506174636820314f535f737061726320352e392053756e3b523d53756e2043630058613b4f3b502f7265636f6e662e6d6d6f6e2f7372632e2e2f2e2e2f636f, +000000ffffffff00320000000000000047454e20352e322e63643b004442475f656e643b7261773b2f31323b6261636b20323030372f303732343836372d3031, +6e662e6300010000726300007265636f636f6d6d6f6e2f732e2f2e2e2f2e2e2f010101000000012e300400ff040a000102000000000000000000000000003a00, +636f6d6d6f6e2f732e2f2e2e2f2e2e2f000000000008012e0004980002000000ffffff000000000025081007000000ff1b08854408874408000111000308130b, +69736f722f737263732f6879706572762d73772f7375626f746c2f7069746f6e686f6d652f6d6d612f6578706f72742f756573742e63000c72632f7265735f67, +642f62696e2f63637370726f2f70726f64696f2f53554e57742f73756e73747570676100202f6f7072696f2f74315f666b65732f6f6e74612f67726561746c61, +65732f6f6e74617267726561746c616b2e2f2e2e2f2e2e2f25616c6c202d492e6572727761726e3d43202d784f33202d763961202d4b5049202d78617263683d, +2e2e2f636f6d6d6f2d492e2e2f2e2e2f696e636c756465202f636f6d6d6f6e2f6561746c616b65732e2e2f2e2e2f67726465202d492e2e2f696f2f696e636c75, +4b202d4452455345524f4b454e544943434f4e4649475f42202d4452455345546c756465202d492e2e2f2e2e2f696e6365202d492e2e2f2e6e2f696e636c7564, +5f4552524154554d444e49414741524154554d5f3339202d4152415f4552524153202d444e4941475343525542424552454e41424c45485754434f4e4649475f, +4154554d5f32305f464952455f455252554d5f3433202d4452415f4552524154202d444e49414741524154554d5f343141474152415f45525f3430202d444e49, +444f4d535f315f3036323636202d444c4154554d5f363439415249535f455252434b202d44534f4c5f4c494e4b5f48415f4552524154554d3138202d44504c58, +202d5554315f46504454315f46504741353338383938202d52524154554d5f364f4c415249535f4559434c45202d44535f504f5745525f435f4552524154554d, +4d554c4154494f4e455553202d445349202d55464f525f5a202d4444454255475f505245494e4954415f4d454d4f52592d5554315f46504747415f534e455420, +434945202d55434f434f4e4649475f505f4449534b202d552d44434f4e4649474252494e475550204e4941474152415f545f415049202d55202d445354524943, +564253435f53564355434f4e4649475f425950415353202d4f4e4649475f494f45425553202d554349475f464952455f45202d55434f4e464e4649475f464952, +4547494f4e202d555544454255475f4c544943544f44202d4e4649475f535441504741202d44434f434f4e4649475f46475f535643202d55202d44434f4e4649, +5f434e5f554152542d44434f4e4649475f485655415254202d44434f4e4649474649475f534153205059202d55434f4e4547494f4e42434f434f4e4649475f4c, +544f202d4453494d4649475f435259504745202d44434f4e4c44435f4252494455434f4e4649475f4e5f54455354202d475f56455253494f202d55434f4e4649, +2e2f2e2e2f2e2e2f6573742e6f20202e6f207265735f6775475550202d63202d4649475f4252494e5553202d55434f4e2d55464f525f5a45554c4154494f4e20, +74636820313234387370617263205061392053756e4f535f53756e204320352e613b4f3b503b523d756573742e63005872632f7265735f67636f6d6d6f6e2f73, +000000ffffffff00000000000000000020352e322e320000004442475f47454e3b7261773b63643b3b6261636b656e6430372f30372f313236372d3031203230, +67756573742e6300726300007265735f636f6d6d6f6e2f732e2f2e2e2f2e2e2f010101000000012e330400ff040a000102000000000000000000000000003d00, +2e2e2f636f6d6d6f08012e2e2f2e2e2f000000000000000000000000049800020000ffffffff0000874408250810070008130b1b088544080100000001110003, +7065727669736f727375626f732f687969746f6e2d73772f2f6d6d61746c2f706f72742f686f6d652e63000c2f657870735f6d656d6f72796e2f7372632f7265, +2f70726f642f626953554e577370726f6e73747564696f2f202f6f70742f737574315f66706761006f6e746172696f2f61746c616b65732f2f7372632f677265, +746c616b65732f6f2f2e2e2f67726561202d492e2e2f2e2e61726e3d25616c6c4f33202d657272772d4b504943202d787263683d763961206e2f6363202d7861, +2f2e2e2f2e2e2f63756465202d492e2e6d6f6e2f696e636c616b65732f636f6d2e2f67726561746c492e2e2f2e2e2f2e6e636c756465202d6e746172696f2f69, +4e5449434b202d4449475f42524f4b4545534554434f4e46202d492e202d44522f696e636c7564652e2e2f2e2e2f2e2e636c756465202d496f6d6d6f6e2f696e, +474152415f4552523339202d444e49414552524154554d5f4e4941474152415f4242455253202d444c454857534352554649475f454e41425245534554434f4e, +5f4552524154554d33202d444649524552524154554d5f344941474152415f454d5f3431202d444e415f4552524154552d444e49414741524154554d5f343020, +202d444c444f4d535f363439363236365f4552524154554d44534f4c415249534b5f4841434b202d4154554d5f4c494e44504c585f4552525f32305f3138202d, +46504741202d55543938202d4454315f554d5f363533383849535f4552524154202d44534f4c415245525f4359434c454154554d5f504f575f315f305f455252, +2d4453494d554c414f525f5a4555532045425547202d5546494e4954202d44444d4f52595f5052455f465047415f4d454e4554202d555431315f465047415f53, +49475f50434945204b202d55434f4e464e4649475f444953475550202d44434f4152415f4252494e49202d554e49414754524943545f415054494f4e202d4453, +4649475f564253435353202d55434f4e475f494f42595041202d55434f4e46494952455f45425553434f4e4649475f465f46495245202d552d55434f4e464947, +55475f4c4547494f4f44202d554445425f535441544943542d44434f4e46494749475f465047412043202d55434f4e464f4e4649475f53565f535643202d4443, +4e4649475f434e5f415254202d44434f4e4649475f485655534153202d44434f55434f4e4649475f4e42434f5059202d49475f4c4547494f4e202d55434f4e46, +43525950544f202d44434f4e4649475f425249444745202d4649475f4c44435f5354202d55434f4e5253494f4e5f54454f4e4649475f564555415254202d5543, +2e6f20202e2e2f2e735f6d656d6f72792d63202d6f2072654252494e4755502055434f4e4649475f525f5a455553202d494f4e202d55464f4453494d554c4154, +617263205061746353756e4f535f73706e204320352e39204f3b503b523d537572792e630058613b7265735f6d656d6f6d6f6e2f7372632f2e2f2e2e2f636f6d, +000000000000ffff2e322e320000000042475f47454e203561773b63643b004461636b656e643b722f30372f31323b622d303120323030376820313234383637, +65735f6d656d6f726e2f7372630000722e2e2f636f6d6d6f00012e2e2f2e2e2f0a00010101010000000000340400ff04003e000200000000ffff000000000000, +2f2e2e2f2e2e2f630000000008012e2e0494000200000000ffff000000000000081007000000ffff08854408874408250111000308130b1b792e630001000000, +6879706572766973772f7375626f732f2f7069746f6e2d736d652f6d6d61746c78706f72742f686f70752e63000c2f65632f7265735f76636f6d6d6f6e2f7372, +726f2f70726f642f6f2f53554e57737073756e73747564696100202f6f70742f6f2f74315f667067732f6f6e74617269726561746c616b656f722f7372632f67, +6561746c616b65732e2e2f2e2e2f67726c6c202d492e2e2f727761726e3d25612d784f33202d657261202d4b5049432078617263683d763962696e2f6363202d, +2e2e2f2e2e2f2e2e636c756465202d496f6d6d6f6e2f696e746c616b65732f632f2e2e2f67726561202d492e2e2f2e2e2f696e636c7564652f6f6e746172696f, +4b454e5449434b204e4649475f42524f445245534554434f6465202d492e202d2e2e2f696e636c752d492e2e2f2e2e2f696e636c756465202f636f6d6d6f6e2f, +4941474152415f454d5f3339202d444e415f4552524154552d444e4941474152525542424552532041424c45485753434f4e4649475f454e2d44524553455443, +52455f45525241545f3433202d4446495f4552524154554d444e49414741524154554d5f3431202d4152415f4552524130202d444e49414752524154554d5f34, +3636202d444c444f554d5f363439363249535f4552524154202d44534f4c4152494e4b5f4841434b52524154554d5f4c202d44504c585f45554d5f32305f3138, +315f46504741202d38383938202d44544154554d5f363533415249535f4552524c45202d44534f4c4f5745525f43594352524154554d5f504d535f315f305f45, +53202d4453494d5555464f525f5a4555444445425547202d5245494e4954202d4d454d4f52595f5054315f465047415f5f534e4554202d555554315f46504741, +4e4649475f50434949534b202d55434f434f4e4649475f44494e475550202d4441474152415f4252415049202d554e49445354524943545f4c4154494f4e202d, +4f4e4649475f564250415353202d55434649475f494f42595553202d55434f4e5f464952455f45422d55434f4e46494749475f464952452045202d55434f4e46, +454255475f4c454743544f44202d554449475f535441544941202d44434f4e464e4649475f465047535643202d55434f44434f4e4649475f53435f535643202d, +434f4e4649475f435655415254202d44434f4e4649475f48475f534153202d44202d55434f4e4649494f4e42434f50594e4649475f4c4547494f4e202d55434f, +475f43525950544f202d44434f4e4649435f4252494447454f4e4649475f4c4454455354202d554356455253494f4e5f55434f4e4649475f4e5f55415254202d, +2e6f20202e2e2f2e7265735f7663707550202d63202d6f20475f4252494e4755202d55434f4e4649464f525f5a4555534154494f4e202d55202d4453494d554c, +63205061746368206e4f535f737061724320352e39205375503b523d53756e202e630058613b4f3b7265735f766370756d6f6e2f7372632f2e2f2e2e2f636f6d, +000000000000ffff2e320000000000005f47454e20352e323b63643b004442476b656e643b726177372f31323b6261633120323030372f303132343836372d30, +65735f766370752e6e2f7372630000722e2e2f636f6d6d6f00012e2e2f2e2e2f0a00010101010000000000320400ff04003c000200000000ffff000000000000, +2e2f2e2e2f636f6d000008012e2e2f2e0002000000000000000000000000049007000000ffffffff4408874408250810000308130b1b08856300010000000111, +65727669736f722f75626f732f687970746f6e2d73772f736d6d61746c2f706972742f686f6d652f63000c2f6578706f7265735f6c64632e6d6f6e2f7372632f, +70726f642f62696e554e577370726f2f73747564696f2f532f6f70742f73756e315f6670676100206e746172696f2f74746c616b65732f6f7372632f67726561, +6c616b65732f6f6e2e2e2f67726561742d492e2e2f2e2e2f726e3d25616c6c2033202d65727277614b504943202d784f63683d763961202d2f6363202d786172, +2e2e2f2e2e2f636f6465202d492e2e2f6f6e2f696e636c756b65732f636f6d6d2f67726561746c612e2e2f2e2e2f2e2e636c756465202d49746172696f2f696e, +5449434b202d4452475f42524f4b454e534554434f4e46492d492e202d445245696e636c756465202e2f2e2e2f2e2e2f6c756465202d492e6d6d6f6e2f696e63, +4152415f4552524139202d444e49414752524154554d5f334941474152415f4542455253202d444e454857534352554249475f454e41424c45534554434f4e46, +4552524154554d5f202d44464952455f524154554d5f343341474152415f45525f3431202d444e495f4552524154554d444e49414741524154554d5f3430202d, +2d444c444f4d535f36343936323636204552524154554d5f534f4c415249535f5f4841434b202d4454554d5f4c494e4b504c585f4552524132305f3138202d44, +504741202d55543138202d4454315f464d5f363533383839535f4552524154552d44534f4c415249525f4359434c452054554d5f504f5745315f305f45525241, +4453494d554c4154525f5a455553202d425547202d55464f4e4954202d4444454f52595f50524549465047415f4d454d4554202d5554315f5f465047415f534e, +475f50434945202d202d55434f4e46494649475f4449534b5550202d44434f4e52415f4252494e47202d554e49414741524943545f415049494f4e202d445354, +49475f564253435f53202d55434f4e465f494f42595041532d55434f4e46494752455f45425553204f4e4649475f464946495245202d554355434f4e4649475f, +475f4c4547494f4e44202d5544454255535441544943544f44434f4e4649475f475f46504741202d202d55434f4e46494e4649475f535643535643202d44434f, +4649475f434e5f555254202d44434f4e4649475f485655414153202d44434f4e434f4e4649475f5342434f5059202d55475f4c4547494f4e202d55434f4e4649, +525950544f202d44434f4e4649475f435249444745202d4449475f4c44435f4254202d55434f4e4653494f4e5f5445534e4649475f564552415254202d55434f, +2e2e2f2e2e2f2e2e5f6c64632e6f202063202d6f2072657352494e475550202d434f4e4649475f425f5a455553202d554f4e202d55464f5253494d554c415449, +636820313234383670617263205061742053756e4f535f73756e204320352e393b4f3b503b523d536c64632e630058617372632f7265735f2f636f6d6d6f6e2f, +ffffffff000000000000000000000000352e322e320000004442475f47454e207261773b63643b006261636b656e643b372f30372f31323b372d303120323030, +2e63000100000001007265735f6c64636d6f6e2f737263002e2f2e2e2f636f6d000000012e2e2f2eff040a000101010100000000003104000000003b00020000, +6d6d6f6e2f7372632e2e2f2e2e2f636f00000008012e2e2f9c00020000000000ff000000000000041007000000ffffff854408874408250811000308130b1b08, +69736f722f737263732f6879706572762d73772f7375626f746c2f7069746f6e686f6d652f6d6d612f6578706f72742f736f6c652e63000c2f7265735f636f6e, +642f62696e2f63637370726f2f70726f64696f2f53554e57742f73756e73747570676100202f6f7072696f2f74315f666b65732f6f6e74612f67726561746c61, +65732f6f6e74617267726561746c616b2e2f2e2e2f2e2e2f25616c6c202d492e6572727761726e3d43202d784f33202d763961202d4b5049202d78617263683d, +2e2e2f636f6d6d6f2d492e2e2f2e2e2f696e636c756465202f636f6d6d6f6e2f6561746c616b65732e2e2f2e2e2f67726465202d492e2e2f696f2f696e636c75, +4b202d4452455345524f4b454e544943434f4e4649475f42202d4452455345546c756465202d492e2e2f2e2e2f696e6365202d492e2e2f2e6e2f696e636c7564, +5f4552524154554d444e49414741524154554d5f3339202d4152415f4552524153202d444e4941475343525542424552454e41424c45485754434f4e4649475f, +4154554d5f32305f464952455f455252554d5f3433202d4452415f4552524154202d444e49414741524154554d5f343141474152415f45525f3430202d444e49, +444f4d535f315f3036323636202d444c4154554d5f363439415249535f455252434b202d44534f4c5f4c494e4b5f48415f4552524154554d3138202d44504c58, +202d5554315f46504454315f46504741353338383938202d52524154554d5f364f4c415249535f4559434c45202d44535f504f5745525f435f4552524154554d, +4d554c4154494f4e455553202d445349202d55464f525f5a202d4444454255475f505245494e4954415f4d454d4f52592d5554315f46504747415f534e455420, +434945202d55434f434f4e4649475f505f4449534b202d552d44434f4e4649474252494e475550204e4941474152415f545f415049202d55202d445354524943, +564253435f53564355434f4e4649475f425950415353202d4f4e4649475f494f45425553202d554349475f464952455f45202d55434f4e464e4649475f464952, +4547494f4e202d555544454255475f4c544943544f44202d4e4649475f535441504741202d44434f434f4e4649475f46475f535643202d55202d44434f4e4649, +5f434e5f554152542d44434f4e4649475f485655415254202d44434f4e4649474649475f534153205059202d55434f4e4547494f4e42434f434f4e4649475f4c, +544f202d4453494d4649475f435259504745202d44434f4e4c44435f4252494455434f4e4649475f4e5f54455354202d475f56455253494f202d55434f4e4649, +202e2e2f2e2e2f2e6e736f6c652e6f206f207265735f636f475550202d63202d4649475f4252494e5553202d55434f4e2d55464f525f5a45554c4154494f4e20, +63205061746368206e4f535f737061724320352e39205375503b523d53756e202e630058613b4f3b5f636f6e736f6c652f7372632f7265732e2f636f6d6d6f6e, +0000000000ffffff2e320000000000005f47454e20352e323b63643b004442476b656e643b726177372f31323b6261633120323030372f303132343836372d30, +735f636f6e736f6c2f737263000072652e2f636f6d6d6f6e012e2e2f2e2e2f2e00010101010000000000350400ff040a3f00020000000000ff00000000000000, +2f2e2e2f2e2e2f630000000008012e2e0490000200000000ffff000000000000081007000000ffff08854408874408250111000308130b1b652e630001000000, +797065727669736f2f7375626f732f687069746f6e2d7377652f6d6d61746c2f706f72742f686f6d752e63000c2f6578632f7265735f6d616f6d6d6f6e2f7372, +6f2f70726f642f622f53554e57737072756e73747564696f00202f6f70742f732f74315f667067612f6f6e746172696f6561746c616b6573722f7372632f6772, +61746c616b65732f2e2f2e2e2f6772656c202d492e2e2f2e7761726e3d25616c784f33202d657272202d4b504943202d617263683d763961696e2f6363202d78, +2e2f2e2e2f2e2e2f6c756465202d492e6d6d6f6e2f696e636c616b65732f636f2e2e2f67726561742d492e2e2f2e2e2f696e636c756465206f6e746172696f2f, +454e5449434b202d4649475f42524f4b5245534554434f4e65202d492e202d442e2f696e636c7564492e2e2f2e2e2f2e6e636c756465202d636f6d6d6f6e2f69, +41474152415f45525f3339202d444e495f4552524154554d444e494147415241554242455253202d424c4548575343524e4649475f454e41445245534554434f, +455f4552524154553433202d444649524552524154554d5f4e4941474152415f554d5f3431202d4452415f4552524154202d444e49414741524154554d5f3430, +36202d444c444f4d4d5f363439363236535f4552524154552d44534f4c4152494e4b5f4841434b20524154554d5f4c492d44504c585f45524d5f32305f313820, +5f46504741202d55383938202d44543154554d5f363533385249535f4552524145202d44534f4c415745525f4359434c524154554d5f504f535f315f305f4552, +202d4453494d554c464f525f5a4555534445425547202d5545494e4954202d44454d4f52595f5052315f465047415f4d534e4554202d555454315f465047415f, +4649475f50434945534b202d55434f4e4f4e4649475f44494e475550202d4443474152415f4252495049202d554e49415354524943545f414154494f4e202d44, +4e4649475f564253415353202d55434f49475f494f42595053202d55434f4e46464952455f45425555434f4e4649475f475f46495245202d202d55434f4e4649, +4255475f4c454749544f44202d554445475f535441544943202d44434f4e46494649475f465047415643202d55434f4e434f4e4649475f53435f535643202d44, +4f4e4649475f434e55415254202d44434f4e4649475f48565f534153202d44432d55434f4e4649474f4e42434f5059204649475f4c4547494f4e202d55434f4e, +5f43525950544f202d44434f4e4649475f425249444745204e4649475f4c4443455354202d55434f455253494f4e5f54434f4e4649475f565f55415254202d55, +20202e2e2f2e2e2f65735f6d61752e6f202d63202d6f20725f4252494e4755502d55434f4e4649474f525f5a4555532054494f4e202d55462d4453494d554c41, +61746368203132345f737061726320502e392053756e4f533d53756e2043203558613b4f3b503b52735f6d61752e63006e2f7372632f72652e2e2f636f6d6d6f, +0000ffffffff000000000000000000004e20352e322e32003b004442475f4745643b7261773b6364323b6261636b656e3030372f30372f313836372d30312032, +61752e63000100006300007265735f6d6f6d6d6f6e2f73722f2e2e2f2e2e2f630101000000012e2e0400ff040a000101000000000000003100000000003b0002, +636f6d6d6f6e2f732e2f2e2e2f2e2e2f000000000008012e0004940002000000ffffff000000000025081007000000ff1b08854408874408000111000308130b, +736f722f7372632f2f6879706572766973772f7375626f736c2f7069746f6e2d6f6d652f6d6d61746578706f72742f686369652e63000c2f72632f7265735f70, +2f62696e2f63632070726f2f70726f64696f2f53554e57732f73756e73747564676100202f6f7074696f2f74315f667065732f6f6e74617267726561746c616b, +732f6f6e74617269726561746c616b652f2e2e2f2e2e2f67616c6c202d492e2e72727761726e3d25202d784f33202d653961202d4b5049432d78617263683d76, +2e2f636f6d6d6f6e492e2e2f2e2e2f2e6e636c756465202d636f6d6d6f6e2f6961746c616b65732f2e2f2e2e2f67726565202d492e2e2f2e6f2f696e636c7564, +202d4452455345544f4b454e5449434b4f4e4649475f42522d44524553455443756465202d492e202f2e2e2f696e636c202d492e2e2f2e2e2f696e636c756465, +4552524154554d5f4e4941474152415f554d5f3339202d4452415f4552524154202d444e4941474143525542424552534e41424c45485753434f4e4649475f45, +54554d5f32305f314952455f455252414d5f3433202d4446415f4552524154552d444e49414741524154554d5f343120474152415f4552523430202d444e4941, +4f4d535f315f305f323636202d444c4454554d5f363439365249535f455252414b202d44534f4c414c494e4b5f4841434552524154554d5f38202d44504c585f, +2d5554315f46504754315f46504741203338383938202d44524154554d5f36354c415249535f4552434c45202d44534f504f5745525f43594552524154554d5f, +554c4154494f4e205553202d4453494d2d55464f525f5a452d44444542554720505245494e4954205f4d454d4f52595f5554315f46504741415f534e4554202d, +4945202d55434f4e4f4e4649475f50434449534b202d554344434f4e4649475f52494e475550202d4941474152415f425f415049202d554e2d44535452494354, +4253435f53564320434f4e4649475f565950415353202d554e4649475f494f42425553202d55434f475f464952455f45202d55434f4e46494649475f46495245, +47494f4e202d554344454255475f4c454943544f44202d554649475f535441544741202d44434f4e4f4e4649475f46505f535643202d55432d44434f4e464947, +434e5f554152542044434f4e4649475f485655415254202d44434f4e4649475f49475f534153202d59202d55434f4e4647494f4e42434f504f4e4649475f4c45, +4f202d4453494d5549475f435259505445202d44434f4e4644435f4252494447434f4e4649475f4c5f54455354202d555f56455253494f4e2d55434f4e464947, +2e2e2f2e2e2f636f652e6f20202e2e2f207265735f7063695550202d63202d6f49475f4252494e4753202d55434f4e4655464f525f5a45554c4154494f4e202d, +203132343836372d7263205061746368756e4f535f737061204320352e3920533b503b523d53756e652e630058613b4f2f7265735f7063696d6d6f6e2f737263, +ffffff000000000000000000000000ff322e320000000000475f47454e20352e773b63643b004442636b656e643b726130372f31323b6261303120323030372f, +2e630001000000017265735f706369656f6e2f73726300002f2e2e2f636f6d6d0000012e2e2f2e2e040a00010101010000000000320400ff00003c0002000000, +6d6d6f6e2f7372632e2e2f2e2e2f636f00000008012e2e2f8800020000000000ff000000000000041007000000ffffff854408874408250811000308130b1b08, +632f67726561746c7669736f722f73726f732f68797065726e2d73772f73756261746c2f7069746f2f686f6d652f6d6d0c2f6578706f72742f696e69742e6300, +63202d78617263686f642f62696e2f63577370726f2f70727564696f2f53554e70742f73756e73746670676100202f6f6172696f2f74315f616b65732f6f6e74, +72696f2f696e636c6b65732f6f6e74612f67726561746c612e2e2f2e2e2f2e2e3d25616c6c202d492d6572727761726e4943202d784f33203d763961202d4b50, +6f6e2f696e636c752f2e2e2f636f6d6d202d492e2e2f2e2e2f696e636c756465732f636f6d6d6f6e726561746c616b652f2e2e2f2e2e2f67756465202d492e2e, +4554434f4e464947434b202d4452455342524f4b454e544954434f4e4649475f2e202d4452455345636c756465202d492e2e2f2e2e2f696e6465202d492e2e2f, +4d5f3430202d444e415f4552524154552d444e49414741524154554d5f333920474152415f4552525253202d444e494157534352554242455f454e41424c4548, +5f3138202d44504c524154554d5f323044464952455f455254554d5f3433202d4152415f4552524131202d444e49414752524154554d5f344941474152415f45, +305f4552524154554c444f4d535f315f3936323636202d44524154554d5f36344c415249535f455241434b202d44534f4d5f4c494e4b5f48585f455252415455, +5047415f534e455441202d5554315f462d4454315f46504736353338383938204552524154554d5f534f4c415249535f4359434c45202d444d5f504f5745525f, +4e202d4453545249494d554c4154494f5a455553202d445347202d55464f525f54202d4444454255595f505245494e4947415f4d454d4f52202d5554315f4650, +4f4e4649475f464950434945202d554355434f4e4649475f475f4449534b202d202d44434f4e46495f4252494e475550554e49414741524143545f415049202d, +43202d44434f4e465f564253435f53562d55434f4e4649474f42595041535320434f4e4649475f495f45425553202d554649475f464952455245202d55434f4e, +55434f4e4649475f4c4547494f4e202d2d5544454255475f41544943544f44204f4e4649475f535446504741202d444355434f4e4649475f49475f535643202d, +54202d55434f4e46475f434e5f554152202d44434f4e4649475f485655415254202d44434f4e46494e4649475f5341534f5059202d55434f4c4547494f4e4243, +4d554c4154494f4e50544f202d4453494e4649475f435259444745202d44434f5f4c44435f4252492d55434f4e4649474f4e5f544553542049475f5645525349, +6f6e2f7372632f692f2e2e2f636f6d6d6f20202e2e2f2e2e2d6f20696e69742e4e475550202d63204e4649475f425249455553202d55434f202d55464f525f5a, +372f30372f31323b372d303120323030636820313234383670617263205061742053756e4f535f73756e204320352e393b4f3b503b523d536e69742e63005861, +0000000000002e04000000003800020000ffffffff0000000000000000000000352e322e320000004442475f47454e207261773b63643b006261636b656e643b, +08874408250810070308130b1b08854400010000000111000000696e69742e636d6d6f6e2f7372632e2e2f2e2e2f636f01000000012e2e2f00ff040a00010101, +2e63000c2f65787076636f6e74726f6c6f6e2f7372632f682f2e2e2f636f6d6d0008012e2e2f2e2e02000000000000000000000000049800000000ffffffff00, +6f6e746172696f2f61746c616b65732f2f7372632f6772657065727669736f727375626f732f687969746f6e2d73772f2f6d6d61746c2f706f72742f686f6d65, +2d4b504943202d787263683d763961206e2f6363202d78612f70726f642f626953554e577370726f6e73747564696f2f202f6f70742f737574315f6670676100, +492e2e2f2e2e2f2e6e636c756465202d6e746172696f2f69746c616b65732f6f2f2e2e2f67726561202d492e2e2f2e2e61726e3d25616c6c4f33202d65727277, +2e2e2f2e2e2f2e2e636c756465202d496f6d6d6f6e2f696e2f2e2e2f2e2e2f63756465202d492e2e6d6f6e2f696e636c616b65732f636f6d2e2f67726561746c, +4c454857534352554649475f454e41425245534554434f4e4e5449434b202d4449475f42524f4b4545534554434f4e46202d492e202d44522f696e636c756465, +415f4552524154552d444e49414741524154554d5f343020474152415f4552523339202d444e49414552524154554d5f4e4941474152415f4242455253202d44, +4154554d5f4c494e44504c585f4552525f32305f3138202d5f4552524154554d33202d444649524552524154554d5f344941474152415f454d5f3431202d444e, +45525f4359434c454154554d5f504f575f315f305f455252202d444c444f4d535f363439363236365f4552524154554d44534f4c415249534b5f4841434b202d, +5f465047415f4d454e4554202d555431315f465047415f5346504741202d55543938202d4454315f554d5f363533383849535f4552524154202d44534f4c4152, +49202d554e49414754524943545f415054494f4e202d44532d4453494d554c414f525f5a4555532045425547202d5546494e4954202d44444d4f52595f505245, +434f4e4649475f465f46495245202d552d55434f4e46494749475f50434945204b202d55434f4e464e4649475f444953475550202d44434f4152415f4252494e, +43202d55434f4e464f4e4649475f53565f535643202d44434649475f564253435353202d55434f4e475f494f42595041202d55434f4e46494952455f45425553, +4e42434f5059202d49475f4c4547494f4e202d55434f4e4655475f4c4547494f4f44202d554445425f535441544943542d44434f4e46494749475f4650474120, +5253494f4e5f54454f4e4649475f564555415254202d55434e4649475f434e5f415254202d44434f4e4649475f485655534153202d44434f55434f4e4649475f, +525f5a455553202d494f4e202d55464f4453494d554c415443525950544f202d44434f4e4649475f425249444745202d4649475f4c44435f5354202d55434f4e, +76636f6e74726f6c6f6e2f7372632f682f2e2e2f636f6d6d6f20202e2e2f2e2e636f6e74726f6c2e2d63202d6f2068764252494e4755502055434f4e4649475f, +372f31323b6261633120323030372f303132343836372d3063205061746368206e4f535f737061724320352e39205375503b523d53756e202e630058613b4f3b, +00000000330400ff00003d0002000000ffffff000000000000000000000000ff2e320000000000005f47454e20352e323b63643b004442476b656e643b726177, +08854408874408250111000308130b1b6c2e6300010000006876636f6e74726f6f6e2f73726300002f2e2e2f636f6d6d0000012e2e2f2e2e040a000101010100, +742e63000c2f6578632f737570706f726f6d6d6f6e2f73722f2e2e2f2e2e2f630000000008012e2e0490000200000000ffff000000000000081007000000ffff, +2f6f6e746172696f6561746c616b6573722f7372632f6772797065727669736f2f7375626f732f687069746f6e2d7377652f6d6d61746c2f706f72742f686f6d, +202d4b504943202d617263683d763961696e2f6363202d786f2f70726f642f622f53554e57737072756e73747564696f00202f6f70742f732f74315f66706761, +2d492e2e2f2e2e2f696e636c756465206f6e746172696f2f61746c616b65732f2e2f2e2e2f6772656c202d492e2e2f2e7761726e3d25616c784f33202d657272, +492e2e2f2e2e2f2e6e636c756465202d636f6d6d6f6e2f692e2f2e2e2f2e2e2f6c756465202d492e6d6d6f6e2f696e636c616b65732f636f2e2e2f6772656174, +424c4548575343524e4649475f454e41445245534554434f454e5449434b202d4649475f42524f4b5245534554434f4e65202d492e202d442e2f696e636c7564, +52415f4552524154202d444e49414741524154554d5f343041474152415f45525f3339202d444e495f4552524154554d444e494147415241554242455253202d, +524154554d5f4c492d44504c585f45524d5f32305f313820455f4552524154553433202d444649524552524154554d5f4e4941474152415f554d5f3431202d44, +5745525f4359434c524154554d5f504f535f315f305f455236202d444c444f4d4d5f363439363236535f4552524154552d44534f4c4152494e4b5f4841434b20, +315f465047415f4d534e4554202d555454315f465047415f5f46504741202d55383938202d44543154554d5f363533385249535f4552524145202d44534f4c41, +5049202d554e49415354524943545f414154494f4e202d44202d4453494d554c464f525f5a4555534445425547202d5545494e4954202d44454d4f52595f5052, +55434f4e4649475f475f46495245202d202d55434f4e46494649475f50434945534b202d55434f4e4f4e4649475f44494e475550202d4443474152415f425249, +5643202d55434f4e434f4e4649475f53435f535643202d444e4649475f564253415353202d55434f49475f494f42595053202d55434f4e46464952455f454255, +4f4e42434f5059204649475f4c4547494f4e202d55434f4e4255475f4c454749544f44202d554445475f535441544943202d44434f4e46494649475f46504741, +455253494f4e5f54434f4e4649475f565f55415254202d554f4e4649475f434e55415254202d44434f4e4649475f48565f534153202d44432d55434f4e464947, +4f525f5a4555532054494f4e202d55462d4453494d554c415f43525950544f202d44434f4e4649475f425249444745204e4649475f4c4443455354202d55434f, +70706f72742e63006e2f7372632f73752e2e2f636f6d6d6f20202e2e2f2e2e2f7570706f72742e6f202d63202d6f20735f4252494e4755502d55434f4e464947, +323b6261636b656e3030372f30372f313836372d3031203261746368203132345f737061726320502e392053756e4f533d53756e2043203558613b4f3b503b52, +0400ff040a000101000000000000003100000000003b00020000ffffffff000000000000000000004e20352e322e32003b004442475f4745643b7261773b6364, +25081007000000ff1b08854408874408000111000308130b72742e6300010000630000737570706f6f6d6d6f6e2f73722f2e2e2f2e2e2f630101000000012e2e, +635f696e69742e636e2f7372632f737665732f636f6d6d6f67726561746c616b2e2f2e2e2f2e2e2f000000000008012e0004a80002000000ffffff0000000000, +6c616b65732f6f6e72632f6772656174727669736f722f73626f732f687970656f6e2d73772f73756d61746c2f706974742f686f6d652f6d000c2f6578706f72, +683d763961202d4b6363202d78617263726f642f62696e2f4e577370726f2f70747564696f2f53556f70742f73756e735f6670676100202f746172696f2f7431, +6c756465202d492e6172696f2f696e63616b65732f6f6e742e2f67726561746c492e2e2f2e2e2f2e6e3d25616c6c202d202d657272776172504943202d784f33, +756465202d492e2e6d6f6e2f696e636c2e2f2e2e2f636f6d65202d492e2e2f2e6e2f696e636c756465732f636f6d6d6f67726561746c616b2e2f2e2e2f2e2e2f, +475f454e41424c45534554434f4e464949434b202d4452455f42524f4b454e544554434f4e464947492e202d445245536e636c756465202d2f2e2e2f2e2e2f69, +4e4941474152415f554d5f3430202d4452415f4552524154202d444e49414741524154554d5f333941474152415f4552455253202d444e494857534352554242, +4c585f4552524154305f3138202d445052524154554d5f322d44464952455f454154554d5f343320474152415f4552523431202d444e49414552524154554d5f, +554d5f504f5745525f305f4552524154444c444f4d535f31343936323636202d52524154554d5f364f4c415249535f454841434b202d4453554d5f4c494e4b5f, +54202d5554315f46465047415f534e454741202d5554315f202d4454315f46505f363533383839385f4552524154554d44534f4c415249535f4359434c45202d, +4943545f415049204f4e202d4453545253494d554c4154495f5a455553202d445547202d55464f524954202d4444454252595f505245494e5047415f4d454d4f, +495245202d55434f434f4e4649475f465f50434945202d552d55434f4e46494749475f4449534b2050202d44434f4e46415f4252494e47552d554e4941474152, +4649475f535643205643202d44434f4e475f564253435f53202d55434f4e4649494f42595041535355434f4e4649475f455f45425553202d4e4649475f464952, +5f4c4547494f4e422d55434f4e4649475f4c4547494f4e20202d5544454255475441544943544f44434f4e4649475f535f46504741202d442d55434f4e464947, +4649475f564552535254202d55434f4e49475f434e5f554154202d44434f4e4649475f485655415253202d44434f4e464f4e4649475f5341434f5059202d5543, +4e202d55464f525f494d554c4154494f5950544f202d44534f4e4649475f435249444745202d4443475f4c44435f4252202d55434f4e4649494f4e5f54455354, +6b65732f636f6d6d2f67726561746c612e2e2f2e2e2f2e2e696e69742e6f2020202d6f207376635f494e475550202d634f4e4649475f42525a455553202d5543, +32343836372d303120506174636820314f535f737061726320352e392053756e3b523d53756e2043630058613b4f3b5076635f696e69742e6f6e2f7372632f73, +0000000000004700000000ffffffff00320000000000000047454e20352e322e63643b004442475f656e643b7261773b2f31323b6261636b20323030372f3037, +76635f696e69742e6e2f73726300007365732f636f6d6d6f67726561746c616b2e2f2e2e2f2e2e2f010101000000012e3d0400ff040a00010200000000000000, +2e2f2e2e2f677265000008012e2e2f2e000200000000000000000000000004a407000000ffffffff4408874408250810000308130b1b08856300010000000111, +772f7375626f732f2f7069746f6e2d736d652f6d6d61746c78706f72742f686f69672e63000c2f657372632f636f6e666f6e746172696f2f61746c616b65732f, +6f2f53554e57737073756e73747564696100202f6f70742f6f2f74315f667067732f6f6e74617269726561746c616b656f722f7372632f676879706572766973, +2e2e2f2e2e2f67726c6c202d492e2e2f727761726e3d25612d784f33202d657261202d4b5049432078617263683d763962696e2f6363202d726f2f70726f642f, +636c756465202d496f6d6d6f6e2f696e746c616b65732f632f2e2e2f67726561202d492e2e2f2e2e2f696e636c7564652f6f6e746172696f6561746c616b6573, +4e4649475f42524f445245534554434f6465202d492e202d2e2e2f696e636c752d492e2e2f2e2e2f696e636c756465202f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +4d5f3339202d444e415f4552524154552d444e4941474152525542424552532041424c45485753434f4e4649475f454e2d445245534554434b454e5449434b20, +5f3433202d4446495f4552524154554d444e49414741524154554d5f3431202d4152415f4552524130202d444e49414752524154554d5f344941474152415f45, +554d5f363439363249535f4552524154202d44534f4c4152494e4b5f4841434b52524154554d5f4c202d44504c585f45554d5f32305f313852455f4552524154, +38383938202d44544154554d5f363533415249535f4552524c45202d44534f4c4f5745525f43594352524154554d5f504d535f315f305f453636202d444c444f, +55464f525f5a4555444445425547202d5245494e4954202d4d454d4f52595f5054315f465047415f5f534e4554202d555554315f46504741315f46504741202d, +49534b202d55434f434f4e4649475f44494e475550202d4441474152415f4252415049202d554e49445354524943545f4c4154494f4e202d53202d4453494d55, +50415353202d55434649475f494f42595553202d55434f4e5f464952455f45422d55434f4e46494749475f464952452045202d55434f4e464e4649475f504349, +43544f44202d554449475f535441544941202d44434f4e464e4649475f465047535643202d55434f44434f4e4649475f53435f535643202d4f4e4649475f5642, +5655415254202d44434f4e4649475f48475f534153202d44202d55434f4e4649494f4e42434f50594e4649475f4c4547494f4e202d55434f454255475f4c4547, +202d44434f4e4649435f4252494447454f4e4649475f4c4454455354202d554356455253494f4e5f55434f4e4649475f4e5f55415254202d434f4e4649475f43, +636f6e6669672e6f50202d63202d6f20475f4252494e4755202d55434f4e4649464f525f5a4555534154494f4e202d55202d4453494d554c475f43525950544f, +4320352e39205375503b523d53756e202e630058613b4f3b632f636f6e666967746172696f2f73726c616b65732f6f6e2e2e2f677265617420202e2e2f2e2e2f, +5f47454e20352e323b63643b004442476b656e643b726177372f31323b6261633120323030372f303132343836372d3063205061746368206e4f535f73706172, +2f67726561746c612e2e2f2e2e2f2e2e0101010100000001003c0400ff040a000002000000000000000000000000004600000000ffffffff2e32000000000000, +00000000000004b807000000ffffffff4408874408250810000308130b1b0885630001000000011100636f6e6669672e72696f2f737263006b65732f6f6e7461, +2e63000c2f6578705f6f6e746172696f7372632f696e69746f6e746172696f2f61746c616b65732f2e2f2e2e2f677265000008012e2e2f2e0002000000000000, +6f6e746172696f2f61746c616b65732f2f7372632f6772657065727669736f727375626f732f687969746f6e2d73772f2f6d6d61746c2f706f72742f686f6d65, +2d4b504943202d787263683d763961206e2f6363202d78612f70726f642f626953554e577370726f6e73747564696f2f202f6f70742f737574315f6670676100, +492e2e2f2e2e2f2e6e636c756465202d6e746172696f2f69746c616b65732f6f2f2e2e2f67726561202d492e2e2f2e2e61726e3d25616c6c4f33202d65727277, +2e2e2f2e2e2f2e2e636c756465202d496f6d6d6f6e2f696e2f2e2e2f2e2e2f63756465202d492e2e6d6f6e2f696e636c616b65732f636f6d2e2f67726561746c, +4c454857534352554649475f454e41425245534554434f4e4e5449434b202d4449475f42524f4b4545534554434f4e46202d492e202d44522f696e636c756465, +415f4552524154552d444e49414741524154554d5f343020474152415f4552523339202d444e49414552524154554d5f4e4941474152415f4242455253202d44, +4154554d5f4c494e44504c585f4552525f32305f3138202d5f4552524154554d33202d444649524552524154554d5f344941474152415f454d5f3431202d444e, +45525f4359434c454154554d5f504f575f315f305f455252202d444c444f4d535f363439363236365f4552524154554d44534f4c415249534b5f4841434b202d, +5f465047415f4d454e4554202d555431315f465047415f5346504741202d55543938202d4454315f554d5f363533383849535f4552524154202d44534f4c4152, +49202d554e49414754524943545f415054494f4e202d44532d4453494d554c414f525f5a4555532045425547202d5546494e4954202d44444d4f52595f505245, +434f4e4649475f465f46495245202d552d55434f4e46494749475f50434945204b202d55434f4e464e4649475f444953475550202d44434f4152415f4252494e, +43202d55434f4e464f4e4649475f53565f535643202d44434649475f564253435353202d55434f4e475f494f42595041202d55434f4e46494952455f45425553, +4e42434f5059202d49475f4c4547494f4e202d55434f4e4655475f4c4547494f4f44202d554445425f535441544943542d44434f4e46494749475f4650474120, +5253494f4e5f54454f4e4649475f564555415254202d55434e4649475f434e5f415254202d44434f4e4649475f485655534153202d44434f55434f4e4649475f, +525f5a455553202d494f4e202d55464f4453494d554c415443525950544f202d44434f4e4649475f425249444745202d4649475f4c44435f5354202d55434f4e, +732f6f6e74617269726561746c616b652f2e2e2f2e2e2f67696f2e6f20202e2e69745f6f6e7461722d63202d6f20696e4252494e4755502055434f4e4649475f, +6820313234383637617263205061746353756e4f535f73706e204320352e39204f3b503b523d5375696f2e630058613b69745f6f6e7461726f2f7372632f696e, +ffffffff0000000000000000000000002e322e320000000042475f47454e203561773b63643b004461636b656e643b722f30372f31323b622d30312032303037, +7372630000696e696f6e746172696f2f61746c616b65732f2e2f2e2e2f677265000000012e2e2f2eff040a000101010100000000004204000000004c00020000, +0000000008012e2e04bc000200000000ffff000000000000081007000000ffff08854408874408250111000308130b1b6f2e630001000000745f6f6e74617269, +6f6d652f6d6d61746578706f72742f686369652e63000c2f735f666972655f706f2f7372632f7265732f6f6e74617269726561746c616b652f2e2e2f2e2e2f67, +676100202f6f7074696f2f74315f667065732f6f6e74617267726561746c616b736f722f7372632f2f6879706572766973772f7375626f736c2f7069746f6e2d, +72727761726e3d25202d784f33202d653961202d4b5049432d78617263683d762f62696e2f63632070726f2f70726f64696f2f53554e57732f73756e73747564, +61746c616b65732f2e2f2e2e2f67726565202d492e2e2f2e6f2f696e636c7564732f6f6e74617269726561746c616b652f2e2e2f2e2e2f67616c6c202d492e2e, +756465202d492e202f2e2e2f696e636c202d492e2e2f2e2e2f696e636c7564652e2f636f6d6d6f6e492e2e2f2e2e2f2e6e636c756465202d636f6d6d6f6e2f69, +202d444e4941474143525542424552534e41424c45485753434f4e4649475f45202d4452455345544f4b454e5449434b4f4e4649475f42522d44524553455443, +2d444e49414741524154554d5f343120474152415f4552523430202d444e49414552524154554d5f4e4941474152415f554d5f3339202d4452415f4552524154, +4b202d44534f4c414c494e4b5f4841434552524154554d5f38202d44504c585f54554d5f32305f314952455f455252414d5f3433202d4446415f455252415455, +4c415249535f4552434c45202d44534f504f5745525f43594552524154554d5f4f4d535f315f305f323636202d444c4454554d5f363439365249535f45525241, +505245494e4954205f4d454d4f52595f5554315f46504741415f534e4554202d2d5554315f46504754315f46504741203338383938202d44524154554d5f3635, +52494e475550202d4941474152415f425f415049202d554e2d44535452494354554c4154494f4e205553202d4453494d2d55464f525f5a452d44444542554720, +425553202d55434f475f464952455f45202d55434f4e46494649475f464952454945202d55434f4e4f4e4649475f50434449534b202d554344434f4e4649475f, +4741202d44434f4e4f4e4649475f46505f535643202d55432d44434f4e4649474253435f53564320434f4e4649475f565950415353202d554e4649475f494f42, +49475f534153202d59202d55434f4e4647494f4e42434f504f4e4649475f4c4547494f4e202d554344454255475f4c454943544f44202d554649475f53544154, +434f4e4649475f4c5f54455354202d555f56455253494f4e2d55434f4e464947434e5f554152542044434f4e4649475f485655415254202d44434f4e4649475f, +49475f4252494e4753202d55434f4e4655464f525f5a45554c4154494f4e202d4f202d4453494d5549475f435259505445202d44434f4e4644435f4252494447, +632f7265735f6669746172696f2f73726c616b65732f6f6e2e2e2f677265617420202e2e2f2e2e2f655f706369652e6f207265735f6669725550202d63202d6f, +20323030372f303732343836372d303120506174636820314f535f737061726320352e392053756e3b523d53756e2043630058613b4f3b5072655f706369652e, +004d000200000000ffff000000000000000000000000ffff320000000000000047454e20352e322e63643b004442475f656e643b7261773b2f31323b6261636b, +6972655f706369656300007265735f66746172696f2f73726c616b65732f6f6e2e2e2f677265617400012e2e2f2e2e2f0a00010101010000000000430400ff04, +69640000000000006261636b000000006677640000000000726f6f74000000001007000000000000854408874408250811000308130b1b082e63000100000001, +63777100000000006d617573000000006d6175000000000063707573000000006370750000000000677565737473000067756573740000006876756172740000, +726f6d6261736500000000000000000075617274626173650000000000000000737472616e646964766964000000000070696400000000006377717300000000, +00000000000000007265616c6261736574000000000000006d656d6f666673656d656d73697a65006d656d62617365006469736b70610000726f6d73697a6500, +68797065727669736d626c6f636b00006d656d6f7279000073696400000000007869640000000000696e6f000000000073697a65000000006261736500000000, +696f626173650000636667626173650069676e0000000000650000000000000063666768616e646c636500000000000076706369646576696f72000000000000, +666c61677300000073657276696365000000000000000000736572766963657364657669636500006465766963657300746f6400000000007063697265677300, +6365737369626c65726e6763746c616300000000000000006469616770726976636365737300000070657266637472616c696e6b000000006d74750000000000, +6c64635f656e64706d617800000000006d656d73637275626e74666c616773006465627567707269746163636573730070657266637472680000000000000000, +7461726765745f746368616e6e656c006f696e74000000006c64635f656e647000000000000000006e64706f696e747373705f6c64635f656f696e7473000000, +7376635f76696e6f7376635f617267007376635f6964000068616e6e656c00007461726765745f6375657374000000007461726765745f677970650000000000, +7669727475616c5f6e73697a650000006c64635f6d6170696e726162617365006c64635f6d6170697376630000000000707269766174655f0000000000000000, +6d64706100000000756e62696e64000069647800000000005f696400000000007265736f7572636564657669636573006368616e6e656c5f6465766963657300, +706172746964000065766963657300007669727475616c645f6d6f64650000007379735f68777477636f6e736f6c65000000000000000000636f6e736f6c6573, +6f75742d7365630063652d626c61636b657175656e637900737469636b2d66726574000000000000746f642d6f66667375656e6379000000746f642d66726571, +74782d696e6f000061736f6e0000000072657365742d72656500000000000000657270742d73697a657270742d706100736563000000000063652d706f6c6c2d, +6f72204d44206d6148797065727669736861636b000000006c782d6c696e6b2d69676e6f72652d7076657273696f6e00636f6e74656e742d72782d696e6f0000, +6465207365617263257820696e206e6f207479706520307872656420656c656d456e636f756e7465617463680a000000696f6e206d69736d6a6f722076657273, +092573202d3e206e440a0000000000007d0a454e444f464d7d0a00000000000078207b0a000000006e6f64655f3078256e6f646520257320680a000000000000, +2e2e2e207d202f2a092573203d207b202578203b0a000000092573203d2030782578203b0a000000092573203d203078203b0a00000000006f64655f30782578, +657820307825780a656c656d20696e643078257820617420204d44207461672009696c6c6567616c0a00000000000000782578202a2f203b206c656e203d2030, +4420636f6e74656e61736963733a204d636f6e6669672d62440a0000000000006520696e2048564d726f6f74206e6f644d697373696e67200000000000000000, +73696f6e206d697374656e742d76657256204d4420636f6e61736963733a2048636f6e6669675f62756e640a000000006e206e6f7420666f742d76657273696f, +61736963733a2048636f6e6669675f6200000000000000006f756e642025780a65722025782c2066206d616a6f7220767570706f727465646d617463683a2073, +6e6f64650a0000004e6f20637075732073206e6f64650a004e6f2067756573742e2578200a00000073696f6e2020257874656e742d76657256204d4420636f6e, +2073657276696365546f6f206d616e7925780a00000000006f7574203d20307863655f626c61636b25780a00000000006d6178203d2030786d656d7363727562, +666c6167733d3078753d307825782c20307825782c206d7425782c207869643d3a207369643d307820402030782578205356432030782578730a000000000000, +3220420a000000004d5455203d203531696e656420746f2020636f6e737472616e656c73206e6f77535643206368616e307825780a00000025782c20696e6f3d, +6e6f64652040203073657276696365200000000000000000204020307825780a0973656e642070610000000000000000204020307825780a0972656376207061, +657276696365206e78696420696e20734d697373696e67206f64650a00000000657276696365206e73696420696e20734d697373696e67207825780a00000000, +657276696365206e6d747520696e20734d697373696e6720206e6f64650a00002073657276696365666c61677320696e4d697373696e67206f64650a00000000, +0000000000000000204020307825780a53657276696365736f64650a00000000657276696365206e696e6f20696e20734d697373696e67206f64650a00000000, +25780a0000000000786368616e3d30783d307825782c20740a0974786261736568616e3d307825787825782c207278637278626173653d307365727669636520, +4c444320636f6e6625780a00000000006f64652040203078737663735f64746e440a0000000000006520696e2048564d726f6f74206e6f644d697373696e6720, +436f6e66696775726f20646f0a0000006f7468696e6720746e6f6465202d206e6e706f696e7473204e6f204c444320656e3a0a0000000000696775726174696f, +650a000000000000204c4443206e6f64696420696e2048566368616e6e656c204d697373696e6720696e740a00000000444320656e64706f696e67204856204c, +78203a00000000006f696e742030782509485620656e6470650a000000000000204c4443206e6f64696420696e2048566368616e6e656c20496e76616c696420, +7565737420696e207461726765745f674d697373696e672064650a000000000056204c4443206e6f79706520696e20487461726765745f744d697373696e6720, +09436f6e6e656374742000000000000020656e64706f696e6573742030782578656420746f20677509436f6e6e6563746f64650a000000004856204c4443206e, +4d697373696e67200a0000000000000079706520307825787461726765745f74496c6c6567616c20742000000000000020656e64706f696e656420746f205350, +68616e6e656c20697461726765742063496e76616c6964200a000000000000004c4443206e6f64656420696e2048562068616e6e656c20697461726765742063, +6c6c6f77656420797468652053502061204c444320746f204e6f20485643544c30782578200000000a000000000000004c4443206e6f64656420696e20485620, +780a00000000000074797065203078257365727669636520556e6b6e6f776e2063650a0000000000544c20736572766920666f722048564365740a0000000000, +00000000000000007075206e6f64650a5f696420696e20637265736f757263654d697373696e67206f6e3a0a0000000066696775726174690a43505520636f6e, +2578290a000000005f76637075283078636f6e6669675f6100000000000000007075206e6f64650a5f696420696e20637265736f75726365496e76616c696420, +6e6f64650a00000020696e2063707520737472616e646964496e76616c6964206e6f64650a00000020696e2063707520737472616e6469644d697373696e6720, +74206e6f6465206920746f20677565736261636b206172634d697373696e672000000000000000007075206e6f64650a56494420696e20634d697373696e6720, +64650a00000000006775657374206e6f655f696420696e20207265736f757263204d697373696e675741524e494e473a64650a00000000006e20637075206e6f, +204d697373696e675741524e494e473a64650a00000000006775657374206e6f655f696420696e20207265736f75726320496e76616c69645741524e494e473a, +6669675f615f76635858585820636f6e25780a0000000000737420696420307873696e67206775656e6f6465202d207520696e20637075202070617274746167, +25732c206c696e65732c2066696c652061696c65643a202541737365727420662030782578200a00782067756573747020676964203078257075283078257829, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e73650000000000003e7265616c5f6261206775657374702d656e747279203d3d6775657374702d3e2025640a00000000, +2920656e747279207069642030782578742030782578202820696e206775657363707520307825785669727475616c206e662e63000000007372632f7265636f, +7265736f757263654d697373696e672074696f6e3a0a00006f6e6669677572610a4775657374206325780a000000000074626120402030784020307825782072, +650a00000000000075657374206e6f645f696420696e20677265736f75726365496e76616c696420650a00000000000075657374206e6f645f696420696e2067, +4d697373696e6720780a0000000000006c6520402030782563616c6c207461620967756573742068780a00000000000025782040203078254775657374203078, +4d697373696e6720206e6f64650a0000696e206775657374726f6d73697a65204d697373696e6720206e6f64650a0000696e206775657374726f6d6261736520, +78204d454d5f4f46494d495420307825452030782578204c5245414c204241530000000000000000636b206e6f64650a20696e206d626c6f7265616c62617365, +4d697373696e6720650a00000000000075657374206e6f646f646520696e20676d626c6f636b206e4d697373696e6720780d0a00000000004653455420307825, +75657374206d626c6e206261736520676f742066697420696520646f6573206e524f4d20696d61676b206e6f64650a00696e206d626c6f636d656d73697a6520, +206d6170696e72622064656661756c745741524e494e473a64650a00000000006775657374206e6f6d64706120696e204d697373696e67206f636b0a00000000, +2073656c65637465697a652030782578206d6170696e72732064656661756c745741524e494e473a640a0000000000002073656c656374656173652030782578, +76696365206e6f646c6520696e2064656366675f68616e644d697373696e67206365730a0000000065737420646576695365747570206775640a000000000000, +696e6f20696e20734d697373696e6720650a00000000000076696365206e6f646c6520696e2064656366675f68616e644d697373696e6720650a000000000000, +7a65206775657374496e697469616c6920307825780a0000696365206e6f6465696e672073657276436f6e66696775726f64650a00000000657276696365206e, +657273696f6e206d206d616a6f7220764775657374204d4475700a00000000007565737420736574456e64206f662067706f696e74730a002e6c64635f656e64, +5f656e64706f696e2920696e206c646374206e756d62657228656e64706f696e6368616e6e656c204d697373696e6720000000000000000069736d617463680a, +203c204d41585f4c656e6470745f69642025640a0000000025732c206c696e65732c2066696c652061696c65643a2025417373657274206674206e6f64650a00, +20656e64706f696e09486173204c44436e662e63000000007372632f7265636f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e454c53000000000044435f4348414e4e, +64635f656e64706f79706520696e206c7461726765745f744d697373696e672067757265640a0000647920636f6e66690a0909416c7265617420307825780000, +6f64650a0000000064706f696e74206e6e206c64635f656e68616e6e656c20697461726765745f634d697373696e67200a00000000000000696e74206e6f6465, +6c64635f656e64707565737420696e207461726765745f674d697373696e67206e742030782578005620656e64706f6974656420746f20480909436f6e6e6563, +496e76616c6964206e742030782578007820656e64706f69756573742030782574656420746f20670909436f6e6e6563650a0000000000006f696e74206e6f64, +73657276696365207072697661746520496e76616c6964200a00000000000000696e74206e6f646564632d656e64706f79706520696e206c7461726765745f74, +72785f696e6f20694d697373696e67206f64650a0000000064706f696e74206e6e206c64635f656e74785f696e6f20694d697373696e6720747970650a000000, +09696e69742067750a00000000000000696e6f2030782578307825782072782d2074782d696e6f206f64650a0000000064706f696e74206e6e206c64635f656e, +6c6463000000000068765f6c6463000076637075000000006d656d6f72790000677565737400000074726965730a00006d6170696e20656e657374206c646320, +0a706861736520330a000000000000006e6669672025730a61203a20756e636f0a7068617365203363777100000000006d61750000000000636f6e736f6c6500, +792025730a0a0000643a206d6f6469660a70686173652033642025730a0a0000633a20726562696e0a70686173652033672025730a0a0000623a20636f6e6669, +4d697373696e6720643d307825780a003a206775657374697265636f6e66696764656c617965642063757272656e7420307825780a0000000a68766d64204020, +6e6f7420666f756e76657273696f6e20436f6e74656e74203a204856204d44207265636f6e666967440a0000000000006520696e2048564d726f6f74206e6f64, +746564206d616a6f3a20737570706f726d69736d6174636876657273696f6e20636f6e74656e742d3a204856204d44207265636f6e666967640a000000000000, +2025782e2578200a76657273696f6e20436f6e74656e74203a204856204d44207265636f6e66696725780a00000000002c20666f756e64207220766572202578, +74757320307825786661696c20737461000000000000000061203a2025730a0a0a70686173652032203a2025730a0a000a706861736520310000000000000000, +73657474696e67200a0000000000000074757320307825786661696c20737461000000000000000062203a2025730a0a0a706861736520320a00000000000000, +4d697373696e672074696f6e3a0a00006f6e6669677572610a47756573742063643d307825780a003a206775657374697265636f6e66696764656c6179656420, +7265736f757263654d697373696e6720310a000000000000745f70617273655f7265735f67756573564d440a000000006f646520696e2048677565737473206e, +650a00000000000075657374206e6f645f696420696e20677265736f75726365496e76616c696420650a00000000000075657374206e6f645f696420696e2067, +650a00000000000075657374206e6f645f696420696e20677265736f757263654d697373696e6720780a00000000000025782040203078254775657374203078, +206e6f64650a0000696e206775657374726f6d73697a65204d697373696e6720206e6f64650a0000696e206775657374726f6d62617365204d697373696e6720, +636b206e6f64650a20696e206d626c6f7265616c626173654d697373696e672064650a00000000006775657374206e6f6d64706120696e204d697373696e6720, +6d656d73697a65204d697373696e6720650a00000000000075657374206e6f646f646520696e20676d626c6f636b206e4d697373696e67200000000000000000, +4d697373696e6720650a00000000000076696365206e6f646c6520696e2064656366675f68616e644d697373696e67206b206e6f64650a00696e206d626c6f63, +0909456c65637465736520310a0000007565737420706172456e64206f662067650a00000000000076696365206e6f646c6520696e2064656366675f68616e64, +0909456c65637465740a00000000000069667920677565736420746f206d6f640909456c65637465740a00000000000066696720677565736420746f20636f6e, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066740a0000000000006f726520677565736420746f2069676e, +732c2066696c652061696c65643a2025417373657274206667756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e3000000000000000, +677565737420307867756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65, +732c2066696c652061696c65643a20254173736572742066696e640a000000002578203a207265626775657374203078700a0000000000002578203a206e6f6f, +417373657274206667756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65, +7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +7374617465203d3d6775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a2025417373657274206667756573742e6300, +096775657374206867756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e5050454400000000544154455f53544f2047554553545f53, +61696c65643a20254173736572742066780a00000000000075657374203078256d6f646966792067780a0000000000006c6520402030782563616c6c20746162, +4f4e464947555245544154455f554e432047554553545f53737461746520213d6775657374702d3e2025640a0000000025732c206c696e65732c2066696c6520, +65737420307825786f6e666967206775636f6d6d6974206367756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4400000000000000, +6775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066670a000000000000203a20636f6e6669, +7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e44000000000000004f4e464947555245544154455f554e432047554553545f537374617465203d3d, +7374617465203d3d6775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a2025417373657274206667756573742e6300, +456e64206f66206767756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e5050454400000000544154455f53544f2047554553545f53, +732c2066696c652061696c65643a202541737365727420666f6e6669670a00002578203a20756e63677565737420307875700a00000000007565737420736574, +2e2e2f2e2e2f2e2e5050454400000000544154455f53544f2047554553545f537374617465203d3d6775657374702d3e2025640a0000000025732c206c696e65, +7825780a00000000652030782578203066672068616e646c766963653a0a0963677565737420646567756573742e63007372632f7265735f2f636f6d6d6f6e2f, +56414c49445f43466c6520213d20494e6366675f68616e642025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +732c2066696c652061696c65643a2025417373657274206667756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4748414e444c4500, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4748414e444c450056414c49445f43466c6520213d20494e6366675f68616e642025640a0000000025732c206c696e65, +6366675f68616e642025640a0000000025732c206c696e65732c2066696c652061696c65643a2025417373657274206667756573742e63007372632f7265735f, +417373657274206667756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4748414e444c450056414c49445f43466c6520213d20494e, +4748414e444c450056414c49445f43466c6520213d20494e6366675f68616e642025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +202d3e2030782578202b20307825785d203a205b30782578090947203078257867756573742e63007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +65696478203c204e2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420660000000000000000203a20736c6f7473, +00000000000000006d656d6f72792e637372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e53000000000000005f5345474d454e54554d5f5241325041, +417373657274206620736c6f74730000202d3e205858203a202b20307825785d203a205b3078257809094720307825780a000000000000002030782578000000, +53000000000000005f5345474d454e54554d5f524132504165696478203c204e2025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +4d697373696e67200a00000000000000203078257800000000000000000000006d656d6f72792e637372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +64650a0000000000626c6f636b206e6f5f696420696e206d7265736f757263654d697373696e6720440a0000000000006520696e2048564d63707573206e6f64, +2830782578290a0072795f70617273657265735f6d656d6f64650a0000000000626c6f636b206e6f5f696420696e206d7265736f75726365496e76616c696420, +6b206e6f64650a00696e206d626c6f636d656d73697a65204d697373696e67206b206e6f64650a00696e206d626c6f636d656d62617365204d697373696e6720, +7265616c626173654d697373696e6720206e6f64650a00006e206d626c6f636b2072616e676520692061646472657373706879736963616c496e76616c696420, +6e206d626c6f636b2072616e676520692061646472657373706879736963616c496e76616c6964200000000000000000636b206e6f64650a20696e206d626c6f, +4d697373696e6720206e6f64650a00006e206d626c6f636b74206e6f6465206920746f20677565736261636b206172634d697373696e6720206e6f64650a0000, +0909456c65637465650a00000000000075657374206e6f6467696420696e2067496e76616c696420650a00000000000075657374206e6f6467696420696e2067, +6c6f7765640a000073206e6f7420616c67206d626c6f636b526562696e64696e0000000000000000636b20307825780a666967206d626c6f6420746f20636f6e, +61696c65643a20254173736572742066696e640a000000002578203a2072656267756573742030786f700a0000000000782578203a206e6f6d626c6f636b2030, +6d656d6f72792e637372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c6520, +2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420660000000000000000, +25732c206c696e65732c2066696c652061696c65643a2025417373657274206600000000000000006d656d6f72792e637372632f7265735f2f636f6d6d6f6e2f, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e464947555245440054455f554e434f4e4c4f434b5f5354417465203d3d204d426d62702d3e7374612025640a00000000, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a2025417373657274206600000000000000006d656d6f72792e637372632f7265735f, +7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e475552454400000054455f434f4e46494c4f434b5f5354417465203d3d204d426d62702d3e737461, +7265736f757263654d697373696e6720440a0000000000006520696e2048564d63707573206e6f644d697373696e672000000000000000006d656d6f72792e63, +00000000000000007075206e6f64650a5f696420696e20637265736f75726365496e76616c69642000000000000000007075206e6f64650a5f696420696e2063, +496e76616c69642000000000000000007075206e6f64650a50494420696e20634d697373696e67202830782578290a005f70617273655f317265735f76637075, +4d697373696e672000000000000000007075206e6f64650a56494420696e20634d697373696e672000000000000000007075206e6f64650a50494420696e2063, +5f696420696e20677265736f757263654d697373696e672064650a00000000006e20637075206e6f74206e6f6465206920746f20677565736261636b20617263, +5741524e494e473a650a00000000000075657374206e6f645f696420696e20677265736f75726365496e76616c696420650a00000000000075657374206e6f64, +5669727475616c2025780a0000000000737420696420307873696e67206775656e6f6465202d207520696e20637075202070617274746167204d697373696e67, +732c2066696c652061696c65643a20254173736572742066290a0000000000007669642030782578742030782578202820696e20677565736370752030782578, +2e2e2f2e2e2f2e2e494400000000000054455f494e56414c204350555f535441746174757320213d76637075702d3e732025640a0000000025732c206c696e65, +0909456c656374657825780a0000000061747573203d20307420637075207374090943757272656e766370752e6300007372632f7265735f2f636f6d6d6f6e2f, +09094661696c65640a000000000000006f726520766370756420746f2069676e0909456c656374650a0000000000000066696720766370756420746f20636f6e, +30782578203a207320766370756964205f636f6d6d69743a7265735f766370756976650a00000000726562696e64206c7465202d206e6f20204d442075706461, +0a0000000000000078203a206e6f6f707663707520307825307825780a000000206f70666c616720732030782578202d78203a20666c61677461746520307825, +78203a2072656269766370752030782569670a000000000078203a20636f6e6676637075203078256e6669670a00000078203a20756e636f7663707520307825, +2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666e640a0000000000, +61696c65643a2025417373657274206666790a000000000078203a206d6f64697663707520307825766370752e6300007372632f7265735f2f636f6d6d6f6e2f, +766370752e6300007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c6520, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +65735f6964203d2020766370752028720942696e64696e67636f6e6669670a005f636f6d6d69745f7265735f76637075766370752e6300007372632f7265735f, +61696c65643a202541737365727420667420307825780a0020696e20677565737669642030782578307825782061732020737472616e6420307825782920746f, +65737469640000002d3e7069702e67753d3d20766370757067756573746964206775657374702d3e2025640a0000000025732c206c696e65732c2066696c6520, +25732c206c696e65732c2066696c652061696c65643a20254173736572742066766370752e6300007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4c000000000000005d203d3d204e554c7075702d3e76696476637075735b76636775657374702d3e2025640a00000000, +6775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066766370752e6300007372632f7265735f, +766370752e6300007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e73650000000000003e7265616c5f6261206775657374702d656e747279203d3d, +746261204020307840203078257820722920656e747279207669642030782578742030782578202820696e206775657363707520307825785669727475616c20, +7461747573203d3d76637075702d3e732025640a0000000025732c206c696e65732c2066696c652061696c65643a2025417373657274206625780a0000000000, +2e2e2f2e2e2f2e2e5f4552524f52000050555f5354415445747573203d3d20437075702d3e7374614544207c7c20766354455f53544f5050204350555f535441, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066766370752e6300007372632f7265735f2f636f6d6d6f6e2f, +4173736572742066766370752e6300007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4e554c4c000000007565737420213d2076637075702d3e67, +2e2e2f2e2e2f2e2e204e554c4c0000007472616e6420213d76637075702d3e732025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066766370752e6300007372632f7265735f2f636f6d6d6f6e2f, +2e2e2f2e2e2f2e2e735f6c697665290026262065702d3e69464947555245442054455f554e434f4e554553545f535441617465203d3d2047212867702d3e7374, +677565737473206e4d697373696e67206f6e3a0a0000000066696775726174690a4c444320636f6e6c64632e630000007372632f7265735f2f636f6d6d6f6e2f, +64756d6d790000002025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066564d440a000000006f646520696e2048, +4d697373696e67206c6463733a0a000078257820666f722009477565737420306c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +6368616e6e656c20496c6c6567616c2074206e6f64650a005f656e64706f696e2920696e206c646374206e756d62657228656e64706f696e6368616e6e656c20, +706f696e742030783078257820656e64090947756573742074206e6f64650a005f656e64706f696e2920696e206c646374206e756d62657228656e64706f696e, +4d697373696e67200a00000000000000696e74206e6f646564635f656e64706f79706520696e206c7461726765745f744d697373696e672025780a0000000000, +5620656e64706f6974656420746f20480909436f6e6e65636f64650a0000000064706f696e74206e6e206c64635f656e68616e6e656c20697461726765745f63, +650a0000000000006f696e74206e6f646c64635f656e64707565737420696e207461726765745f674d697373696e672000000000000000006e7420307825780a, +7461726765745f74496e76616c6964200a00000000000000696e742030782578257820656e64706f67756573742030786374656420746f20090909436f6e6e65, +64706f696e740a00736520485620656e63616e6e6f742075436f6e736f6c65200a00000000000000696e74206e6f646564632d656e64706f79706520696e206c, +73657276696365207072697661746520496e76616c6964206f64650a0000000064706f696e74206e6e206c64635f656e72785f696e6f20694d697373696e6720, +72782d696e6f20694d697373696e67206f64650a0000000064706f696e74206e6e206c64635f656e74782d696e6f20694d697373696e6720747970650a000000, +0909456c656374657825780a0000000072782d696e6f20306e6f2030782578200909090974782d696f64650a0000000064706f696e74206e6e206c64635f656e, +79706520213d20747461726765745f746c64635f65702d3e09090925730a00000a00000000000000656e64706f696e74666967204c4443206420746f20636f6e, +5f6368616e6e656c3d2074617267657468616e6e656c20217461726765745f636c64635f65702d3e09090925730a0000706500000000000061726765745f7479, +6c64635f65702d3e09090925730a00002074785f696e6f00672e696e6f20213d74785f6d617072656c64635f65702d3e09090925730a00000000000000000000, +3e7461726765745f286c64635f65702d756573742026262028636865636b5f6709090925730a00002072785f696e6f00672e696e6f20213d72785f6d61707265, +6e204c4443206368706f72746564206f206e6f742073757009094d6f6469667900000000000000006775657374702929207461726765745f677565737420213d, +2578206c6463203067756573742030780a00000000000000656e64706f696e746f7265204c4443206420746f2069676e0909456c65637465616e6e656c730a00, +30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666f700a0000000000782578203a206e6f, +62696e640a000000782578203a2072652578206c6463203067756573742030786c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +61696c65643a2025417373657274206662696e640a000000782578203a2072652578206c6463203067756573742030786c64632e630000007372632f7265735f, +6c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c6520, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +25780a0000000000206c64636520307865737420307825786f6e666967206775636f6d6d69745f637265735f6c64635f6c64632e630000007372632f7265735f, +25732c206c696e65732c2066696c652061696c65643a202541737365727420660953500000000000782578000000000009677565737420300948560000000000, +7420307825780a0020656e64706f696e6c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a00000000, +68616e646c652021636465765f6366676775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +6e636f6e66696720636f6d6d69745f757265735f6c64635f6c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e3d20300000000000, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066307825780a0000002578206c646365206775657374203078, +6f6e6669677572614856204c444320636c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e69735f6c697665006c64635f65702d3e, +706f696e74730a00204c444320656e645061727365204856440a0000000000006520696e2048564d726f6f74206e6f644d697373696e672074696f6e3a0a0000, +69642030782578206368616e6e656c20496e76616c696420650a000000000000204c4443206e6f64696420696e2048566368616e6e656c204d697373696e6720, +79706520696e20487461726765745f744d697373696e672078203a00000000006f696e742030782509485620656e647043206e6f64650a00696e204856204c44, +09436f6e6e6563746f64650a000000004856204c4443206e7565737420696e207461726765745f674d697373696e672064650a000000000056204c4443206e6f, +740a00000000000020656e64706f696e656420746f20535009436f6e6e656374307825780a0000006e2067756573742064706f696e742069656420746f20656e, +6420696e2048562068616e6e656c206974617267657420634d697373696e67200a0000000000000079706520307825787461726765745f74496c6c6567616c20, +206e6f64650a00006e204856204c4443642030782578206968616e6e656c20697461726765742063496e76616c6964200a000000000000004c4443206e6f6465, +6c6c6f77656420797468652053502061204c444320746f204e6f20485643544c0000000000000000203d203078257820206368616e6e656c0909546172676574, +780a00000000000074797065203078257365727669636520556e6b6e6f776e2063650a0000000000544c20736572766920666f722048564365740a0000000000, +676564206265666f20756e636f6e6669206d757374206265206368616e6e656c41204856204c44436775726500000000746f20436f6e6669456c656374656420, +782578203a206e6f68765f6c646320306500000000000000746f2049676e6f72456c656374656420626f756e640a00006e2062652072652d7265206974206361, +25732c206c696e65732c2066696c652061696c65643a2025417373657274206662696e640a000000782578203a20726568765f6c646320306f700a0000000000, +782578203a206d6f68765f6c646320306c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a00000000, +2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066646966790a000000, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666c64632e630000007372632f7265735f2f636f6d6d6f6e2f, +740a00000000000020656e64706f696e0909436f6e6669676c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e3000000000000000, +2e2e2f2e2e2f2e2e735f6c697665000021687665702d3e692025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666c64632e630000007372632f7265735f2f636f6d6d6f6e2f, +74797065203078257365727669636520556e6b6e6f776e206c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e3000000000000000, +2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066780a000000000000, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666c64632e630000007372632f7265735f2f636f6d6d6f6e2f, +696720656e64706f0909556e636f6e666c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e735f6c697665000021687665702d3e69, +5f6c697665000000687665702d3e69732025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066696e742025640a00, +0000000000000000726174696f6e3a0a20636f6e666967750a436f6e736f6c656c64632e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +4f4b200a00000000726174696f6e3a2020636f6e666967750a436f6e736f6c652048564d440a0000206e6f646520696e636f6e736f6c65734d697373696e6720, +7220636f6e736f6c677565737420666f4d697373696e67206f64650a000000006f6e736f6c65206e5f696420696e20637265736f757263654d697373696e6720, +496e76616c6964206f64650a00000000206775657374206e6f6e736f6c6527735f696420696e20637265736f757263654d697373696e67206520307825780000, +7220677565737420203078257820666f09636f6e736f6c656f64650a00000000206775657374206e6f6e736f6c6527735f696420696e20637265736f75726365, +6f64650a000000006f6e736f6c65206e61736520696e20636f722075617274626c646320617263204d697373696e67207825780a000000003078257820402030, +6e736f6c65277320696420696e20636f6368616e6e656c5f4d697373696e67206c650a00000000006f7220636f6e736f63696669656420665541525420737065, +0a000000000000006c6463206e6f64656e736f6c65277320696420696e20636f6368616e6e656c20496e76616c6964200a000000000000006c6463206e6f6465, +7825780a0000000068616e6e656c20306573204c44432063307825785d20757330782578205b40207220677565737420203078257820666f09636f6e736f6c65, +6f64650a000000006f6e736f6c65206e696e6f20696e2063496e76616c6964206f64650a000000006f6e736f6c65206e696e6f20696e20634d697373696e6720, +6420746f206d6f640909456c65637465780a00000000000075657374203078256f6c65206f66206766696720636f6e736420746f20636f6e0909456c65637465, +6f6c65206f6620676f726520636f6e736420746f2069676e0909456c65637465780a00000000000075657374203078256f6c65206f66206769667920636f6e73, +666f722067756573636f6e736f6c6520206e6f6f700a0000742030782578203a666f722067756573636f6e736f6c6520780a0000000000007565737420307825, +000000000000000020726562696e640a742030782578203a666f722067756573636f6e736f6c6520000000000000000020636f6e6669670a742030782578203a, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666300000000000000636f6e736f6c652e7372632f7265735f, +6f6469667920666f636f6d6d6974206d6300000000000000636f6e736f6c652e7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e3000000000000000, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066736f6c650a0000003078257820636f6e7220677565737420, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4947000000000000455f554e434f4e46434f4e535f5459507479706520213d20636f6e736f6c652e6775657374702d3e, +736f6c650a0000003078257820636f6e72206775657374206f6e66696720666f636f6d6d697420636300000000000000636f6e736f6c652e7372632f7265735f, +74797065203d3d20636f6e736f6c652e6775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +6300000000000000636f6e736f6c652e7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4947000000000000455f554e434f4e46434f4e535f545950, +74797065203d3d20636f6e736f6c652e6775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +41737365727420666300000000000000636f6e736f6c652e7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e455f4c4443000000434f4e535f545950, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e69735f6c697665006c64635f65702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666300000000000000636f6e736f6c652e7372632f7265735f, +6300000000000000636f6e736f6c652e7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e746500000000000069735f70726976616c64635f65702d3e, +3d204c44435f434f7376635f6964203d6c64635f65702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +09636f6e736f6c656300000000000000636f6e736f6c652e7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e43000000000000004e534f4c455f5356, +6e636f6e66696720636f6d6d69742075736f6c652e0a00006173656420636f6e6173204c4443206209677565737420687825780a00000000202d20696e6f2030, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666f6e736f6c650a007420307825782063666f722067756573, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4947000000000000455f554e434f4e46434f4e535f5459507479706520213d20636f6e736f6c652e6775657374702d3e, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666300000000000000636f6e736f6c652e7372632f7265735f, +41737365727420666300000000000000636f6e736f6c652e7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e69735f6c697665006c64635f65702d3e, +2e2e2f2e2e2f2e2e746500000000000069735f70726976616c64635f65702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +25732c206c696e65732c2066696c652061696c65643a202541737365727420666300000000000000636f6e736f6c652e7372632f7265735f2f636f6d6d6f6e2f, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e43000000000000004e534f4c455f53563d204c44435f434f7376635f6964203d6c64635f65702d3e2025640a00000000, +4d697373696e6720440a0000000000006520696e2048564d6d617573206e6f644d697373696e67206300000000000000636f6e736f6c652e7372632f7265735f, +417373657274206600000000000000007075206e6f64650a50494420696e2063496e76616c69642000000000000000007075206e6f64650a50494420696e2063, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e204e4d41555300006d61755f6964203c2025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +20746f20677565736261636b206172634d697373696e672030782578290a000070617273655f31287265735f6d61755f6d61752e630000007372632f7265735f, +650a00000000000075657374206e6f645f696420696e20677265736f757263654d697373696e672064650a00000000006e20637075206e6f74206e6f64652069, +20696e6f20696e20204d697373696e675741524e494e473a650a00000000000075657374206e6f645f696420696e20677265736f75726365496e76616c696420, +00000000000000006e6f20307825780a742030782578206920696e20677565736d617520307825785669727475616c200a000000000000006d6175206e6f6465, +0000000000000000666967206d61750a6420746f20636f6e0909456c656374657825780a0000000061747573203d203074206d6175207374090943757272656e, +00000000000000006f7265206d61750a6420746f2069676e0909456c656374650000000000000000696679206d61750a6420746f206d6f640909456c65637465, +6d61756964203078636f6d6d69743a207265735f6d61755f6976650a00000000726562696e64206c7465202d206e6f20204d44207570646109094661696c6564, +203a206e6f6f700a6d6175203078257825780a000000000070666c616720307830782578202d206f3a20666c6167732074652030782578202578203a20737461, +6d61752030782578670a000000000000203a20636f6e66696d617520307825786669670a00000000203a20756e636f6e6d617520307825780000000000000000, +30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066640a000000000000203a20726562696e, +4173736572742066790a000000000000203a206d6f6469666d617520307825786d61752e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +7372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e30000000000000002025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +25732c206c696e65732c2066696c652061696c65643a202541737365727420666f6e6669670a0000636f6d6d69745f637265735f6d61755f6d61752e63000000, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e73746964000000003e7069702e6775653d3d206d6175702d67756573746964206775657374702d3e2025640a00000000, +6775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666d61752e630000007372632f7265735f, +536b697070696e676d61752e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e3d3d204e554c4c00702d3e7069645d206d6175735b6d6175, +782578206e6f7420737472616e64203078290a0000000000757365742030782520287069702e637072206d6175202564696420256420666f2074687265616420, +203078257820696e6e20737472616e64752030782578206f2920746f2076637064203d2030782578206d6175202870690942696e64696e67666f756e64210a00, +6d6175702d3e67752025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420667825780a000000002067756573742030, +6d61752e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4e554c4c000000007069645d20213d20735b6d6175702d3e6573742d3e6d6175, +41555f535441544561746520213d204d6d6175702d3e73742025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +675f737472616e6409756e636f6e66696d61752e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e47555245440000005f554e434f4e4649, +096e6577206370750a000000000000006775657374202564616e64202564292020256420287374726420746872656164753a206d617520255f66726f6d5f6d61, +6d6175702d3e73742025640a0000000025732c206c696e65732c2066696c652061696c65643a2025417373657274206600000000000000007365743a2025640a, +4f52000000000000544154455f4552523d3d204d41555f532d3e737461746520207c7c206d6175705f52554e4e494e4741555f5354415445617465203d3d204d, +25732c206c696e65732c2066696c652061696c65643a202541737365727420666d61752e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e, +6d61752e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e554c4c000000000065737420213d204e6d6175702d3e67752025640a00000000, +782578290a00000063707573657420306d6175202564202825782920666f72207472616e6420307869642025642028732074687265616420536b697070696e67, +780a000000000000756573742030782578257820696e2067737472616e64203078292066726f6d206964203d2030782567206d617520287009556e636f6e6669, +4173736572742066666f756e64210a00782578206e6f7420737472616e642030780a0000000000007663707520307825307825782069732009737472616e6420, +2e2e2f2e2e2f2e2e4e554c4c0000000072616e6420213d20637075702d3e73742025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +7320766370752025616e6420256420697520256420737472766370753a206d61096d61755f746f5f6d61752e630000007372632f7265735f2f636f6d6d6f6e2f, +617465203d3d204d6d6175702d3e73742025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066640a000000000000, +2e2e2f2e2e2f2e2e4f52000000000000544154455f4552523d3d204d41555f532d3e737461746520207c7c206d6175705f52554e4e494e4741555f5354415445, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420666d61752e630000007372632f7265735f2f636f6d6d6f6e2f, +0949676e6f72696e6d61752e630000007372632f7265735f2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e554c4c000000000065737420213d204e6d6175702d3e6775, +41737365727420660000000000000000737420307825780a7820696e2067756572616e64203078257829206f6e2073746964203d2030782567206d6175202870, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4e554c4c000000006370757020213d202025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +20696e2067756573616e6420307825782920746f2073747264203d2030782578206d6175202870690942696e64696e676d61752e630000007372632f7265735f, +0a000000000000006573742030782578257820696e2067757472616e64203078642066726f6d20736e67206d6175202509556e62696e64697420307825780a00, +20307825780a0000737420737461727446616b6520677565307825780a000000207374617475732072657475726e65646f6e6669673a0a0046616b6520726563, +6c65202b20636f6e6d73206361706162322e3020284c446f65727669736f72200a0a090909487970307825780a000000207374617475732072657475726e6564, +7825780a00000000206973206174203020635f737461727409736f2050524f4d2578203a0a0000006f6e20697320307872656c6f63617469736f6c65290a0a00, +290a00000000000025782028307825786669672040203078726f6f7420636f6e0000000000000000617420307825780a74617274206973200952414d20635f73, +78290a000000000078257820283078256b287329204020302564206d626c6f63290a000000000000257820283078257828732920402030782564206775657374, +78290a000000000078257820283078256428732920402030256420737472616e0a00000000000000782028307825782973292040203078252564207663707528, +78290a00000000007825782028307825632873292040203025642073705f6c640000000000000000202830782578290a29204020307825782564206c64632873, +4d656d6f727920630000000000000000203d20307825780a09696e7472746774307825780a000000206d61736b203d206520737472616e64417661696c61626c, +6d617520636f6e660a0000000000000065206661696c6564636f6e6669677572436f6e736f6c65200000000000000000206661696c65640a6f6e666967757265, +0a496e697469616c2920646f6e650a00635f737461727428696c65640a000000696775726520666163777120636f6e66696c65640a0000006967757265206661, +206d6179207472795f474c4f42414c5309534156455f5545544f444f3a200a005741524e494e472000000000000000007465726e616c730a6973696e6720696e, +0a000000000000007469616c697a65647420697320696e696265666f7265206970616420726567202073637261746368746865207663707520746f2075736520, +5f455849545f4d413d3d20475545535428726561736f6e202025640a0000000025732c206c696e65732c2066696c652061696c65643a20254173736572742066, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4952290000000000545f4d4143485f53554553545f455849736f6e203d3d2047207c7c202872656143485f4558495429, +286775657374702d2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420662e630000000000007372632f696e6974, +545f53544154455f203d3d2047554553702d3e73746174657c202867756573744954494e4729207c53544154455f45583d2047554553545f3e7374617465203d, +69743a207265617367756573745f65782e630000000000007372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4729000000000000524553455454494e, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420667825780a000000002073746174653d306f6e3d307825782c, +41737365727420662e630000000000007372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e737470000000000074203d3d2067756576702d3e67756573, +5f52554e4e494e4750555f5354415445747573203d3d20432876702d3e7374612025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +204350555f5354417461747573203d3d7c202876702d3e734f5050454429207c53544154455f5354203d3d204350555f2d3e73746174757329207c7c20287670, +206c6f63616c207673746f7070696e672e630000000000007372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4e4445442900000054455f5355535045, +76702d3e737461742025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420662e2e2e0a000000004350552030782578, +4544207c7c20767054455f53544f5050204350555f5354417461747573203d3d7c7c2076702d3e7352554e4e494e4720555f53544154455f7573203d3d204350, +2e630000000000007372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e5350454e4445440053544154455f5355203d3d204350555f2d3e737461747573, +3d307825782c20732030782578206964666f72207643505577616974696e67202e0a0000000000005520307825782e2e7420746f2076435073746f702073656e, +6572726f720a00007820697320696e2076435055203078256f707065640a0000782068617320737476435055203078252e0a000000000000743d307825782e2e, +6679206775657374202d3e206e6f74696c6463203078257864697361626c65200000000000000000746f70706564200a5320686176652073616c6c2076435055, +0a00000000000000656e2072657365742068617665206265616c6c204c44437378202e2e0a0000002063707520307825646320307825782c20307825782c206c, +6173796e63206d6573656e64696e6720780a000000000000737469643d3078256669673a206775656564207265636f6e6e672064656c6179706572666f726d69, +2025640a0000000025732c206c696e65732c2066696c652061696c65643a2025417373657274206668616e6e656c0a0020687663746c20637373616765206f6e, +7372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e455454494e470000544154455f5245532047554553545f537374617465203d3d6775657374702d3e, +7374617465203d3d6775657374702d3e2025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420662e63000000000000, +41737365727420662e630000000000007372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e455454494e470000544154455f5245532047554553545f53, +54455f53544f5050204350555f5354417461747573203d3d76637075702d3e732025640a0000000025732c206c696e65732c2066696c652061696c65643a2025, +732c2066696c652061696c65643a202541737365727420662e630000000000007372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e4544000000000000, +7372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e677565737470000075657374203d3d2076637075702d3e672025640a0000000025732c206c696e65, +7461747573203d3d76637075702d3e732025640a0000000025732c206c696e65732c2066696c652061696c65643a202541737365727420662e63000000000000, +5374617274696e672e630000000000007372632f696e69742f636f6d6d6f6e2f2e2e2f2e2e2f2e2e454400000000000054455f53544f5050204350555f535441, +63746976653d3078537472616e6420612578290a0000000020287669642030785f69642030782578696e672076637075782578202d2075732067756573742030, +666163650a0000006f6c20696e746572485620636f6e74720a00000000000000756d627473622829636f6e6669675f64307825780a00000025782c69646c653d, +2053544154455f32090973746174653a0a000000000000002053544154455f31090973746174653a0a0000000000000020554e4b4e4f574e090973746174653a, +485663746c5f6f70780a0000000000007461746520307825656163686564207372726f72202d207220485643544c2065496e7465726e616c0a00000000000000, +656c617965645f725f67756573745f64485663746c5f6f70677572650a0000005f7265636f6e6669485663746c5f6f706f6e6669670a00005f6765745f687663, +485663746c5f6f70746f700a000000005f67756573745f73485663746c5f6f70746172740a0000005f67756573745f73485663746c5f6f7065636f6e660a0000, +616e69630a0000005f67756573745f70485663746c5f6f706573756d650a00005f67756573745f72485663746c5f6f70757370656e640a005f67756573745f73, +61696c65643a202541737365727420667265636f6e660a005f63616e63656c5f485663746c5f6f705f737461740a00005f6765745f726573485663746c5f6f70, +2f636f6d6d6f6e2f2e2e2f2e2e2f2e2e677565737470000075657374203d3d2076637075702d3e672025640a0000000025732c206c696e65732c2066696c6520, +737420746172676573746f70206775656573742e2e2e0a002073746f702067757863616c6c20746f73656e64696e67206e74726f6c2e63007372632f6876636f, +637465642030782578202d206578706569766564203078256265722072656365656e6365206e756d42616420736571752e0a000000000000742030782578202e, +6420485620636861526571756573746525780a00000000006f7220636f6465207769746820657272206661696c65642009436f6d6d616e64780a000000000000, +616363657074656456657273696f6e200000000000000000726566757365640a56657273696f6e2025640a000000000073696f6e2025642e6e6e656c20766572, +636b0a0000000000206b65792063686509094661696c65643a0a0000000000000948656c6c6f203225780a00000000006e6765203d2030783b206368616c6c65, +686b73756d20232030782578203a2063203a207365712320206f70203078257809436f6d6d616e64636b0a0000000000206b6579206368650909506173736564, +68616e6e656c000020687663746c206320746f206f70656e207265717565737420496e697469616c5f68656c6c6f203a485663746c5f6f70307825780a000000, +485663746c5f6f70746f205a6575730066726f6d20485620657475726e6564206c6c656e676520726765203a206368615f6368616c6c656e485663746c5f6f70, +47657420746865206f6e666967203a205f6765745f687663485663746c5f6f706d205a65757300006f6e73652066726f65203a20526573705f726573706f6e73, +726520726571756565636f6e6669677567757265203a20525f7265636f6e6669485663746c5f6f7072730000000000006720706f696e7465485620636f6e6669, +5f67756573745f73485663746c5f6f707565737400000000746172742061206774617274203a20535f67756573745f73485663746c5f6f707374000000000000, +44656c617965642065636f6e66203a20656c617965645f725f67756573745f64485663746c5f6f7073740000000000006f70206120677565746f70203a205374, +2053757370656e64757370656e64203a5f67756573745f73485663746c5f6f7074000000000000007565737420657869757265206f6e20677265636f6e666967, +485663746c5f6f702067756573740000526573756d6520616573756d65203a205f67756573745f72485663746c5f6f7000000000000000002061206775657374, +476574207265736f5f73746174203a205f6765745f726573485663746c5f6f707565737400000000616e696320612067616e6963203a20505f67756573745f70, +4173796e632072655f73746174203a205f6e65775f726573485663746c5f6f7000000000000000007570706f7274656474757320696620737572636520737461, +0925730a00000000636f6d6d616e6400556e6b6e6f776e206400000000000000737570706f72746564617465206966207461747573207570736f757263652073, +20737570706f7274204e4955206e6f74095741524e494e47206661696c0d0a0072656769737465726572725f73766320635f73657475705f5741524e494e473a, +535550504f525445435751204e4f5420440a000000000000535550504f525445435751204e4f5420780a0000000000007565737420307825656420666f722067, +000000000000000000000000000000000000000000000000525445440a0000004f5420535550504f48564d44202d204e4357515320696e20440a000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +010000000100000001000000010000000100000001000000306802480100000003120d320400007f4f425000000007d900008803000000004f424d440000119c, +01000000010000000100000001000000010000000100000030680246010000000100000001000000010000000100000001000000010000003068024201000000, +0100000001000000010000000100000001000000010000003068024e010000000100000001000000010000000100000001000000010000003068024a01000000, +2a2a2a50524f544f75696c645f313232425020342e782e624d0d0a402823294f0100000001000000010000000100000001000000010000003068025201000000, +000000004f425000626f6f7470726f6d62702023305d0000677265646479206f2031333a3530205b30392f30332f31384c442a2a2a2032305459504520425549, +9213400a941020019a1269409213400b1c6800039a1267409b2a700880a340000000000000000000697a696e6700000020696e697469616c4f70656e626f6f74, +9213400a941020019a1269409213400b1c6800039a1267409b2a700880a3400081c3e008010000009a00202591d030809200000096002002952ab03f94128009, +90000018920000187fffffdc96002000920000189400200381e020009000001881c3e008010000009a00202591d030809200000096002001952ab03f94128009, +113c0000920000187fffffdc960020009206000994002001113ffdc0130007c07fffffd296002000920000189400200396002000113c0000940020037fffffe7, +c2f1e0988352c000c2f1e08883528000c2f1e09083524000878020148352000087802020ced8203881e80000a19020029600200081c7e008940020037fffffd7, +c2f1e0a88340c000c2f1e0b083408000c2f1e04083400000c2f1e0c083540000c2f1e0c883518000c2f1e0a083538000c2f1e0d083534000c2f1e0e883530000, +c2f1e05083504000c2f1e06083500000c2f1e0688350c000c2f1e0d88351c000c2f1e08083514000c2f1e07883504000c2f1e0b883500000c2f1e0e083418000, +83508000c2f1e03883504000c2f1e01883500000c2f1e0088350c000c2f1e0288751c0008f902002c0f1e1888c00000fc2f1e07082202001c2f1e05883508000, +d4f06010d6f06018d0f06000d2f06008820021c082004007c2f1e0308f90e000c2f1e01083508000c2f1e00083504000c2f1e020835000008f9020018350c000, +f0f06000f2f06008eef0603882006040eaf06028ecf06030e6f06018e8f06020e2f06008e4f0601082006040e0f06000dcf06030def06038d8f06020daf06028, +e8f06020eaf06028e4f06010e6f06018e0f06000e2f06008862120019390e0008200604089524000fcf06030fef06038f8f06020faf06028f4f06010f6f06018, +80a10003126fffeb9390e00087524000fef060388620e001faf06028fcf06030f6f06018f8f06020f2f06008f4f0601082006040f0f06000ecf06030eef06038, +c2f420f8c4f42100a1902000c0f420f0ccf42160cef42168c8f42150caf42158c4f42140c6f42148c0f42130c2f421389e000006a190200182006040a0000007, +81c3e00801000000959020069000001093902000979020009b9020009d902000c2f4218099902007cef4212882202001caf42118ccf42120c6f42108c8f42110, +91d0308001000000920240049202602088090009133c00009a00202789414000921263ff900020018b9260001300003f8d902004133c08008600000f9190200f, +dc0ac0009602c00e9600000f9602e00881c0e00801000000133c000086024003921263ff8608c0098f9020001300003f01000000010000000100000001000000, +2d13d093ac15a14481e00000aa00001981c3200801000000000ef10c9800000f757473a9000ef10c0000646961672d7081c2c000010000009602e005962ae003, +d40a2000d60a6000920600009800201080a000009005601080a5001612680016e8056000e2056004aa056001aa2d600380a22001026ffffeae000000d00d6000, +80a00000aa0560200268000380a020019202600180a5c00090022001126ffff5ae00001580a000001268000498a3200180a0000080a2800080a2800b12680007, +80a200001268000f7fffffd09200001981e0000090000018000ef38400008ca0726163652d6d65a80100000000000074b005c00081cfe008126fffe1aa054011, +7fffffae0100000081cfe0080100000000000000b0000000676520666f756e643a204e6f20696d612774207374617274010000001b43616eae0200007fffffbb, +a404a003a42ca003e2042004a404601080a6c0000268000f80a20009126800221310d3d392126150a005e020d004200064726f70696e00000d0d0a46696e6420, +7072657373696e67102c204465636f6d7fffff9201000000636f706965642900010000000a2c2028a006c0007fffff97126ffffee626c012a4a4a004e6040012, +6f7079696e672000010000000a2c2043010000007fffff81b024001a1068001290122328e00200009406a0001100013492046000400000c52000000090042010, +652c2053697a6520010000000b446f6eb004e0007fffff71126ffffed622400a94a2a004d602000a9404e02092068000a605600fa62ce00f90042000ea05e004, +97902000959020069b9020009d9020008b902000999020079190200f8d902004840000198600001a01000000820000189000001881cfe008000000007fffff78, +941020009a002000901020039210200191d030ff01000000941020009a00200090102001921020018f902000a1902000b2000002b400000393902000b0000001, +940020037ffffe5913002000920600099200001990000000900000187ffffe6f91d0308001000000920600099a102070901020029210214091d030ff01000000, +27002000a606001301000000290002009201201091d030809a002027894140009600200090002001940020037ffffe4313002000920600099600200090000000, +940020209600000090060008920000189a0020319010213ca8a50009146ffff880a00000a604c00980a22007026800049000001391d030809a00203192000014, +01000000010000000100000001000000010000000100000001000000010000000100000001000000a01028f081c40000be022020010000007fffff5a98002001, +01000000010000000100000001000000108000000100000081c220300100000098002001113c08009607c0007fffff4592000018153c08009010213090060008, +7ffffe3701000000108000000100000081c220400100000001000000113c0800d2f221a07ffffed992002002d2f221987ffffe4301000000306fff9501000000, +d2f221a07ffffec192002004d2f221987ffffe2b01000000108000000100000081c220600100000001000000113c0800d2f221a07ffffecd92002003d2f22198, +81c220800100000001000000113c0800d2f221a07ffffeb592002005d2f221987ffffe1f01000000108000000100000081c220800100000001000000113c0800, +b8006004f427632825000134c0242004210001003b0001349de3bfa0030001000000000000000000ffffffffffffffff10800000010000001080000001000000, +0248000401000000d60ee19580a2000b400001be3700000412400009ae102001ee0da19480a20017400001c4f024600823000100c0273ffc2d000004f224a324, +841020fbc56da0bfc56de1feac04e0c627000123ae06e00cb0102002f035a00037000100ac10200180a2200e02400005400001b601000000ae102001ee35e000, +f82da0ff9a1020f5841020f7861020f6901020f8c42da0fbc56da07f881020f9921020fc8a1020fab21020fdc56b6000c56de1bea81020fe9a05a0ffb81020ff, +da2da0f5c56da03fea2da0f3e62da0f4d82da0f0d62da0f2b605a0efb81020efc035e1fcde2da0f1981020f0c035e1fe961020f29e1020f1a61020f4aa1020f3, +e82da0fec035e1fad22da0fcf22da0fd941020efca2da0fac56de0bec82da0f9c56de13ec56de0feb405e1dec56de17ed02da0f8b005e1fec62da0f6c42da0f7, +c56ebe9ac036a000c035e1f6c035e1f8c035e1f2c035e1f4c035e1eec035e1f0c035e1eac035e1ecc035e1e6c035e1e8c035e1e2c035e1e4c035e1e0c56de07e, +8602bffcc036a018c036a01ac22ee00dc42ee00e8202bffd8402bffec036a01cb426a020e62ee00f80a7200fc036bffed42ee010a602bfffb8073ff0b626e010, +8a02bff7c036a00ec036a010c82ee0088802bff8c56eff55c036a012da2ee009d22ee00a9a02bff99202bffac036a014c036a016de2ee00bc62ee00c9e02bffb, +c036a004d42ee002d62ee0039402bff29602bff3c036a006c036a008d82ee004f22ee0059802bff4b202bff5c036a00ac036a00cd02ee006ca2ee0079002bff6, +ea27632880a6e101aa07200102400005b73d201080a6fffff8076328a610000890102009a92a201094053fff4000010be82ee001164fffcba802bfffc036a002, +390001342b00000480a36101024000f080a37fff044000f2b52a20109b3ea010400000fae62f2000e8316000901020098a102001a81020031248000690102009, +92027ff08a2160208a100018c031600012400021921020ff2900001080a361008a1021ff90102009b210001b88102102b40720019810000db807232ca6056198, +c0316004164fffeec0316008c0316006c031600cc031600ac0316010c031600ec0316014c0316012c0316018c0316016c031601cc031601ac031601e80a2600f, +f22f20009810001b0640000680a321009010200980a30004881021018a1021ff024000c79810000d9b38a01080a37fff90102009852a2010c0316002400000cf, +b32b2001d2164017b8072001c60b001680a321000640000c952ae010993aa010d6164017d82f2000b32b2001d80b001606400015aa100004b807200180a6e100, +01000000c76f3fff80a2e0100640005bb80720019627000c9806bffff22f2000b32b2001f20b001680a32100164ffff09f2a6010993be010c62f2000b8072001, +c6076328c20f200dd8276328d62aa000d60f200e9802a001c62a6000d407632882026001c2276328d2076328c60f200fb827201080a7000f9e032010c76f3df7, +d80f200a86026001c22aa000d20763288402a001c4276328d4076328c20f200bd8276328d22ae000d20f200c9802e001c228e000d60763288400e001c4276328, +9600a001d6276328c4076328d20f2007c6276328d82aa000d80f20088602a001c4286000d407632896006001d6276328c2076328c40f2009c6276328d82a6000, +c4276328c228e000c20f20048400e001d22aa000c60763289602a001d6276328d4076328d20f2005c2276328c62b2000c60f200682032001d228a000d8076328, +d82ae000c20763288602e001c6276328d6076328d80f2001c4276328c22aa000c20f20028402a001d62a6000d407632898026001d8276328d2076328d60f2003, +d428e0003a4ffffab827200180a7001ade276328d40f3fffc60763289e00e0010a40000b01000000d228600080a7001ac42763281a4fffaed20f200084006001, +b7386010c2042004aa10000496032004f635401789392010ab2920018928a010f229001684012001164000091900010080a10014832b6010c6076328c604a324, +0640001fc624a32498023fff8680ffff8b3aa0108b6440149a02ffff952b60109729400880a2200e900220018a1020010440000ade04600880a54005c402fffc, +92204008833880089f2a2001d853c013044ffff48680ffff8400800980a0400c932a80018200600880a2bfff02400018de246008d40aa0009410000f9e03e001, +81e820000000000080a3610081c7e0089810000d124fff1f0440000580a361019b3b601080a37fff9608800c9b2ae0109a03e004c2237ffc1f000100d2242004, +d820e008c408a0008410000c980320010640001ac222e32482807fffd800e0089a023fffd2017ffc07000100d4012004c202e3248a0120041700013409000100, +96036198c850c00b953a4008d4217ffc98228008d8212004872a20011b000004044ffff482807fff9202400280a2800d8528800a9402a00880a0bfff02400013, +90103fff17000100da23232481c3e0089a837fff1c40000419000134da032324000000000000000081c3e00890103fff81c3e008913a2010920a4004912a6010, +ffffffff4f424d440fff1fff3fff7fff00ff01ff03ff07ff000f001f003f007f0000000100030007d00a60001f9e0000d422e00881c3e008d202e00894026001, +01002c54b8d0a1c300558104c0c01138000660d01f9e0e3000034344434f4d5000000000434f4d5070726f6d0000000000000000626f6f740003434400004bb3, +0b382404011480017274090da74ea02a5c48129b4c9a2b7399a60138953159a24e2443872737a61c03118d211d766c8009840d01688490e60c601e1a44f8109e, +7e0510f62d59a773a50a010c0bac5a1d6a14a9d20965a14a34ead4aa57b37a25e8c2a247932e6dfa2060127f6e9d097441108008880a06453c12342884021608, +f63cf87168d592492cd871e1c87d3703f93361cc7b47ffedeee5b599db8ae55c648d88272b5d6c96b660dd2a96db382d6399063e5bd76a5ed1da55ab77215fbf, +5dbc3978dec499ab3d3c77dfb1139fef38f2d2d6bb1bffaeeae3d493d77e8d1ddbb045eb7eae3c7a8c4fdffe1d9cb5695b5b468dfbf06acad3760dda3000cdbb, +0021804c2801010042ef429962215008d9930fbfec1024f0efc0f500bc8ebc01ead0738fbefdc44b736ebbf6e69b4ebf431fffde7cfcfbbc9f3d7cb9f4dcb285, +cbd3d0c2002984cfaa4928194cb0400c4f5a1c049e9dbae2c4a4454d5ae4a44545495aa4a4454b5a5a64a545575a84a4a545535a44a545555020385114150120, +36ff54335043f964b412d039abac104ccb37e9ccd04d3cfd678bcb41bb98117073c1341b54d0c03608ebe3efc1fccc5cdc304b2f23e4324cbe09fdbb52c2fea4, +0179704554d39ad214d027562c67e54940008dc6ec12a88e513dad14d4df3a5aedb351511f0d15d34e2a2f25b4532d230b85f44b49e1ac5374cfffce4c74d045, +57947627ad5593785d5b52401574d154f196cc6d1590655c5861b2e5d05a0574991556196a59a555d6d4568595e6594b718a4d95bc5ab55150401d5f3315b456, +be98df651f167952e28837e558638c3f651d985288d32578b86072e39c3261898303fe755f47ab3d7557514ebf2d735550634945155a31738105a05649ea15f4, +8b0ef968867b7e59d9e59c8d661969a8947d86b95f55331ebc19e18e37ded9dee5521d5698e602f5f13af5538a3db6b876e585fd8df0ce399201ae5860941bd6, +45400940003400a0ca5b413190f10e906db9df14838ebb9540197bacb9f114435aeca1771be1cd30ae65261ae4a4b7966efa64aab58efaeae7a9b3fe5769ae63, +0b7d323f839fccdf9fb027f32bf0c9fcfc0779323f829ecccc5f7027f31be0c9c9fc0375323f819d9ccc1f3027f30bd04ef9479c79503980e010404000049c79, +9c72cb31d79c73548510579c71c72197711e8740105968c91ee751c0c77918f8d8711e03789c07818a1ce71140c779088d3a99e128707639f027f33b20687c01, +c73d50780f7ce203488f7ad60305f6b4ca639ef300003d50f088673c0020cf213b54f0ce77c043854e76b44385ed70a775545467dd7554c03c075d745448371d, +f05051bce3256f79bbddf50e15bf0bde0e15b3abdded50914bddea50d1bad7c55011bad1950e15a7ca5d2e739bebdce77d8b6bdce32237b905f9cc0700f40140, +9ce014ab78c12b6e0f98c40536f18151fdf5f07f411c60117e329c5f0def97c3920a13c7c2f6bd10078af08daf7ce76371d083a0d85ef7be0068def3a237bd14, +8256cc2016ab37c862039d08c5084ab15840232231814a64f6cf87400ca01089f5b3210ef3a7431efb5cf8be18ca8f8646129a908ce93b23f07ad9e322084508, +66119685942522690ba120152d88410d1219e8c02742508244021af0880854e0907ffefb21000538a49ffd6e883ffded57e848f7c1307e330f7a7184623c610a, +495ebaf1977014a6118565bce538d518ec6208bf18c6128eadc9ca6cbeb283846692f299a794a62a989b34a62793194aa3247b5949606272b94833aeaf85b95c, +f798ca3eae1290ad3a82f28ea3cca3298d978ca326e7d8c9a44121b9cb3652f2e9cf5906b496046dfaf19a81d4e63e637874a61ea3c9476a1c8b494764da7199, +aa2e8f7ace952e75f9cf440ad496252dfe119baed4223f0da584262aa709806a278ff949658ab299495f5a3298992426149c054de349d93814a447b909526f8a, +5bed295ebf1a52be456d7a519c6654a750984654a613a56954a50b6569435dfa1c2823c559d672263bbac57e1e12a08a79def4aa59dd284f9d2f7dea3b673ad5, +f49e3bcd67573faa8d6a3c6b5ad57ae6939ace9636b59d31b19274b3e444684aab1cd5a765bbb957a854e56951abda53aa54753ad4a9ee948ef5af8f34ab3915, +ec4676bb9365ad71ba6c25ed624dfbdb2e6d518a54e816569957b07eb3afe1646214ab1ac52757b710852a3c294a557a606d8b4e8632959dd7b08ed4af68e46c, +f1bc0f4befc3d5fb0aefbfa9152e3836b9fb2feffefbbbffecfe3bbbffdaeebfbaffaaeebfadfb2feebfa1fb2fe9fe7bdc46fcb631bfff7a7f8a5cf16ab6bc6a, +3f361c5cc952f1c38f0aebe3c2fcc8b0e3c1f488b03d268c48b03b160c8f06cb078c8e02abe3c0ecf2e292bffe053025c3e1fb300e06a15c30f63ebcbd0f7bef, +a8f295b3bce52e7f9bfc64ed6675cae4200fb9c8474ef2921c37cef18e7bfce36e7f2ff7dfcd05d8cc8f16bf78a8646dc3e3c4f448313e56170c313a46cc8e12, +ce9d943328e93c4ab180157d49376b1239e831cf76c667aef7398b7f2e64a011cebc3364e7eac73d31e38ccc392fb3ce661bffb2cdc27c7339cc30266a99699c, +effad3bd26349983aacdf4ad379deb4eab250d6b4acbdad26a46abdad1ac86b4591c6826879ad98c2ea198c75b68729a5be9e77d02da9f823b9b12cff2d53388, +6c0b475bc3d3ee705bc1cb7670b325fc1336b18d7d6a032755bc6d17775bd4ef0fdb5ac4d73671b6c2d0c6b0b4391c65b0b219cc6c083b9b7de862279ac0c846, +4dbd711d0bdcc7045feb57c6182735a2caf4d6b2bdbd8c6ff7c2df3d5f29cbdb5df0741f7cdd096fff7bdc012ff7c0cf2ce676a8f7cb6f70b5e74d626ca358db, +b9d25fcef498cbf67ef25a53d9da486f87fce7230f7ac98700cf79c777fef19ec5673eb97e977acdf17a4bfcde14cfb7dcc90c87b7c3570e17b2c18d8c70252b, +24cfbbc9f71e763ec7e70ef2ba8bfceeea614bfdd81c8fbb79e260aef8afbd3d8fb7d81f8ee5887391cc6e26bb1bca281e9b1bc8e826b2bae250cfb8b8714c6e, +9af295063ba6553ec779aa1dff68adbff5bd767044dde653e6191dd79cf734dad5929fb4d7677d69f7cddfcef84663bddf74c3ef9bed350f8f1df04917fcd209, +f57fcd6d68839bc9fd663bbffa9fc6fe1bf9ad667eb6552d9ffcda331fc66d3b5b3ecfc6f7fbd137565f35e423cdf558729f9efbb69b7ed1fbb277feec9f4ffb, +0dc4bffb0b9cfa5394c007c4c008d4bf9b026440a781c00a0414c00574c0062c33c0b5f1bf0354c099ffe3bf018cbffd87fffbe55f7ef7e3b0c637b2790d67ed, +14c222443f0a2c41c12004c21da4bf1e1cb441b0e1c11ac4099b14a4c11b7c9b9a9211c1199441950f64c11554c1105c01c111b4bf1324c118a6899bfcf3c0b4, +43287cc32f3c432c1d14432d5cc316340cc3f91bc32e2c43c228dcc22984c1230ee44213ac4222bc7cc2240c400dbc40402674c11844c21f141c4223744225b4, +30bc434dcc404eb49c442b2c444b3c4443442444458c4441395cc43fc4c309d47c413e044043acc3c33df4c13e0c443834a4c326ccc23c2474c3fe93c2386cc3, +2cc644f44564a44445390c465b1c46545a24c059d4c552fc14453fbcc5463445c4546c455964452a479cbf4028a39fa88444503cc54fecc04335644440dc4452, +474c54476e9cc7764f2c47761cc567146c46732447741c47c26e44c36fd4466f41ccc45abcc66d5c4c4668644366ccc6c6638c46635c456a65f4c25e44406704, +6154484984c88e0ca4c888b4c885c448c883c4c58634c87f47dcc78164485e7404c882c4467944484677ccc75c14487c74bcc77aec447dac5c477b844769b4c6, +fcc99b0cca771c4ac98414499e24c99a906c497f7cc969cc84c97e0c488fbc44c99164c99874c99992a4c79524467054dcc59034c98d44c9c78fe4c8653cc78b, +499b744ab8ecc9a3b41ccb93cccab54c6c4aac544ab30c4bcaae9c48aa2448ab557c48a384caadbc9c4a9cacca8c944ac9507ccaa58c4aa2992c4a9a14ca8adc, +c7f4cab2844cc5d4fccac8bccbc9fc4b4ca66c4cb704cac7b94ccbc414ccbe5c044cbe8c4b9f2ccc4bb0f44bbc6c4bbdad944ba4a44bb5b4d449b18cc7a4e447, +2cced33c4ee524cecde004cedf8c4de1c0c44ddebc4cddecbccdd9cc4dd9dccdcdcf4c4dd0ac4ddad1e4cccadc4bcf44ac4bcc0ccdc194ccccb3a4ccc3ec4cb2, +cef884cfee9c4fc4f9101a8d844dedfc604cd72ccd2f041a837f588727098aaeedb44ecb3c1b18406cceeaccceeba4cecee484cee994ceb7e5344ee67c4ee78c, +0ce550057d4f0ded7d4d0bcdd00add50d00705d0098d500a0065d001f5cf0685281cf54c508924d04fd3e4cf8f1c9cf6fdeccffcfccffbb4f44efa94cffadc4f, +3452b694d12005d251f41cd2cd24d2d6184d4f1efdd11ceda5d11bb5d112add1cd17f5d0195551101335cc150dd116255c50091d5114bd505011fd50ae24d1bc, +d3382dd3393d5335363dd2364d523415e5d22d4552c22c52532f0d53321d53332bd5522afd522c05b5d22a55d22cf5d1d12795d22875d1291d5d52276d52283d, +fc84512695533dadbd544bcd54db1c4e5449cdcc49554d4a454554476d544865c5d343ddd3445d4d543f0d54421d5443375d5337fd533e05654d38bd53d1ccd3, +e5553b25d65f25d5d55e7d555505d6563a0d555ce55401358dd555e54e5afd5455564d515715d454521552548d544c1dedd3471555dfc4ced44d454e07d55150, +d7690dd65a2dd45b6e2dd66ff5d4731d8d5672a556614d56d66b95555d05576758c55666655164859556636d566bb555d45ced541c4d53655dedd23a7d565fd5, +7bd5586d9d5885851dd687f5d7814dd85687e557773d5889843dd582c55786ad85d77d5d54832d57d7638dd7765dd67c6e4d577a0d57749df5d65935d76db5d7, +25daa07dd7a315d7d99fc5d99a15da8b9c35d986a5d9949565d79615d97f25d8d69365d99255d9998a5dd891055879cd05d98e15d88fc5585875add790f5587d, +5b02b007b1e5005b4020060010005b5040007030007000800300e80044180070924d5a8bad1264802d5aa5b55aaacd5adaa50d58a35d57a88cb5d9a165da9e75, +be455cc4450aced545062e805cbd2ddc5bc3f55bb15d5cbcbc450402408ac1dd050702f8db0e0007dbb45ddbb67ddbb8b895dbb01ddbb23d305bb4555bb6755b, +355b0a68ddd7dd5c80d1355b08e8ddd4d3455dd5655dd78540863bb05dd23d5b5c02d085130003044488807b895cce3d800110605c70600008c54506bc4d8414, +82b54d5fed9ddcf6c4eddedbad5c64f02080c3cd5bc2dd5e01d44506b9755c00dad5ddca8ddc5060b05bbc85dde6955b8513000104a05b00be955dc53d2108c0, +2f381150208411f1b05d00665efb1de08037f8077cd0850340381164f80289100506080860d905845c02005f1e3891b84408811191ddfaedadddf71d5bf25d5b, +8edee9addeba95dd080e96881a46001d145e61c915605158fe8772b060db3de1df12bede079608110d06870e46114238380010c0800c5edf8009860770a85b5c, +8030fe5c004883407738620236e0c7dd060452e062099860db2096610806802224a65e71a85b05969d610e10051200028a10010009905eea1238110028051678, +408ee4052ee41aa6d6db502860003860607be8e0e84561463e06013f5e5e1616e0823c86df0ec600e08550833b060041ea45048548600d167808f71ddd177661, +e6e4391e60633660651f8edd5bc6644d09681c0480de502e7561892865343e5f0442e0e14bf664b93778033830848510965d00a803376083e209b6071d56df1f, +dc324684500001183a2884f3c1836f4e5e08324883334803db132965f3399164586687a338df506e18833aa083323884656246dc32c083320340e0640ee60b36, +0018833678033b28785e00f8817f3867857bb18009264f87fe0581036868c90910e8183080c61980671088007cfe877813689c04d0e77bd130805106847a5600, +3e65b9ede88f0e690197ae6108d0e15a060e8082f6077260d008726080f345840044380a02601f0302008295260130081087329e620210050377462152c06504, +e7048064a4fedc3741000b2ac06500209e660208033720836a790683a2bee0a37a0e008afe07a0163180860e809cdee963968e69817edbc61f80e5be18e2932e, +7c886c0448041aa8fe5c1ff001c72604dd4460010850665b1ec8ebbec086c2b6c800ba466b00e001ebbec005be8e6644720ede64c683bb6e900341000b4c806b, +aeebc705801528e48842e082dc0e6dcbc79583d89eedda5ec001cf9eecd6beec833430033a70ea42d10e64546683394060e4322ee544e001ec64ceec3010ec42, +03b00e042b46808572408413396eb4fe28833308036db66d0460386c8d3e673737086939086e002820011976eda44e03e816606e50f06c4442989cd436ec3fe6, +00680464588845800e7016187038307000a70600fe6e03ee850804367008fb06600474580845a08265f9f6073da8ef85420803319803c186e00454489f324a04, +078045a0041b2f71704018f02c90f10f87a8030b778318965f88134ff185e06f700f5770721871083c08702a18f032e0608103ffe60a0f0380067ff08588f046, +ec4360003527db85b3d56ec49d0333170870704864c05d08f21d27843a80032076587200307127878085016f02230771f2546e03160f72431c4771006004150f, +e7a6f43c07001fc007804360045c90f46268b6dd64de7347382ff43e67035d1070eab18eeb684e6680642ef31090732685380416a8f313e2585c3727003988f3, +301f67ce73190875839146040a8089854f07f53a9883329070ec43808757dfe3e154df60009003203e67863a7fe013e198746966dfded6eceb3e6785fafe5b0e, +77dcd55d739ff774b4eef6333f764010cd5d337e611ede765ee1cddddbede0db1990031f68762ae8866023bee04e466e6370b803eac55d07c146041cb0e2042e, +44e000f9ee075ae078833528033738a1637ce76d8718783a77070044a860fcd58f75149e7501def7e67dfff663a7865d6627f5243675544f37e73cf781348083, +5778d975837d17ec04bec6df19ee80793aa883315883952770790090758e0600e5f39e03f04e043222986484bfe24f5777886a66e7204f047052c004e1068631, +e83c87011e2078005e468a7276f88cde70ec442007065e885e7657750080811e18d87a44b8fa7f5000817f085f18f8ec837d5f796400850444208552de793360, +02987cbf8ffb64c6870156bf7b3cd07b00c4ef7bb8077c8abaef01c15e70bda758e8b7ff7bb9e76d7bc756048128640e003811f329ef4fa7500406587bab767b, +e7e5da07fd4faf7b7d00e881420ef1ddf3ed7cbeff7ccb5ff601d72787d827856502b000d4577c8e1e2864450006cfdef0fcca5f7ce45e087cc757704ed07b06, +0476807e05707f8a0d28ff3caf7ef05f6f7ed8ef7404907d04e8c780ed3f67efb4ae031e187d24a74003e84700e9577dfee057ec3ac8fc45c75e041e38fe9a4e, +f61e01d008752e9964a0cc41405000d046000702de02fc0100200372c0950539fa493e0068fb7a1dcebe9f636304440068967d85fefdd477f781b33f70d4cee5, +4222c0ce6b0139506b288dd2913b7b773a07480704db898301da2a63182db1a9e00e84013810e41ab0eb3c1dc55b08735c80202dd841407459407e77e0808107, +08c14080bdab61671476380e19c83b208dbb1f28119ea0092f208e2b69a9ad76a56c02b24000000506e8ca465a23c003384077d08ba3c9800632811e88ed8e9e, +3c38f4c00006987720dc8200c0114001119c3a3b68d476deeb664014840323cd00e4a0092e8421d8401a280673171844203c2007100c02f88dec6541170803a7, +83acd60a6d212c64a10028852d001552e0142e0447c00b56000afcd8883867323b67316005383647c081de35001e984be1401af87941ce117790dc4d3b31b800, +523c1ca00d01c02317c2236002bdeb17bd2b1a523c1a300d64080c55c030a401607b041c201174bd07c0800030e882a1021cdb2320008920070d8d167e3a19f0, +14b000380002c8410c79410f0c002762878beed3ad8010300260e00ef3210888dc1b3003668019528b8af8af44f7f4f2300cf9c051286ffe2003a1f09cbd0137, +eb8badb91b48ebf000095257061867f8147be78c0cdcba85c08413a1f5d620437a1d1028648f001c09511cbcb722e6c62e260ee0e128a001415c692d4d02b034, +302099f1009ed81413d1bb608031840151146c9000131cc51944009d88d67800453edd1de88980008990000d20838248832c30f1561f1ba0004a040090800820, +0077312feec501e080291601e8220810a238b87a0140eb2100082c829438ffca20f5cec07923032db87a4291b7a9b23092bd31d013a101326101508c8a392029, +1c8c8051320ec69d3ec6abd717c5175e220103000773b12e62a00cb4009e38d2037017cd57206481614c8c068031eec5300200c208020ac0171f975ebc7a0440, +69448c1c2d041432121083d908006ae3ce5823517c8d00208d933135ba81b4a8c5d0081a4140601ce389d88b767134fe80112c8448c0073a8716d5225bc48c40, +003018821851fd99410080c76471ec00f0b6f6d7262b5f0af807f000d9198510ad42b4d51020c02f92d9abd35b8f4c8034c077b9c38ca8ed49c019a51d3c0c05, +a888b48b01d7ce761a91e2dd8102390949c00d122476c476b6236be78c0d144812d002b836c3c65a083f1d1ec88f00406391d02ba63bb2a6c480b8102481552c, +23410003089226729168cb4436801ea9c7ad070e4ca403c00112289120e00154a02d928110501c2747eb16826a148e65489029c04332c8b159c8d53706322409, +001701c024c00335038eabd145b6801072490059d626e1a0036396e48b48d22e5352481a462b692224e918ade3935c8c02409279d0473a3401144910a0009064, +001028d9000b20949f7c927e12442a36da694924a927eb241943c048a304824e930012457234cb88c93ad917b9e497ac64959493fc10496e323272492999234d, +c533892159e5fc7ba4a3d48e0b9045aef150eec644e92591d9161f6471a40403e003276f4596c9162c047080dd000025be012b58089880097c40bee9036bc0e1, +4ccb6739049122018adeb1346748510048d1014ccbbce8bea4c80098a5b3448d4184031080a535471c2045b4851415c02081214dac043440955ff28a99485ad9, +119a35a89706d8002f3ba4921498d52e91f8121c744822e9477bb921295d87e424968401f2b24b5a204176c83899c03ae91b816181ac04600097d51204188069, +001580bd52d002a830c1fe812928690110852c00104c000a0002a4400a580028060028c06e1300027890140c465300e534060220c0ffb3001b0872958019c035, +4933001035018905a1060152e63ff807f5f2990320629a3103a8cc9dc90f43040608003a2001088c871f1329980202004c9a49c5400129e0172aa800542c664a, +6600c012c003ab8781ff0607a41e1de09c826370148e10dc131b5cca24c0e110b8c1e6800f606b5e60985e13183cc3afb0809de7065a800fdd402b8b810bc112, +9298d551620eceb1f6cd4bc003e259f8f21c1bb803706e6f5f0febf5ae5fe6d7fe67bb400103c07a1be06e4eed12443bec9d33317007d4c0f5b465e57a865e0f, +1e789d6ec0713e4c7076bdd4f5e9d800094241878c6b448f03b04d6fb233d0c92f1309014a629ec38067239d10c07416607136ce857009d8853653a420bb036c, +80fa9c088feb05e0800d904f1a702917f03dc1a70000002fc3041eef1fe883084d0494f002ee80632e013db89417c07d9a93e2bd8031e0d8f5673a29dce97264, +93191b50a00c1441e24ffd99ae110141d529bb5ee002ed9460c304b251fd3db27f42b8311006568029c9807ccb07ffa09f0fc1bebd8074d801f2c9042e6501a0, +0a835c262002abf0a13514952d84046a5000900952170a15970a8d89028c0e94140060027e90db4ec0d046286f038e14eca09d12b28150185e5013f91ea31bef, +b610802319e506e0cd04e3ad2022bda4bd41008007c2c016a9680e2505ab10be990011ccc29dc74123baf35ea0105d081c5801232d13b0011a0abf318006c280, +3eca06182900d0041f5d089a000c58c3a469021a99e7c4e7157b5d125da2736066d8530508364d60d02daa099217434c6815c5076e7401de91a38d8132b0309b, +808fb839c7002b6d9a1e20018d4384fe40a08581ff4700048adccadc1800a4d85d9886b491f20251685252d04959201c35012330878ad40d74c01bf6513c3049, +6804daf7fb645adc02001a3b99ec230101c01c504e1421226ce7331f8046986ad704009b60ff29477962c131f006da40d0b4402d7d5bab30a4f040a00581582a, +96368e0280c640814d97e6362505a000991b809a064d6b8a844d6000fb633405400b48a6cb34112caf9caac8040a07e630c1e4414e93086f7b94aa8e9e8d081e, +100e84814e884f09c04ee1de38ab9558fd8e5d2d9dfe03738253cf374e35da3b80e646e3a613c09bc061a232d485a6115f000ed0183838a81e40800340235ccc, +6f8bd1ad817d47f34e8005b8e3fc6a8f9e43012720050836a4023506c0c572610e7aaa51e09901e001f7c2671200ab49ce8d062c8d2830489bfaf3818a4e7252, +5bb6c005a8ae41fa047b80ee0e18fa92e0d143060e80aac240043cd5fb66f0beb01ba75dda146028cca6e76b69025516bd30642050b52926e440dfc46f6890d2, +4060be8fa181800c9c3e837042540829cc81fa4363c0400248209ed5c1c889003b5006345edfec04e5728279ce32d2812026c3043052235e0654593ba326bab3, +c57469ee8b1c305613f0827856534bd90604eb5a9b034ead7bc70eb51e51c52635d1da5921c0e1e3df66cdac9df5b35ecd7952133a7059d5ea10ced91d6067b2, +2b1e0804d9c043daa00544bd5f8706c2ca05fa9755cd73694c66dd759d89cdf0ac80bee909708077bf2172bb6bd4d50d00c013ccaec50a1340780ee5803a839d, +3f251511951376ccf80009684a4ef94216501c3d0130906f7eedaf63e0bfa2431dd6d71349527fe823178227b0a062d0aa3e8f0ea401741854344ac7ea981bd0, +09a0c08d75084060602880c335bd85f0cfb725dc30c087a50087136f6e53bf81a07faa2e04506163d03f49e6d9aab04eb502fdb3be55582955582dd03fdd5785, +56610f0087f30499dcb035d6ba2e59fe32590ae600306ca789c2a6eb704ecec3ff40af4dd9b2073200206489ac43d068ddacb01de0c7f23e22ccb22637604d9e, +15524626c29225043d80071c0e127439cfce831f4b08e4db0ffaec3de07070b6b1f7601f70b84f8081202be2a22c37e0ec36dcb0a132c8d20b009c022dbb29c9, +453a9007e04019b82da7050077e0aeb56bc0d2032cfb43596b161d82a8c5b29cb807e180c3010249d08120e709b8e73f1a87dd7408e70d0f242fd2e258238be4, +2adb344b6a6b41a2a42df80404d020c820a2da82d97bc00b61706a536dfa40012c80b48520ca2ddac7b2cfbe2068010037135c4dd4b2a816a72802122c5a6720, +c885db7be0099eec03eaedbd0500d8e0b081a06ede8b460ad1255b46170236c858205d08a7000b5480cf22391ee0e59c400bee5b7e0300f55db4b240d82e0452, +8e0cecdb83ab6849d06d07ac9b15b9149c9b28e2dd1adb897e023debfcbc9ca8ce6d0e5db29040cb00201470823e0b0925db672b81a694089d0db202b7cbe25b, +db36e552006b1b6413020ab8c1a245031b606562730c9881c97d33836b2a3bda0d44e08e3bb82ff7003bd6e42e8450405c10176fd91689036d1fd8b8fa96d836, +b64120ee3a04408031b1ab42ea66ddc581ce0d217df6c226b6cf3e01abfb10009b123fae136bb995b5ae2c57e7e6388e6c5ca98b65d307d69dd82778b708f70b, +45b833e0800ab1458600c3ab422c2ddfa36ca66dbb9616e16d36e726d9b47b73611b762f6dca2571d7edb33316ef3eb97d9038befb09322d07b22eb6d5017f37, +4d7c115cd1e1b9c7039cdef30500c200061c9b28a0038b5605efd6d99ebc1710000e476f21ef4218ece38504de16db2ab68a3d5e0dd967c56b01385c3810bcd8, +97fad57840c0a98d00fc423cdb85631f7bf132de6b751170d0b376d6451001e0c8377b900ec6ac8ba32f0b706ca480089e8d635a550a99597316060a24294001, +8aa7f7d2aee72c046ea00e2ccc20570a51490a842ead0500f82d06e377e4814af5f15f16707fa9017d69a17dfc902d750321e0fe7e5089703ce74b5e3f1dfd75, +82d9c00fe8b5a560bb12d8546e4db10901f07b0a56f0b545400be0bf6ab2144040c9d9cd0f7c81d91b0b38dc09c6bcf350040ba114a000f058e0858919b9db1a, +ec06d6c00f6804267b0374000d043b11883c75cb854da55a4af0130305e0f711748006633c8df703b05713ced91928035168891cb803b0c3f3493401c03e0ac0, +f08b08906f6f1baeb01b014ecd14f000919dd173f6027e5ddc7c401ece037dd869a6c0e1f9affc9a04e14a06f2800f18dc3c68bda520ca2df86dfe037b500838, +4d14101cd7620ae819da2d04a2d8eddae013435a201bdebe77424c011e00bf5d95720e5095b5c5323982665be3fa82e74d011600bf6780c32ff20ddc0137b085, +f3832b2b8d9f6e0b84db3743b5ced81bd000fcfa80d08b141d673775315becc5b5f5b754f31f6003cb7180bcfb10c2c18a0fdcb095b3a3d89ba6a00bc3e128f0, +c8c159f0ab01b6dce316c20bf8686420c6df0009a0db09cc021ab0104c81ed2dadbd05bf2580c3c90da69a0172bc1a7bc08469a8ee1caa1c98c62e524d9e020e, +ae8c846409e710a857371d9c43f8c798c6bc33102c40e3bbe9d95cb710265c465a1d8e8b700bcecb0b0115d8de43c00ccc6b089c1cda95c860a39b5e0e169841, +193611c4dc822cd85620dfea013928b4ed15c82fa0909d0226c364a2fce52cb2e4d0ae4fae09d118b4fed621e8340a77049ffb7b1fae2384e03056700e77252f, +7217592a3f83d3abc1e6b800a59e1a0e9a29c06e12c01cfcedc1110052c0045c4006461a2aa86e5283b202b90e10e43747e3705b0fb0818c5081ccad07dda02a, +28733040b0a5021cfe837ab00be827061ff399847393397e525918d04f3ddb98b6b8e74e482ac00084030073200c84b4150000a99c0ce867f1e8801c28c40b21, +a9440149f49aad811370b854f0827db18ec9c064a6045219cdb900f932e63a50e669dc375381a50428688605f41305b86011974100900a060c9a6d01fd746223, +9d1c00014bb40c84400ae8001050058090018a801490024f7e72e8170078034ca74427a69355413e6981546e041b77377aa00ca48048609816f09a5bc01c4803, +d2222b1b034e4d158600c63a041c90caebfc0816c27896ca73fe79d1394053672a4b62fce51060809dab33af35cce04003e9d12198e5f93c0110b088c9407e86, +e2f0015016c83d6fca5580c335d0094de0d73cd254011b90a4c345bb32da23fe371584e192fb9d0d1c9b5f7001f4726436cca5b2263a3193bc38d0ac0638dc87, +f7a517c22ac870a0a09f991600b8803d04b9551063413311a034057601700e064340e4e959270d00319ca327343990cac8b3b43b7a210ce93eeb680a0b9a9980, +1f9ad450c052bbce215b05b3f3812601303b84fd682a5540a2ebc109e07073cec4a01908e0690000e8850005d2f49ce6db2af8bea0b9085cd907d04f24e0a505, +bd16b0aa93f05523695633d5e04000b4ed4404b500ac4dab27044cf588b069392002808011c084b620e30820d02666e3775904f07d53c0144e6d15ec356c5753, +41440ba00a601a02a69805400524807a0d8d00b00213790098964df9e1542300f43308e440445c10561380b66701567517a7da7bf45f02a00714e055d38058cd, +5d8708723014de35ae61dab536d7e85a8ddbba5b4feb96160008e2003402b6de411d000216c0721ec0028cc77fd00fc8c00a9c6d1fec0200600547c10284d302, +406307808e3dfb10a8d2fe75008088048ed7e4a0063cecba3b5b01400e6ae6c2c1800028d7eeda60feda5b0b00702dae0190aff7b5890c007994d725a05e5bce, +b7ba7190004090b497860a9ad8363dd53968001a2dab053571c9d246c0aa112aab0340dbb301a8e0021a4154ff3f1c506b79ed16df75e318eac1d66a0dc05dc3, +c3ecfa6633ec798deb7a8600fe5fbab680d1a65eaa206892801f586b72b0c5089db499350148d83f33d6a71a59378e50f842724003a2761377357010d93fc01f, +1e11743b00646e9987ec910db94ff6e459413d13008bdb0eda856e0b00bbbdb172e0b0edf5d58bd82bb0c36c5b61e36c685eeb7a4600f636b21ddadea1db2e3b, +10c3afab6b444c4e9cf12d2b784691dd06faa62bc06d413102bb560e9881bbd602f9460f1a01a0c6a08a0400941a4cf30b72bbc5b12626ddd6d5f6f639add9e7, +804618a8a4a0a006402274560ad0f6300d00aee98940070c1e01f0821fc23557b8022880ea00dad6e4c07d26036d1800c06e8926511a8c065899567b68044da3, +82a27784d7de4023c055d5c1eb7320ba103015269fd3ee7b4414002fb1030c70033a0471103401000f00412240adec8308d45a1430803fc000defa10016a5895, +af490121501cbe8fcb3a4d02c06f091654005001da3710b080b51605fe2b0014a08c41100b30c52a501c5d415bb65deae06e6dd1d3d28114bcbd9d8702488019, +779395724c3695777c055c20772f000efd80f396deb459dffe813af08e203ccfd34fd539dfaab6c6b687003a6076b57308f800804003578001b46f89800a1a00, +56760664409083053848abc1927aeb571c605351c0015c9a069c1a2c908e1241c06fe00c9c0136504edd19bc0ae7313d4128385d53917a1620eaedbb91f60ad0, +4d4ace09b2e8d8041a0170e03b6f9e920d12546b1b8e087456021cc2c5541c93c77e5fc0c852c4ca624131c0cee600250b6700c0d903b5b138808b8c080d68c0, +223736e0ed045b2c620110287575eb0a52119a6f5066b71041aa359539330701908b059fad8e174e92cf3fbd3c36ef405617acd8f4016180720b0116500363c8, +9f8f8069ecd462018563c11b9e07a0800023602faf8169bc025220df32c72406da08b8a1abb16fc69cd7f1360cba5dd1b7416ddd388f77e64064541cd6e5bc84, +6ea4e3cae1bc1064c0e106ba3e66ca52746ab22035cf833493dd7d7cf2eab970471a3ed6e771e01efa3c12f073e5bb1a782c1cb7b02ca0003ed0e799e0a0bfe3, +4e783d1aafc155ad32b03753404997ab87eb0524f70ea3000e884373abcfa1000554bab20de99cb6c6bd561614e79a7e7494bc9c69ed3f9f81fbfd07f3000ca8, +0826f115028059c03400c00026583dd0db285f08b3a0544b6180a1bb9d4706fc00d740c151d09d1208e3ea6d9bc9747a55550840bff21c19ff58fa9aaad3d377, +57b590320beecd603176c75e4c6d78648f982820ad11e0bab380110c763b68d8269809295e5b746c2020002ac0961a51458a0242401f1d17066a2a6d85009815, +1ae7b911ee107241491369992b0fe2418d91ad26e00541fa050440bec9037d90d134e0df0279afa5ae6c379532c00e2c9c00c83827370e8c97168fdc2c2006fa, +1b19a87bdf1dcbfd80c3b1f6ecfe82f907006801509707d943b2770fb933c0fcd182362d0fc0018786acdd2403664fb06877c669da85400b1e2b0fd4818cdbb0, +8f5ccb55e361ee9bbe1dbff702ea5e92f977f2e8bb63ab053af8edc460bf9338c87964eeeefdbe3bdd99c16f5f063ff6c8e67dcc75771ef00379200d381c2d78, +d55d400a0872b5e0ef9d406edee185000000b7106ac190c34136fecf84800cf81300d40210f0db4b477455bcddac7e6d96c94e2ec2bb5c1a2178354e76271c45, +40e1e1c16fa76f8f78f20bc1ca4b7817e3f744c0e19afc42c8c0901f69b50077c780ec0a6414500746b0618b019e0500892b06dbdd180cdb17cb034bb070013b, +61306cff3c7797018b7fc96524459b5906fcf60df77849f274ebbc1c0872b600056524ce2f8439af0208f0dbf30087ab41ccd5f22e40b0d9d7cb2f045ff08285, +77b4db0c952e19a09b9b8df2db903c97e116b3fa87f00384fe784b2eca9d080d5f860bc1162477a1cb62cccbe977f27c381c37e4c80d998d93d4168068794006, +fdcdba5e1c957db76fc1a1c7ef2f80c3780fd99fbc36f0d71c20e38abd8e77628f0b72b7404ccb83c667f7ed2e9019e0a51f6f2370f465047278a0d0e382df6e, +16a082dffee71234c4e43dbdcff7bdf605ac18bfd300e4eb6352ca061cc142b8c01c78014a940dc04fcbb67b1e17cae9fd781141dd7cee0e2bc3cdbe4fcb0342, +c0de87b439501c71e67395bde764672dc7ef0280c365fcf092814b9c89f93d83c06d0c73f869f132bf1d8d3fde830f16e80c074ec82d4006f834d373208106f2, +d07df2e2d848eb8d87407671fe44d8cacf55e399d6daef5c1e88df617fe4188196c98053c3059f39c76877e69f3c1f87fa99700b862d280e01003768f860e3c2, +7864f722aff8a34cfdbaeeb68e2e4d763a2c44c6984e23db20ed77b8ea1ee19abf8d3b3d00a8fa0073f44eeee7ef649d0f5dff0ef5e56387bdf18e33ba25b7e8, +5ff4fd9ef19f7ec04afe91bf10e63ee29b3b2f4cc60300167cfff13784b7cfe147388b23dcdf0fca9fdb6f4677ea6b63ede37d0070a94b5e50a6ed4240b6a950, +4e16fefbb6f853fec31db9b7eff381b2f83d7fc105c77bbfc65cf6f5bffd45fffecf1fee1b1c15707f7233fc6e7fd8ceb6d6f3641cd77a1faef74b2e88e7b999, +ffe1e77173a00dbcf3eebffe46006503ffcd6e01c16dc65483c93c1ff13ffec2c3f7dd9b92bd9c9323ffda1ffdaf7fd13a578d3b7748dbfcab6cf907bf4ec8fc, +41a0f8bb5e22b21201b1c5254bc61a022630120ff35af470fbd63ed62fea83852aee1ca1bacfaea3fa4bff3cbd100f16077ef7f13e7ec06b80eddd06883e4d8f, +ef242300792ef3ac5d20cf33685ebba41c33e0fe2bc89c9a504026078520b878011d029f2b02dcc99a70404005adf323bb43ff62190d50cf4f2473080601336d, +220300463f98ac0166239370263227a77800e9a35e20b2c7ad36401ce2052c3cc41c140f00200239c986b27f0b2883c97362cc3fb40b26d3e45af472c0b54f8d, +3206381cc52fe7210c5001d8c0a9ab3c4bdb5af104327bcf6d4bbe810782adc7bf2bf0e451031d1bae8142edee6b0351fa461a5e80a683078c0115405a4b0510, +05a73f8760dde3fb530139c14db0f6232c3b7212410090eb27c229ef9e3e231085e0121c01b7bf0e406debf1fafae0be7c9c498a17e007f4cfd0aee4cfc9e16f, +9241667021a8fba0ec76bf9f0c16daee2a0577324440cbb2ddbb055dc1c4cfd20fc789fb16825ad076afee8bfec2bfa6344910ded1fd1c1ed4b81342fbabfd52, +01de0c1eb0030035781e5dab0c08727c076423bcc521a8b8dab5461a5f6036831000d4dc2c1420d720901b699a3a3d50c04edc0b72fe2b3ac0d70f0a0c06a141, +42101ef80200352a3538c021146c7c81e6c1d6ae3c220300d4782e1420e3c90381f3a2b2f2480d0050dbb400807d50e50a0088f3f4403800a30b0528032c1cc2, +00097a0955888ac7366c21f805cc2778193900a6faaf421a1702130d05e06eb405c43478e0ad69071003f2803240b0f9cd2b8fb200400d0f0f0070087f807970, +a682a3e080a89011ab3cc26d7ec2d7083ac02004007e81e2231f005013ade2809629f0e61730e3ca807ec218060e70802c8e7e0148ac3c320da0096dc2340027, +18697e818cd0030027b4b438b435600be21748d2e00112e9eded32720bdb80130040ed050300cc807bad5f209f2b8f56e838b416a00dd807d003650040ad20c8, +8f1600408dddf2e702b516026000052b08fa09a1ac7e4eb06c0b0306683e786037600ca0a760aa33999ff0289803f200fba65f60d4820718d438812e4095210c, +602d7fb0eb0a720a0080b29570c471c67807a832bc2b00a006087280011eed1fadbff308cb803c2051673eead3980440c0020050e394c600b81b9106350402f4, +3d32a00c3003c28032ad1bcd1f34d194709443a0ace40206440defbb778019306da1b5ccc132c03af020bc0065c36d6899eb1d70ef92c3e5423a200618698001, +852fe701006eb3bd9a60a032330e57b360b120e736330d47b4bc43b6851170c6da00d9c358c6cd7a24d3b2aeab584654804a330e7f011a4f0bcc0a230f8b2360, +2e454408df81550087a043340324ab9801a0ee1d98057e330e8048690e706c82cdde01df2c437c088aa3ca26002018e01da8cd32c4252b524c905b088281d9ec, +d772b09c1a61c07c8f4aa49fbcad6a665b4b0e50cb003d0b0147807e3a724e005eaa5e2e4524f9de7a5c4487c0666b81036f828101cf3874f952003a9a256a7b, +0403e49b7720c6794e7403ce807d0f4f0d1a7b133bc4e98c61e0337b0706014033eee60c90d000005a27d8b00590a70612f523878bbf396f7a07f0000e272ee4, +ae00bd8acf385c02d3fbeabf970a8e2a1d9802381cc806ce07a68a0df1c45fec9dccfc5b10692d38bc77c0155b14b52cfe44d8b06f120678bc84818aabb21a73, +a926e850d9b38cca007d440631107010790fc34359b14074517c7654bd616bc2a0535415b7b0480f676ce38b9460aa35010351cf0af41a440244212719730804, +807bcfb1190692c45faf2d504a4c1701cee4806f911340148a0f91c46d91106803c8c61a026080e0e0de136c86014ad1c78b466410f91b1400666a18d013edb1, +77a01e400465bfe934e3d088c910493e88019a2f5fa49f0c18c79cff4a0c106c34f91eaf7b71212837bcf7829c61604ae8001c06302e0a0c77e0e28b178fc571, +e01ca09f942d0000178f18300bff017701fa091e4003d800821c6240357407d819af2d69310c007638021c0290d1401a12a89b88817c2c00efda2ab9fcc2c34f, +b919cade2d00405460e3ea05613feb2a91c6c1936fdc816424534968c4194980e243a3113c5b086607b43e67ac68fc66f8c5dc0138f0ff830d60ba0cb2858018, +4405381c33d071483a5b8b829c266f6b8b64741ad944a58b624024740754b0c7b218860718011c1b9c31512c293371cac698462b8b6d81053a64e2a2a291cbea, +19a546b6cff642bb40f878c64380c3d1c7a903eec685a018e0f07bfc1c2e9d8c3dab00bcfa1e8213819b6ffa9b6b901ca82bf066cadb1a37c65a80b4f1e4619b, +da80b3ec0624f3f41a17c108c7cce27194037ebcbff1442b04b07b8c0112606bccc171c6f61b32673e40cc53b6563fa03c00a01860e878464cc7c691c51b0172, +812fcf1d78151f2f1cbc936776746c8cf34cb4d70f760400b00254c7e24825220428648c01decc1df0eea300513f816cbe2f13ac0061b224279ed10c880393c5, +1880c33906c8b349be34cfccfbccdc01c73c0080789c1e8172acbcad71588c17d8b094bd2c6fc80b6be4e654bd6fc618e0418c1f339f276ffa910bfc047b4736, +c0052003883c334f9d6cca9b20293014808d4b0c842025c887bc10b22b740738b2223d384fbe5317bbfb3648d4efd15b1800d1dc011f4bd1ef567c04d134c1e6, +82346374c076801eaf894cd438ad39a0c42f1b28fe9448d430772000282295477a48340088acf2deffca88d5714653ba5cf4b4816beb18902e74071e00f49175, +d80ee34564a0384ace5b089081d9ac1d52543220c79c0bcc76401cf8f650b21b3e484fd27321e59bd881ebb1ca5b22d7d3724364a04e6b07d020a1ac0e32e63a, +08864478eb231b24d805ae48f57173740d10239181fbae1d4b878c200fc81886488b227372fa48cc4846b26b24167d3913c914b2795c21ed2379ac76601a8823, +043217a0904906dc24cdb358b2caab9b79fc5849cd6f24181d50b8fac6f4d189c70d10239301d5b0468f8e9c245bc893bc980b8f54051ec9cb08b971905424e5, +c4c50f6cacfdc84969458740546a271303389c6c80dd3a06a41d9501c4ac9af4f67262a6c931a787409aa418db01398c2ed21fa4254da51fc57fa01de8ce1e2f, +0d71219827c53e8001822b95cc74a2c1a29e4bcc89710856a17e9ef86cad0976f206e80008600ab80d6027d9adc4d1e1cdb15106cca776605c916a12c5789c2e, +320b38bd04803ead31ad1d6802684a322785008f8402684a1c456d92919c02d406d0003cd209e0709028791c11408c54a034008a00a8300f0b00f827314a3deb, +164ac66044636c2731aae4fb52c9582c65a0106c07d2bd783211409b59a6461a8f4165a0f8fb220523bec86520c2f922cbcc52c6924b19281de00154c74c6bea, +3c18e3c55410f403680400960176008f4cd92301c2003280dcebf18aaaa889969a916619f0f7da01a8465a8b0470cc422a5947e68f155cfb7b2a2d478d6f2168, +fb16bdc812f57b02f22cb18a96ecb1e46da4c5962c43a06e92d8e12b57bcc7af6680e66307dc8138301220813a0d01009d1c4220b999ff28f510bf146dd15b02, +a80127b08cb00680fb36c5e06ffa6b080cfbd43822ade85aae0cb7d88143f092b2e4da149f28cc0b612fc281297532b8a4be52e66207f4bb87ad4df1f5532dd7, +bbe1f21288231fbf8e9cf3d277a49afac6922eb645bd2cb8cc2e0bae7eab098cf1d3b30601284b73871928fed4389deb7e8bc762075e010eb254f2fac3a77c2e, +adaa4e74086032dc99790f04e06e4000ce303c00044867d6032c23fa8c1e02017802024b10c0026bbf54708032f44c0480fde3b98cae45af9e2a00500250b266, +91693c79a8302b2c64b1bd5c16a1c0b52eb451954409604c4cc60d2b95842e47078ec7e410091071b0b49ec067eb1f60ed6206eebef6ef1f2fbc71b374b2d312, +2120bb84816f66c4320a7cfcdc8015700a508dd3b3e2bfcf810dabe42a159f9c7dc185a0c8e4fb9cfe702c116023d82f64078a9cc7cbae94c31c14b73066602a, +84010bae648cc4b9cdcc33a73fa08ccf02cd4c6e1e3f33a0baeff1bb1ccd4c14aec78fcacb001d8231cbbb0f060c001cfce48030537194173c1f32ad00a06e7a, +08e8cc8eb1cdd4b34cc63e8070ecd25cfaf302da4c5189ca11ce3c331d02c76f64cc3f5b34dd4c6dcd642cc279345bc1cdb430ecf113030433c5cc0ff1ee3334, +239c92cb1198c07e061001f9661d3824e4b44400ee6b21801cc8c6f2cb2733a660217006eebb7560b0c63ce3275100614cf6721060ff783f9a012eebd0d4b3f8, +be436e213828954dd78106ecf13207f4017a4d00001af00f5436e9cb18c605101a0036d5c3c7ebd7318661014400c7062340e732bfa48168ba85a018cb710200, +d5701dd0c1cacdfec48540040806fc4d314aa04cc91c2c21b9ea4dac42cf1237fb06b4acea92e7f294541a994c27132573218806d2c975e051ec1c70b3eabf75, +6018f03793b47540baefe1b49b56ce2e2f86f31b7062c881a2017f6f1d98b81e02440011a00bd0fb8b385b2fc252e9da28eb041ccefe2e29eee0641dd5b88513, +e45c086a4e2746e7e00ed094104e270642712190062cbc75ad7a6a1382f8844cad2cfd1225e3323906decd594669641b3495b8808b130088d3a13981329b13df, +8c3afb4e4e4b08c31d403211cbe9afc9f3e41903f04ea06e6920e6bce9384ebace0c8dd38203d84e9a4d4fecf1c239b536fb4d00401ac0013439d5cad66baf3c, +fa82cb960c2653f6842c939bd3b2adc41df801e2c8582cc48a9ed2aa18cf516bb5130ae471224f38018a711db8bbe245163ebdc9531c69a43ab7306900d84cb1, +a681c053f53221bb01922938a0300300112b01006a93d6121d00015ecad4f29b40ab0a72a681d96c57cfd20a1da59c15c4758005a81c712cca8090264a9c062c, +002d6c21802ee51b36cfe94a28d4edcac5ccac996cb144bb9a06decdc332c289ede46f5e00acb36f80018823614a984c4a6da49906bebc754c988cdb34954400, +2bb3ede2b2943dcc818d2b021d3031af8b236a20295407be6db499e92c55a43fa0f2ca3b65ef0e90f12bb6a6bfb6b113ef0fa0260e40b4eb75c01ed8b8aeccc7, +6c8bd3056ecfd51385a94eecb5a8016b815331c8a1c16a428ecf17b427c335ff40394af5d3e842bbaa3b53b44d3104bd13c03fa301af91e7887bab134f086a00, +6a6cc99c507dd25432fcdb143581b26f362bb91142cb467a9a6aa04d53074801a4c315090ef0dd4604f43ef3cf5974c684b452504bebe9139e5c0826b2232753, +9801e82965eaa5da11a02931003300070e00a8065a4575807f609f9472e229ba2d678af56c709ec51702b3d1cdf22d21b9d48149200b55166265222bd8ac1a90, +0ad50145315e84ffa93aedb3bec91a9871ac9b44bde393bfc61a500dd501370031670568016200c12cca11a38c70f2a9389ce9f2e3e4b9f4ded4a4e912ffdc03, +b63bf6d2e699455720a1acebc7957484e0f1d481fbd1153d003c794880f4ce1aabe4d232491f3acba4cc63fc66b04133c0614b73c406a7ce8e1c62b0b4c4a782, +c896cb1c951a4d4651b25df0f7c231b102624c6372fa2336e0f6d4011a603d3ca674625080a4f31acd1a20f9d481218036c02d140ae700ef5081ace93a0310d1, +85f41bf500902f64011200f96a0864001c82184021ed41d506ea3475400540bea49ab4c155b390b90060025a2f50b07f74052def6eb1023080b1c7d4fab04703, +8c317b111702f2611be0233d14b7b80d4f0300f932001682b3031be0234502f0013ed27394ce6112b510d5010900a3ab0340be863f1ae0236b062864a031fc13, +21708030b07d8b6209e6ba4acd8180cf9af1257508c480f79b4f91df926fd201dc97a77321b80f61b77ead7f201d98075c0806b33a401edcdff2f7d2017d0047, +c90666c3a6b4152054e24ad59a3560a4ebf1ba066cafafc991061b98049bd2711ab06c3aac09819d94adf2ef0024eedc2d6b3f3f87efcb044c078acb7871d13b, +e49628c3f4744c0732d1da3e816c0c08c9a12859c7d1b25394374b07284745cfdd139da116cd30c381f16bea0b009c9c5cbc6c60274d074c15c5c3c0d46e7aa9, +d2a2910689bc4a13257d5353e90d70b0bc4a1fd181137c620da072d880be498bcb8b6c136dbc6b2642301d3004b2313d4abb09c2146cb2811c0144b0a274622e, +0027a00c0301ced3393fccd1dec4042a08b481a1d40b1828d07804ab3340be5a3a7508b053fee607461b00d1d281b8b34e2b94038e0833a7bd78111b500b9953, +ab723dbd1dd38101800555d91a032ca0cf3a00401bc84dc1bd1e007cc0b72950eb9bb4016a123c3d21e06fe42901cd3a2a0c700b69c239e03a203d0501a08025, +1182b41d4b4765ebb6856c74724ed44dc6edee44f5946454dd2cf172446d70c8f20e4a01003e9b153b1b0b2eb5f018a08b1cb0b45003b1f8325e6c222dcabb4f, +483d0089c3642c73f0a00c005c8087a05f40ef4bcaf42c284cf15000fd3f9d511d820d8b4785b4acfdbad018356c9c5178b76ec51bd56dec8f34366f4532f41f, +6d52f7d440806cbc45a5035a5489f24471023b51ad53336f10b5f823100d19030174401e402567d30aa185601ba8e8fe8ea6ca200767f4717c1ba9a6e8b2682c, +08c454d490c46952e252bf192f154c75cb3aaeb0542df5df714a1db6f8cfe94f3d0b51251ba35405813375a36152a73fa8bc5b1149ddb002b678542d0b50adf2, +b23eb67123e0008a1ed1014d80c381b4f06fee9a7e901ba007d8553b1cba71210b1dd8387155f0691c4b07581cadbe7053990b1de01b094f2955678c3c83c9c8, +8039c031a3c2b2b3c831e1eabb690bcbe816be39b305aac20300ba8142101db85aa503b0d5404ee4101dc00468ca6acb72ac01dac2ba01843f1ee758fd6e4400, +bd72029bf41048714d29d21b5856ab2eb1487f95754420d59fd00116335e0c580d03a830efcd1b3070a4b5c4d579b55eab1b50b6be48741573f5764407d6c9c7, +00b67325f1b798f53bc0a941cf425625c062f50730c31ca0a4d5efd2bde40420321556fd866df407ea06b6bb67b5e3e91df8ba1e2f35cee1f5ad3a210e4af906, +254bb74c25a9559bc91f0b595b004da91c206a5d28cd80be089b3364ed01684a4e000e8ae679c74e7066d668ccfc53f6a8580b4b3ab507e0c631fe104811600e, +a029872c55463f73386567ced66e5504ecf1d25b25d6365500e01b00ead00185d5962c680c7694521c9b8333647548d901684a238b0c80031969be819d141d78, +d1544ff0c9e8d2c93907f8818d2b1b30432bc3469ad545be80323c5b1802826b39404dfa06fc4374a632ac0508761c20eebe62cc79ec6f166abe8124b17dd394, +38a1076b3b3529c906389c83720320021357d5a450c974dd99d43c275756c60a330c7408508130acd54f25e3b9ea3e6b88f690187bc1e2c3185710e705b32ea9, +25bf33d90400c201332c208dc35a080a954ec773c0c1f35b5d08b85553092f00a2845d0180eeb555403c1429a51e7e50ed4da274088ab164208892da9199ceb0, +24d5fca204284e3cb473e0578d708ab1789c49c9b109074004c833f36b1210955dc64c575860fcc20213434f9e3bc07e6c6ec236ebbef2090bef1c1038e3c562, +eff1d2c0c69c1a3613221c48d2ce8130bdaa53612a035880e652f9754d6abd9407664e1176df72088c61c80003969a3c7f855f8d2e0d5617c080f5f7ce816192, +c3444a1dac3a207b600840870633a60b0ea7193dcf30010d1ba7e690335ded0081c78ce6a54a037cbd1081096c6cbd5f1004389c8787efd390eb9bc20191f01c, +1903ded80f160bf8a41450831cf3d49acb0d00019e8055c62f76995298d41b0058b0730545cf2200c481a4f01c084f2ff116821fa0ea1c69b570ec3ff52689aa, +b5c48122b6438536fd01ce58ea6c50ec190b001680df140eec1f3807e226b913128e2d3a21c481ed59ed55e92201ea430cd96ca68ffd63033a5947f4ec012802, +b5be97d56f42c9fa3d8d4b7d74eb83565808c6813aed1cb0cc41ed6a4236e018201da539cb885d7634c0b11907e6d4738120077de5b44e8087ad82549934fee0, +1c865316800e75d8cdd91ef41c480038ed28b0a86e9c256691ed4cd70880c3a1616267523b36e0c8132843b9f057a56bf2ecf864bd40cab1518eb2ee63380301, +426f21c039e51b73b032608d05a29428f6338da72da287d200aa004f4b4cd46654024e08de513eb51c1009cd017f603dea32ca12c9803b7131c731db11e5c442, +16a6adf19229a1701ecf1ce006585a978034200d2806345a86ad77c0a27519c707381c72c0cdba06300634daa9d01c28c7d902082939a00b80b30c65a3b14d91, +deec6abbd9756b2176d4320782010e6728670b38017a4e8d45730019506783c04da513a09021075aff6eb197762188697024e54e37ebca342c35662f08b9d01c, +02ca18ceb3d66eda15b86a7fc0665039e6c82907ea34736038e00da079f2daf31eb9f39e8562170216827240073407426913511bb60b4806206217027dd3541a, +49cd814a80a68c6c94b9cc816f955dddc0b4b4dc4db476dfd21c48f2e44d7a9371f5a40500ca016ad88a2bb1ad56e3d5cb019612a50a612fdeb019dfa60c186a, +cc813780c32907de1997acdf56600db7800e1f8103d01c40b4ddf3924c51a91c355e3407f42cb0f24580a6f4f7cc017e014fe0f4127138dacd014980a6a4e9cc, +1a7380293507a80063981500bc8da39c658ddb6d28b99d010803a45be830e1940d706aca812fcf1c8fc7810102b99086d8d2891119abcdbbad54f26f7522375b, +ba697c8d07ea4e1eb008b7ee536e43c686ad2fd21ce05d5fc6a65b81757c2d07d8b0fa5bf6f6ba2de2f238b1c858762176b33d6ec5c3a4acf4561265011782a6, +b2c0dd000d5b53c968d5bfcd3113dc54daf436ec04025bd6ce582a870e5063e103fcab32b60c0001ed62bfd8b1548c951c700116590257b4a7030d6fe9db88d0, +f16272332c336b142fad05b3ca01fdf3f14b85c4bc4681bbbe622cdc2a07fe810ec0e79607f46df5fb12db62ec2fe5bd2d7878ac6b2aacd51c20b8e0813242c2, +e3738b20a68b38b5372b0728d0c7abf66a13fa79fa26748072c01cd8b84cd179421d6821400766b3e0c861cf1124045066041b7d53be29073800bd5cfe460cc8, +58c38049d7ce455abac9d0019d4b203b072d079481a595dd4c285498285d74a012f4f14207921bb35a00001de864cb01f452c114bde16e6e7345501c662c7bbc, +d20110ad1cb060ed75952e334ce3d1fb2b07125859371afc0c032c29dd7480db77c93907f45063f57440072c077281522654f7e4996dd8cdcb01b056af3475eb, +3075d7e1ba7325bc14501b96d8bd74bf76ed5ca34bdca5b505eaca81e3ecf182db55bae22860e7d90014e07072dd8560f546b34d07fcbd725c952f86d9de762d, +7fd759b47375aece3e75c0422c07ea00395d2987957165f403fc5d2174d9ad740400d28151ab1cf8d31d732aa037c0e7a0d7cd51d15a516c3700d77dc3ca0144, +14e89bcf4680046c7260f08c7018ce25d39046b3550798d2cedba13396a95957cf429a9037b22d07751b375e6ad70cbd1d404ccb018132d9d5548a6fb9264a57, +0068c9bade31e705e0762c07b0b1e450170038720b471a751c7e00255b24692d5c3c7540d43d023878385c42c00548037b5f31af2c6d9b75215007eebb722018, +a274d7019aae1c18f8737805b288961e731d8876530086b7feb6a50300e8217681a4b01cc820415bb52c22b1dc5d08d607cca7720008a0299203949e41b16f5a, +d2ca0139e6251ca7bb5cef9a2d6c1d48cd8d61a81c39003a14f2ddfdfc4700007a1628b335c1be5f9da1761d38772b002bdd6a37a24da0803e4d5e18d0e1bd77, +185a4c1636dccffeb41edd0c0b3ddb00c55bd981cf8c1c68f17a567ddf7056af861d309fc8019befd7b7385240efd691d72daccb71738b1d629b4bcc72950330, +3fa70eca7c1f8b49da3deed1c9417f4541914bb00cc0bcfb85b43e542786bc5cf729411d022a0f0593c1ec9bd801104d17a992b59b7c0005d9fb34331cae6842, +00a01d68d3c881c39c4bb6fb0d760a60a73f134fe742408366a73f55b5e50a406007803a72e00765c1ac0fc157226c21b3bd74c6389e2047faf7166cf7fadb19, +54041eb6fadf12b3abaffcdbee4660699c4d51035e7f154efadb10c7cb71fd22fb269cfef700e6fb337f87d5964b08bc0070724560dbabddd1b8f471934b5310, +c701f95a80e8972d0c96dcfc3ebdfe96f30c25d331a541a3bb50d0026441eb3acf4ee38fbd4cd1cab7c82e1d38ef0d81bebc384a3d2bbefce4bc716ba2ec8f01, +e483ddd9b42885731cd802f2604b6b43362ddac2dc01ff903c2d005072c6e061377720222407c400a2338732937591bc085d5fb5f0927d03dac2da81ae901c50, +84a3bacb2814fe01dd01f2608c4b84f308530bdf81182f0f51895a6b20be3e7863d6e8125e81bcb2c9a20c0010682dd1eb588ed2c9d182936ad349724069f55b, +1ea16327c37a07b45617823a18a3747220656fe1fd5618241c20227b405c7023b60c3821de01b990a0eca9452f2dd9204e0e070d7e05792e520049c0a9e5f170, +43871565e5205f30b6b077e00d1b079037b7262b0c783bc51d045aaf66d2b24d4e7dbc140180b1f38b807c6778ac71c05b946e946fc60142ac0f381a668645b1, +fc66218007ea4e49e05f6c1c404b231c934e5a761bfe06f265c95a0000fc556b8059c1e14c375ea42160599f596f6c1e6b1c585efb5594d516150490f5cc5730, +180000844fe26dc8bd2f2486076caf924f76ab27d48f3c62f260b9701ca06b31020a1922771b6e06ae36b52ce4d654ea008007d8ad8ef81aa0f56a8601808c18, +09f06eaad735f60718137000a06286f2a63842f5bd962ca7b733147c6a4b133f154a5eb1a1ac0f7fd36453ccebc46b64d970b7612c34345d85cc68a4d69fc7a9, +44686b519e8becb24e1d0786db2d50bf502e3612b73079604b200fe6946442a1b05e2b1eb81dc701d9ad9930d8710aab0764ae71a013c883f0ddf8c187760b8b, +0780ba712020747dacff6e2823cda9911e280ec781bd335e904ce5b4301ec74611edf1e217d5db185a00401ee0f6c601a64e65ef076863338b9d5a94acc414c5, +07008c47fbe571b6efb6e1a9f7f13a281001301e1120c8111c1803f2602e0b0011e39122e581567171200dc883c3b00d806c464d920710c26101d2173a330de1, +80f6782a1c07b8cac7812300a3fbe7809f46b091661e480a98c39c18aed054722198074ae171c006700c760a13514b6ac0f82e9e02f2e0033760c70a7ba9a830, +3240c6859093c471c50867eb54bab800f4be79e0be1b07e000953d2e809d1903128f59e30c40e4a95ef4bef663358c52493cf6f7c681c5370887fa324347b041, +1944a603660019e00b511c087ee3c519e4ead006d0fbe801c4012cf7f14a91199171008317d6926f2800381c0bd96e0a0ed090c563926f1c405f543fa51c2e80, +4826046a29ee2dd8801ee0cdc481f1ce88d706a001a4640081d94c1cd0736564215e2059495e08e89153337100cee591e26f62001b800b6846feccc481e5eef1, +a618c58178335e844cc60defb3316e4a00d6fc68bb64ab6c14e084a00722427160bd6f436c93839de80184501c5007f2834d1e61772a766ae99be801a08e95cd, +4b9d9c53d9b99572a90792427100d94d000801c6003827c8581c1881d8d523072016ce116cea8152010ceff1da931965cc3aa7a61e4827c59381ae0fb9a3d9de, +93d837abeeb3b78095fd3d7120dd8d17d80192a9fa90179313a6c2f6b31a0f0578a15c03408021c09d2b95d462d1b3af347160dac5745865dad8527921a80740, +347180e6b294f5be96aefa30c8b107c4b75ee44c200fb6bd0b7690e532a03872e2aa9641cd375830003655f794ad69d91f40596eb73a59712e344b5d04f9e855, +c8561cd0f41e2f5065bf7307706cec81c58192375e74989744ebc313c21ea01ec88327308270ad410c5093ec814e1911ae5cc6031ce4b4ac124256ae9be6e5ff, +e711d66f194d20b7b56964960bc5012d02e8905fa6b5aee5b4ac5020d322725738eb8130cca4abb7e002389c7aa0f56260a674ed01994b1c402dc4984da56339, +cae36f740020cc3f452138009be6058e9a330c9b95a764b78042c61e3894cd630c2d8beb810d72740900c60d57a6dbee43c7062e6a595f5edd7ab7923227a618, +48932780f5b04b563a0b69de5a00e01e7066a6b516db3296949921e6711402e881e2f022a2675bafeb4ee20b644e3aef67b566064721609a8550ef01545905a0, +07389c4b7981830e1d698634f9261cc8e915c86e3b36202920fda49c1738944cd72cc8b907483e7166de4bcf026729b0ee8156511cf090b9ba805aa955283c21, +f0011e2f1cf887e3efe8c5df79feecb57dbc1658e34e4b3b40d3d276d27060a5b9d6a29d733bae946e2f1c680746b471bbe96afe3c21f001e3d7a8d75576086e, +0032d83ebc5cb35fed4d3a0004e0015a13bbccabb7995c7b3e878f6035aeee2bbc59b29cd8922b2400b7348debbe072cbb140d389d4fc770c524354bdbd252d3, +5e2b1f00d1c201511c198071bea184c2c2e7d8d94508c8829d0fa2b2564bbbfb4e12c3015539c2699615c830d960e7742a38b2ce8c2e87c0ea971db630959eff, +365edcc40ebfe03619fa40e6b1c2811e2c3a4c3cee382bae796287eb72ce073207ec4bbfd4f6829d5812e3af8de00d0bedba9c2fe7702b1c8075d6fb4601b510, +100c0762db854f1f31148870566759b97de0434e9d31d6782ccd7117dc059b499d9dafd2896104966e0fd31ddaeb342ef818d1acb26c8ebc751e04e2c87ca08c, +a93b53620020b8fb0f93b7f8be47ecd87aa97bbc726800c09deb875e2cdfd21d66992b1c48f57c684ee67b7921d007c401faa67c60670c07607ad5dc7a28d8d1, +a5bfca2218c7d2b2d9077267c72b5e3cc7e17ecde61fc0a98b1f78c1f80127867d402e0c07a2bdc7d212ae05d07a8567c25a874b1f98a0a57ca926e930751602, +4630533a35c35f3f2ff15035d20d209b80ad6ee0c256092d2c15466d4c00c00f6b4fdd42332d29b51f77cb84b2a251a3c0f33245ab7ac13e6e315f94e76abda0, +693a7a21f8e7d869c181e5375ed4a6db9bf9b085801f480a0107c25cd3380036609d03fa26505abe4018b39b9ce9a8e7a7861fb0f0c0817e312837941ca5dd42, +33404de2073a59705d42e092c6f104c51cddc258ec6da7530356c57c1aa80307f2a7eb49513a9c3e0d1b69f881aef023600efb3081bc675a00801f00d1c00174, +111ce84bf168433aee6d0e3821fa010be9a155caf1016e56c00100b19376626e03d0de8cba9d7ec32404d880414cd275d52c2bd7cf25ebfde019d8b836c5c70f, +8efc66e0ca62ccfc0edbd43645a5d993183616b3369dbbe2dc6fa6e40a974bd30ec079e09fae36c9076ec9616f96def905076e019a9262049c75192fcb7e0031, +c6781f2fb59ad31a84f36dc09bb3da9c1a8b142e63181f80903a54050bb8acbb00176c2138ab59476be89dcc93d6a1018fdd2cf3ab77e502eb072aae2fb2a816, +85b7e0352e1a95b912a4394ab24baede1c80a3e3457fa0f50c0ade0513eb700b737a8e2d0227d16882972b0028006a508cea3680c379ac57e12ae97f760bf307, +7f5cdafa0583abd1f254ebeb0eaea68476fd9c9cda3aaea61fd849c181d113b1cf046a01fe5935c9d5baaea6ab5dc8fc2e825ac3f38f312fc0013f9ab46ebdd0, +1e9a2705d8c2fe0109aecc1405f867a5a769c8c7ab900ea4d60cffb95e2bec310448b416021f80bbd4070872fe819e7a674cf5e384ed00e72eddba073ead0b52, +c7abc2ae362b2e1e887f2049fc060ada28b0f93a0da0794e11028004c0cdf2c1de686e00f5c9143800d8b446e0cb795ddacd8aa06fb08d20b9101ca0903165ba, +e01da029bb1c76d816c0bc86b167b36fdf0447b6092c359e466c00c0a8a6855cac335913ae9aa103d018e3680040c3560f28c11402f3e91bc7bcf66f2eb0252a, +7b0b69d22258c66ba0ca5e08c0eb9367bbbae24a25e7e900c30100cf32b20132dd66f9e61bc89492b28c30a5cbc6564ae0f1be016f2071d6e57b7aeb43914f21, +c605684a91f01b100d5b03f66ca32aca1b30d34a3502f33aed2da7361ff8e62801a1cb6d56bae839b7ece466047efdfc621a639ecb89e9ab8eb2addae410287c, +a9de472e0b877cfc83204760f89198ee34f550f1df2cb2f8f99e0a001ced281b65eb3ecc782c69b3c87fe01b9005684ae0ea0839c07eb4ef6cfd56ad200070b3, +dd4b312700500396b8f681edaef3bda2f9b44fc76f600ed84d2d65419d4bda9ddaf77372e0ca59751d07ca8a4193b157a39493c281b28cd0aead54fb8ffcb48b, +ad708cf0319514ea8d5e793a0ccbab3166eacfc581d9acb4ac63b2511729b7d319cbb470bd5fbbb6e7cd9ea975ae39344f5bec8db2c7000e67e1d42d4c67cc3a, +2e9b7afc064ac8c237a130c7764ee1a29d18b2d76e626cb7d3be0119a0dbd6b2c57ab556637b0010954ec69c18727b8040d88b17bded899ae0c865ccb67bd06f, +da6f5ab2ba81d66b12407d629fa2ecfdad7dafcb6674bf8180304e282dfaad6fb0d1ad308cc749a0aeb2a3ec0f603d6c8b75b12dee3100e33801a0f29c5853f4, +0018972b4b324ce97be0d609972cae7be98fec4a19b7db59810180c3d907bcd95d5c87c0330eb7be01e26755260dc00a74002ccc39c00d38d1bbee263d98eca0, +82c9e8de9f39a3747a8e704832bf9be028002000fa346f605ef8516640ffd9d76eb532933c72fe50e3c95353246b9bc506de014894bab47179f8466cb15bbef1, +ac2bae8496a30481cece2c6b312dc9967a9303b0b708bbbe8bcab6b2e736e6cc3cd9d39edbd4ee686a1207cb2393014bba6c12f3df9a1bed842a40e1ba45d371, +f0803267c42e0018bc392d16fbbd4a03f80478efbf1bf56bc52eb30b009ace1bfbf4c3bd87513b80cfcc1b4805aec7c22dfa9a0e90d02ceb2b3fbb49f426bd6f, +37ca3567dd082e6bbc813c40e7b66f806fb7541cd7c704b37b80e9edb2b2f3ede0b6b43adf1e2c0cfadbae3157bde98f5170c52bb9926bda5d6f8012187fd307, +073c87fa571d2e5081f292e722b9121cee51fe9be55e08fcbe476bfb0600a7a395037e803ddb00288fbe6e953d32acd9ebc176727d1a828bb53ba54b0e0d0082, +9ca3e4c194be2c931a208e1c814f4b17605aba96fc07bc81543e28ab035fada1b7d54f288b02f772cc097d1ab9d01bf0586587b1d7995b4b7adf4a2f8556d7da, +daea8a1700cbe80ce0dc0a00b47074eb8de000a026bd810b44e04d0e0032f3e4526f1440e7f6b9360b351e38cad83e00a59a303247af58bdb30eff4e4b30dbff, +f6b0d55c0e8a3053d9ddc3cb588a3b7efb0cbf6b804c10a013200900015eeea5b02e9bca6bb9d0337a329e8be02ab9a2083eed477bb6def0050176c4ccb0a27d, +0692ec8fb60ebfbfafc2caec354bbee9aaae27cd2f1af00f00bb2e4301009e7a0320d382c403698757477baebeeee8f0f0eb45fa1f0018fd55c33f3a5c0158b2, +79ac6e0018580f092215ec765ac9a1c5509f7c4b274646fb752cb00bc16e201f20218e7038e5128d39a0cc4600a8c96ef00d74f45da2321e2dad60d6f893abbf, +3e01e01dc49e44eed0f1065b15bfb417ca74ee417cf615ccf9b4b819061b31f51940be2000a0569b2a0040007ad06ec0cada541a01cc6b53008c98dd2ae36e62, +13b51460b393e114cbf05927db42c9b3ba014940e586d114b9196cb5704f0db7604abb0167b9015fb83ac5e6809a3b0100f932b2caf1915b4f6bcff6b855715d, +3c6256c86b7203b1746bfcae5481475580306c0bf5b93e723bd96e008b4d0e1344fbe24fab0d63b01b5e81a8d5540e40ca0a9f6155aa6902edc1cec85b2f4100, +2777c650b268bbfef6b906ca70721741a03c050cff4e542780a4b01bf0d16672f180b1906fda08140247f24ab5a5d3073a1b19ecc85b6885eeccc851321f97ec, +a9323170ba9c346d00a800a1c0a1dccb0b914eba5ef2371458b46d4ebe47599f000bb11be0a45d5137adc57aad31b617001c71553c09d0b931959c4200ab0c0a, +2e173d47f134e7fb1965b9bd6ee044361b0cc129e9b526865b19c6454d55ab0fa6dc19b3b4a668c7ae9e97b58e70d84b6a706e160058be4bc013f3ebf6b926bb, +2782b4680e7803a40656ac084700a800db0818803e8d1fe8c196aa293007a8dc80ed7ebcc267c58ff3da34d769e41b6e5f8813f53bc9c96b7c5c5df0e03a72e2, +738051d9fb718453f39ee31ce3e2e47400a8496e800f2c8cbbcf46ef28b2ef669994722635ee663a28b901ce2d2d42e09ef638bfb7d2f16d9c74921b60c53bee, +8cbb01f8ccb801ee0120939e22c4053377da5e979363190967699e9abb019853c0b3aa7033ac046f10e406ac013c4d00e0d60a769c7106a01fc73cbfded08016, +5c0217c35c6fcceb441543a3270300e4bc16da09e6cec1c63ced068037e3067cb269ad0add3f9703efd3b801cad443c73ab6d0dd71a130437226ffb85b6e42a0, +f64603400017bdd5607b7bba699eec57107bbaa257f76710991757ad31290f7163e02df605a0025ac5b88121fa92bcd1275bdf55171d46fff86c669b4625f508, +5acb7be7c6ec3e2bdde606b6009616d6a79a89cacb6c07c0e4f04c0f001cf4930207404ce306b8ed952e74880d780837ca7b7409fa0efd1da3ca9d603e35193e, +86b473136c86054eb7b412c1d6f246273b5fc81300f8d03b00948d179b5a1e7d5f67cf76005a456e75a56b2eb60300ac46c564974707990e9b020007e074e406, +dee77c9282d9b71c00be9911780bd5b300c83f2d179521681b005b9d633a2001c74537b61f80a490ec5c02dfd3e7c3206e074024e406b066335976a68f9d0330, +f112b39a964a91553de339fc8480d637221f3fce2b73fc82acc4397119183cc401d849b9010a603d0b5a57f6b871d3fcc12c59df081a00822e16f23c2bd6276e, +524942174b2fa3369b7d801c60ce09bf6c6c22bbccce7be4b67874f91c583f79c6ba18f53d1b02a852976fb6816eb8e3a0a07b090500c14bed7923780022c27d, +6036db06ce81025d97af955903d0710875cf588026042e1e4100d6ca0c9328a102d49a3e7c1143ba0f93e3c583520218627f5b2675857d6059a77e0828766ee0, +3df4dadb74a4dddc186b779507f65b6077eb111bd82bc1c2393e8b6adf082080178281fd18f89e385f65345fa08cb83286a2c1aca15d7d1ae6da06dcf308c7bd, +db06127210a16a87bb5519b1f1b6dddf9dc7da064601f569616b896d62d52dba76eab1bf406277c7daf6b73d02c8d0dac7e3af002002c06e6aaf752e3675609f, +dae980f53002085e6ec025009feb7c468a32cf406ea19d30d003f7db17de38b7982b04d6bdea7567f77a52d71b876273e8ae77ebb95eb017001cbd234723f772, +d926f5260c30b625c62300ad400218b675d25d772fc77777c71bda78bc6dc03db4011fdb49779930bb2661ef41b78156e5adb40c50a22ef58570f6920647ba02, +e63758c236b63da6517713cc21f8616f5fb5f7683b0290cf96007677ff2f5ef494ed855b00097bc44fbd6cdb759aa1ad8d00794782f531eb006a721b80b75fd9, +e0868007eab6010cf50940d7e4f8c6d8b6810039c221070c7b25ec5e9380afd31edaca61c9fb6ad73306b802008f09138099e4b99c9c019781dd9755df317009, +7c391cd82580029d4480bb69f9002c74b1fb7d77f75c9b73cc972f4a457aa9166b5b2f9d8c6586b148671f2f60bc13348eda1209f84e761b80c3e181831c122e, +1b88a1fe7592a739940e280894c33e4dcbb5bb9962d1216d81daf05fb70b8978311e4f9b02480ab7d7d5c2640a67ccd92c1eff816d8033fa1118837578a95c39, +2802be19a43079872306e33702407e235639ccd83f00372b24528d7fdba5f8b20046571b80a8231cefdaa50b6734cd290078336d80d055881b1a9f78126c23a0, +0054436da01fa7c73dc37e1eb2101daf34c52269d3461e88607f6dc02980e26fb3b70d98e33b596d2c41be3b3ce0952eb4818bb881b60496f38cae5f401b946f, +63f95e6fcfae004e19b5815240e72e8e8be545d7310098dfa6d30658019dfb217e30e31547ec0a806de046a4c7f39b5846022d00a8004034bf19066d0d10035c, +f971fc919f047eb3a62b3a809bdf4bbfbe008171fe39a3a703e629466de01340c3c19e4e79e8acd72022d4062e019dfb587ee6796831ee0a476da0b6a5c78181, +06fc966f6f378269009dbb07d506eee8d0710bc07cd206d43ddb803cc03cbff7d89881d5894054da27f7ba17cb704b1b35c2390677cf47de47fe1140bea8f986, +fd1fd006f4f78c9e50eccab2e52bc0b4c6f8d5fcd3c96afa74ae44307ed5c952b6312f26daa4f76ae7fb904a0cbc0210ab1165bb79c051a47ea3b7e5c5c394d8, +d292e911f9250ba7cb9607c75efa35cd9dde88bcfb4e4b20e92215038fe817bf9c98605a85a72d87b84c7a27f5df5d083ba2f9bed78f897ed4564b0ff60aa0f8, +3ffcb0c11c7d2198c9d28267c106fcafa0adb700607add73013c7e25c9f3d08d32b2310e55cc055671d419c7ad073155b4aecdab1eac2f063ffcccfaf0c616b3, +8439faaf9ea4bf6e4f25e5518dfebadd33f7c131af1a6bb37ea5b7e5eba65492a18cf7c9ea9d485b2eb9fe2870ebf77a7caeda6f09742a0581bbd05412abc606, +d8017527e1d1e2f4e1322b75800e40602888d080a40901700330050a221400150c0818633a00288b31c71e8803a81726c2770bb6bfea69fb433297deb07febb7, +012e00089800dc174881e3feb44eeed5893080dede7c43014200f4819c48bbcf997107d41f7b20271410e2b22400d12add1e02c007767b910176a00eb817f481, +d93aa3af0053c9a36fd73e956cd60dc40180aebaa3c722ffe81f023d6b044eec4866e49b6cc05b461f009ace9613e202a9be6107ea162d2e75a0726107b88093, +149444f0317afe369d4cce2eb73b6b3cbf22f58b3ff1b1488f9c133524c7848d14ededf47b77fd0354e959c7135527dbc8f1b8726d10e7c55cb64f04e5510b20, +04300282002a20082700c800dead83d268fdeecb5dbd1c93f21bffb45fb264fc7d5ca8decd822b8f257d690351e78aeae2e8f15f5b5eef4ba567b7e2c3219d6a, +6bcfa4803920ad3a0a2802880010603d120470028a8029808f3e28f672ccb383e7468ea3170fd5c7e780faecb6db6383ca375349162f349b6002e0b3ade93e85, +ce8379b6d2b297f06fbff751e5d1ad0f380bc46bc2e77cd2a00aa7691bfd3356652b29ab3b0fca0b9c00c00920714a4c1daca2500d8fba1f0318a741717f1e0a, +c94282bcaf4708219a6b1d7af55d8de5e5e8eba6440d7f931bf068f7f7be9e1dafb36ff50dee700bd33e3cebf265fbaa2cbdd483771d511c1bfbc23ec889bdc0, +8148fec951f7f1cc2e31639b034812b1fcf037d3f628d5decee8417b299a8adee3e600803a6cc07bd595a1a7c879b21027a6a54fed11e9019bf5b0ca5fb02b7c, +833d030873106387ac873f9c5a935ac1bd9a0d2bd9b70032c836b2cf9e75f42c956fb0819fba0157db7fcec8c2be7b5a3fe8710868e3d8e6639f7514edad4b2f, +7f374d0e2180b95df3197fbbfb3ef8837ece57087fb665d910536ca00d4d0e5fa2d2d87c3d00e8008fcc61fbd49e4d05c41fdcbd1a4e89dde0da7a2dfbfa4d6b, +1df70052336c2010c005387de5801100231e1b38040a746cd73e16e9afb93d804471aca29e26faa17a0efedcf1f112af478742ec1fe0f636f52a27cbf37406d2, +ef5237ac492f29ab198b669febbaefee7855fdb70ee353df8b9597b4d605007d498e5254227e8d3f7a77e98f6d34885b6bca6c0f20b2c50628d0f92caf7ff6bd, +f66d009d9b62c406a9f96f1ccd5fcb0aece7f1bafef5d0e8e60c08ceb4441749043e0068fbf961fef0b1bf33872913ffa1c0a4ccc931fc319bc0efa894eeef7c, +6effc5d9f724e4bffe513fdef21f0b0037d14ecbd6920436d2aa868756f79790fee0973ef172201a3894541ecc8c6d40adadbb6dfe007875c4eb99bff8b34c91, +228adaba59a1901b93c26be04a26f60b9649e5646ab0f2fe052e8d703a95b4af9dc6debd50385c96151d0701cca76b000fa09ad6fde58072bc6b00c38e175bf3, +89460290011a07058806c014107ab62998f108802e8309206e6a2a93c67dc98b19abc4967e680542ff57aea21946ce838a15125b2823fc5f7020275ae0241db1, +d08635cd4380e2f06b8016d0b987adbb579ad0d3060178b3c8aaf0bed7198005666480bd6eab990020abdc1b006002480288ec4823006002c014107a58b69666, +960776caec102049002a8d56c500336000200490b9ae01573902a00ca087da9a280040c0b36b691e8ee801660904100581b1c401e5880e521a7005746e784071, +9206e034f9e61ff01fa806e8a7b7936a4cbe79c6e8276eef1b9c35936f9078db9b7f201c18cde49b1733f9260fc5cce407d1f110a010f464ab26fb2731e08de3, +aa33c44440bef90733a0e82777fb1f40bef9077a01fa89c7ee1ff89451e8304ac8f61f1806e8279ac49df41f3006e8a7e9a73eed1f50cc32b35168002035abb0, +962cebd30a4e9f93b25460fb137c1701ef3febc911d810d001fb07ae81cb73fc4044bfa4f76c11606b200d38bd38398780b62900080146ad6801fa49117801cc, +588ad6d31e0166b342802047e5bf0b6d01962cf093490800dd0842802027d917992d8c4300111f4fdad3160146ad6b60e3f3afa6a421be4b31592f00100196ac, +1227d91701907dca001100ada6ec45004780d3f11a989c038ecb1c33800c40c70800428020874dadd9170100468b92491f4fdd08428020276b6003580f430011, +ef1ac0ae5068f049661fb034cd4700929b6b607ec25f1a7f47e0ff5b04e836e522ff6f110060fc2270b8927d11a025fba41701d4c2645f045e0468bd92fde4b8, +d32e03ee0078be9600795c86957f5a4b5a9e0400eaac016a52354a06bb03e0f90500f9c61aa80738a5e41b6bc018d74a4bcb669b3ca0ccaebeb9067a52dcb376, +2801b83d6ba0435702533c25ab417b2380d7f5869761e59f982e00280174406b5df59d1316c21ee53602120069b5066286616f814c08ebe9270122426b80d4f5, +017cae2fd27f15010d01dead2fd27f15230801a0c32fd27f4004d0b91c26b17a6ba083aed195ff0078341a1d2f01fa34986af55dc589b988df67316df81fb006, +61fb1020c8e9e9ad94020011c0e1fa220801829c649f04f8300e01447c3c7523bb04d819ad019fbffb0cd879afc88011005189dbb776e3a880b264bfc92ce945, +2e3cbfc9fcdaff01cb7f46330010017c32ef5111c0e7d295e9e9ad01fdbb306ec36ab960fb1020c85f0470b8f07c12603c75230801829c64013431390c01447c, +960ccf1701489c5400ea16456bc045804300ea56d7df0842f7bfe100a0c9bc4710015a323c5f044000100174ae766923498077c64d00b1256b80504f0e450051, +51758feb45009dcb11a025c3f39363d6ae9ede1ab87b0b6331f026b3a417017c9542fa1080ba95a255fbd9cc8d40041008289d631b34fa3e52754f72e45307c0, +0400ca7afae9723db3a40f016adc8d401080ba0dcf2cfb267c11e0e1fe86038075c98d400468c9f001a8db053b04a8711701d0fd6f38000861da084480960ccf, +641daf9c8d4004f06d3e016a9c00a0c9ab5dba05e3fa13a0af8949080044009d9b002004a06e757dad01cf39003001f2bc4300ea363c4b31140174ae7629ef7b, +a213f8d59a06544d15017caec67ec3a3234001c0f726f31e3f04e08aad3f86707eda490f01489c64817a40e7be1dab816dd811bb04d84babb9547eee86366e87, +44fc05bb0428fe60015aaf5432e70f0109004480960ccf173cf37117761320bf3f0410f1176c13803c75230801829c64015f7c230801447c8ddf321b05886cab, +801480e04af65300038014a02503190306b46eb0bb6e5a9ff0770ae30fe084584544a13d3ff9a61ae7255d7fe49b6aa068009fff07aa0157fb1020c8e9e9ab01, +6f26c6d7ec4580099700c00420cf1eff5a3226df21d85133bf5300a638004801ff07aa011636c2f9ab170126b0bd9e27554dcf5c028012e0a6380048015a324d, +be04e8bb43801a970020040872bec8b8fb5c1a4d3f2fa5d1d753f93c0558b244d3c3ad6ac089164fdd084200ea56d747cd53df2dfb10a0c66caf6fa4ff816aa0, +230801a85b270682bc068870e6df527b41be04a0ec47000c00824b902701202da1c090180a14e44bc104791540cf0a896f3205d6ff9b0478260b004400a02cd9, +a002ceb033dc86051b409f87e0835201a61ac0d5c7ff225f1040c477625c6bf90011003a0cb64bfa6d9d89206f9c20033911001e008dde117cfc7c80d811871c, +d793c31460c96abd38bd1e17f9a61a2821285fc1ac6a200651a42c02d47efacc5d8b2d5ac4fdfe6597975b7fb68cc8f4da25bdffa09c00a6013ac78d400640c9, +37821020c849f6457992c31040c4c7532cb351801eb41ac8044048c900dae6440c640c005600bebd1020c849f657803000385f3f93280380d1b30660433bc3c9, +00111f4fdd084280534c6a801e6ec04306b4c0069c0578cc59988c6d16604ea504087254febb509b1f4d5f062dc000209f0bcf0f01a85b5d009dab5dda084400, +bcafd30b004400b7c0b85e04d0b9daa542802027d937012a0f4300111f4fdd084688e41b6aa01a580c0076ca8035a0cc3e040872547e32c02027d93701d82dd8, +3e04087254febb108d4004f0b9be48d833cbbec9641daf9c64f38d2004a06ec39b4f80b8f1df52f93001d8adb8fe0468ffd9ab07e9bd2f007b230801a85b5d5f, +c4c75337821020c88f1af86c0be3104020f390dd085a007ffc2653dfaf76a5524281f55004f0b9f00858806a59bea10648d2a8015b59c7dfd829030ad38d8005, +087254febb903696c72a88d82dd83e042004a0a2bd771160f0bd05500b7fd1000011c0e7c2f3510076ac8268d64d01033259c7132f20150149f645009f0bcf6f, +951e81170cb60f012a883e9c00400410cf4701c0771160c75bfff95945009f0b11c0e7c2f34500b7d48d20040872927dfaf98d200410f1f1718ded16e0cba306, +ff016ac095e5024b004480be5c3c04e86aec9d1ce28d260b1178c1e27a11c0e7782100df450051e911c0e7b2f2e56e64c0d25e0470bb3702829c9e9e1ad079b9, +d48d20040872bec838ee063c0410f1f1f78c6d17807aa406170f33d3bb90369e78a3c9020011a02fc0e76aecabbb0d8b2b5fee86c8020011fb26f31e15017c2e, +1040c4c75337821080ae901a989c038054febb10c8ecc65f3ae7c80020040872c2f35180de71069504105b020011c0e7eeba4b728eb18dc0476f16c3f55d80fe, +74c982ed438020474d78066db98532cc6ad83e040872a64a5b00b5b00ade05b1017c2e3c1f0500dfbaee929c743d0010d103fd02801780ec20c849f64d800af0, +cf1701d4c25452757d190c004480960c7b3404a06e757d34009dab5dda089acc37821020c849f6452393c31040c4c7530c005e00926f1ad0e52703cc0008cd43, +8e018ef869c01620e1bed7772d37c0d8209d9c0628cf9750e06dd7da7836821880e2e8366780de6077c66920516ec061f9ef42082d369c3377f67cef1020c851, +62591960c7f90ee470b8bec81118c5049425013ea5004004a2351701a0c3a44c0c3c0410f167d3320051498d7bdb4700f4bec652230b0062151d020475235801, +934319e0c841b202b86380fb6e1a481d1c94cd3ae73b90c300100126b0bd1e783d73090050006f2b00200568c9345535814c603d4c0198e266f58d2006480aa7, +a769c0107848ef80de80b626009001cc3667f731470e78013c72d8ef008006808b8f0132fdc478bda0b7d52d9d7f19e08cc7348f016ec7690019a0db7408a89c, +004006381da7014865b3eebde2a05aea98d269800e98c40648b5d3b6260090019001fcbd69400fe0d59303c4a7b6260060279d06da3914ba17e00d686b020019, +c08979568b7c6dc01800dc8665f94787a6e51f2426b81efe3e9c00400640c91c15a781cb73f07eff26e176bb8d400668e18bd816025706c7472b15d3a6019f72, +d87af86580fc260031001001d8adde72cd37001001c230aa4db20b5d7c335fbf9fea1a13edda140f34752e2d78d394a26f33c9ae4d71043e3657718cae4931c8, +bbfd96c61cf7b93ed55bb2867f1eb8eb5b0618b5a681aa5b5606d871be03b911801ae0c8f9e03b1ab458801417a6c902ca6e31d85e0668bd90018e9c7f340905, +76f7415697a5260100caf85fa00cdeb3f25c0fb707647821f30c38bd6900318dfbd03aee6703c5f8e19b3f06fce0ed69bc2d975fe9bbf72b55d1f41e58904701, +82010c5c0460b7e0c0b70764782170b394063aef783118c026d49002001a2049f25d05140760c19526f3ae179fc71cb9fd8d4004f0b9f0fc466c1a00a89306cc, +001180dd822ba1614580300cae441703170b22e8307db6d1822b93321a0dca42ae441703001180dd5f5e0c004480300ce3735344171d7f174a18d85dd7d1c3bf, +2047e59713b7b7fa80c19b4908004280da661a40230b006a72bec811f8ff3e0110f1f1d48d2004084c930664fec2380495268c8503801a4030f25d05140760c1, +c07c92060efac17b34e09a2903be781bbf4abd9fa568e5c44400791bd27aaeb142b9405c9b08de0890b7cb7fa014191e5594067adb065c04197c75676bee1aa0, +9726f195616ad0c96fd123de6cc1c5922f52f394cd6dc1f0bed4d3b217017cae87add372e9dbf3d70e9fbb00c00698061001d8ad05b12082ab6f9b69008d2c00, +0801829c2f7204163d0c01447c3c7523db0690b9a481156081ec51569560434f751100608c0f9f3e7cae2f3296966541c08556b13200100121de98ff596c86ad, +f85ffcd7dce11a81a601badb038f7fec000801829ca9b2b270197e2f25402621d3dfdef77274d1054cd651904701c077821c358ee409009aba6773262100b001, +ba7cd39f17b4f9656ca381752042670172be03b9dbfb06884dbd76f5da581d1ddf020c004280208719740694cd3d77e5be616bd1eb7f91b261fb1020c8992abb, +7f5e3031f602a1610abc48fd05c0c04ded36021ce0748c065c081ee5b68884db1714c24760391b94bb8f8701fa6ed39f4f1b07886ca301c1f33f1084b7611f54, +809f840be446ec1c6028983667be4be7bf99450f1a56feadb24d7f5ed002b7cd1dbcef3e41fe05b00720f9a20105d815fe3222e102b9111be5df0ae671ee0078, +a7b21601e4edf29f63ecc507fc8c6815f917c0ca36fdedfda301999fd847fc048561c3113b07604ab6a263983b009e6f0530cd4d7f5ef00ba04d8b064281089d, +a06fc04300ea76c1d88a562ec1ac68e04fc9e557fa38fe4a2de6b28c10e45d806d7315a7b21601d8f995be7b1f277bf13a2d057917e05372f5d9084400791bd2, +23ff9c76e71f08281f88062ecfc1fbfdc07f2f6ca1409eff68380008020c75213fa75d2b00028a3f53cc6800c8672cc9b7b001ca1e0830ea0e016a5c5d52277c, +6fa28165f653771d0f020c7521c082970830eaabeaaadab2d29f9ffe86c40000400e8006b3a2010700bc907b3bc359dd85003e1f136800befea0e100200830d4, +a93086600730bac2fcbbf8409c4a4fc40076ca805f7989f23dd300be0032c00c5abe89062278cc0b5ff93eb46101e89a802fc00c0076ca8003f61d803c43cf1a, +4b8760073fd877003c67c4efe1df01e0018e1c9eff1f880606b3a281352b39dc443cc359dd400e800c3d6b00be00dae639fb530a007600f2ad680071f64b872d, +ef7f23e001427e14817e7afacc1e97faea01f569002885a10180329eff1f80060ab7a08178ba01e780dec960fb1dc0e800427371ef431b16f20c3d6b00be0033, +c6a8aa9b04791fc0f552b9cc1e41e2fc7521c07f4f8651cc8a3f68380008020ccac82e942c000002e332038020003a4c177cec370220a0f82dc35f4ac3b12a78, +00aec2ceba002007003a3c2ff99b2f609b4c66cd6f02001d80d6cb31efe34b000b5b41bef0f2bd49fc13e33e9e042855df015eb0879f98723c13e47580204790, +a0f24ae200200690bfeb8919c53e9e07061a880422f41ea020e0ab0f02ba4df91b682013c8c644598c7acb3e08e836e5fe93b105602300026815a18151603dfc, +867732cbb46dacc50bc7c22d688075f71b1bfc0280b6b11651be8106ec65f59d42c07d11001a8021973d1d6aff07a081d672a8fd1f5836dd9ae51b6820b7c55f, +83806e53be8106207997d28d0008f8ea0f02ba4df9061ad053f7b6020020e0abc0a84f31a18191f56800eef781370220efc2b80768e9e41b7a3e3957be8106f4, +afe474227000360247ec1ec0dd86060afff280794a2cdc4cf8ea8300e8f0e9ab395ef09bc1000008b65ccc31c32d68a020a0f8e31711e9fef505df21d8003602, +05df21d000360220006a55e68206d8eb6cfd646cae090080fe2063990b1a20015df09bc48d0008285ccc31c32d686099003ae41711e9feb620a0f8e332038020, +386514e47f8023a7fc2600f801a0ac9e63990b1af09c41e23a808d000828fe20b9a081c979277bfc58b08180e20f3296be810610e7e47422c0a8b7ec83806e53, +2bacfb04f91fc0c938bf090040426c7c1fa0bfeb899b4390004bab27c608fb787a625f20c312e47dc6e5c33ede07d0b2e9893d6341be02c227460cfb781fe0c8, +509f060018e032ec7d1a0054c367c01ae00768d39e816c408e2f040b694aee8ddcd62b35cc67f38041e2fc2600f80120007c807fb5f54ae4e989d5449038bf09, +b00c0057602138001e00d82d97ed30c81b5083a02c014090c00ec20620180c4069a08ca106b01d6b977ec876510b0900b080710005308732f81626741c08806c, +cca1cc8500500b810262282c601c4001bc0c3bbe8569cf060e1807a239e1e72edf0228142f00680009e084a000b6b01b9b0820c891009c9a3e01bd6f8c09001c, +44d2b9cc0e0264aebda712e79b536c8c00b6b01bdf02281491009c9a09e084a08c09001c9b0820c8602138003e01bd6f97ed30c8b00c00577bc24f901e00d82d, +678075f780177f8e01f56900783bff818c6d21604e7d060204e051bbf4ec7d03580f8100512c95b41d0f0246ad6700102cb80de7aa30d21967a0df4d0e810051, +eb1900f229b0ea3806ba69df08a8771e002000280b8931c260dec2d807105b02fb1da16a5abe7906e0887f53f9e6198008f8ea8300435d08ffa94fc61e808d00, +fde29b370221609256565eb021fc6316216001fb079e0157775557ea71198d6d376ca8dfcc32bfe687d7fdf7682350b8fc079e81d8ba232bdff6d8030021e0ed, +985b51e801c04c3b0430cd8700c4f419c0443b2f09702b7c30b08a7262f07c10ae2327291365ad00ad80c7dc7fdf319102e6d467200777d226af97a833c0341f, +00fe31e1aa0cd3aab8ef9e01c5f0251cbc71be03b9be7b08553ca461db8076f6585a9605d58780db80170ccf1f0232ad80ba6720414e0e87e1c8312b7ccf1e02, +9628cfbf8bffe289ed29b0ef58559ca7810603801fe0c8591844044afe27c0898f710c00828020877b9ff549c654d5c78051eb19c87954bd6020e73b90abb987, +f02720ecfcb7d8ad408013603aeb1cd77104b3fa8cb609764e65cf80facc0af7bf7bfa9cdf2640c2345d5f86038021a086530098ce1c026f8039d519309e81ff, +b24bf1e702474e010031a0735cc38900689b60070438015acfac701f4730abcf6d0224ec54f60ca8001802fabba7cff97321f046d3f56538eb6ee414005a8049, +80462f8cad00b2ab0ed1192fd5e41b67c579aa9ea27214e687806ef3df778054ccb9cc4affd2cffc0c00184787c01bed19fdccb5f2eb6ee4a00568bd00006fd4, +90976f9c81de16da080e6801e4bdbefbdb6b270c1cdfd538770f40cbda0923713602d3dfdef772c0821d022747902fd51f02285cca7e0810bf8d8014f9281054, +e7b4b81bc7ecbc2919b01e6b74dc5ef950b232cd8d803ecdc70ba5a746a51cbcec6c53be7106a2dbd36987009937ebf6b88d00f3c91990c98c72d8e1cb08ebc4, +065ccae4d008781af801306e232049737b23dfdd00da980e407d1a00b0808f669adb08f8c59c8132b0b8b82674b07e80d4a70160c84a79acb38d00decc193803, +9a003c6d004003f47afbee23c0427406e04a9d53e88c747e2d5ff8068077f007a0ad3119d34967c02fe0f47a5cb8d23546d3dc0828049d010fc0f352d97b011a, +3ea7a90512ac46ef8f80d9cc19585b17cecbd8cef3e91db15ff80600c1eb0490345f47e51b6780f5e039a7e7d20031c07fc019e001d4a7011d37a0ad3119dfce, +4e80410000c000481ce1f5e79f330dba05abd1fbac030802064000f589a1991d85a3d0f123809a7412e66f4e00e9bc8ccf19101793c32300cbe8e9f5b48f001e, +462c43a785448a168447935aca95005a78041ec800234bd28850c48915cb18eaa1405e0d21816898b582ce12e03a01821661c8c85104402000e6bca923674c99, +0420a7cc1c3a6ffa89612e006c4858ba91294d4e3499fca48e5224389cb28bda183b17d3b88153879a28ab5e0dea724e394d1ef10940120c39064002a160b37b, +ddd26931c68cd03570f5e6bc4b1f37962d28a7cd185f83d6c33944078f2d9ba8ca6d7134c4864c6f0dadc68d7c5520209c76630b801128bab6104b964ea3b664, +bef8f1e4e6e1380761eeddbd9f37e431d3598c89376cc4a206cea9fcdbde99abc5139169ad1b0035c1355c04a1e1efe06c6dc4100024769b5404174020360d01, +c2d36c2c4d07c035226844d85073001c19871c0088d807c0207af305a71900e2ff34a30963873063f74f568e99575d6dca2a9d7ac3ebd96dde908279d9e70138, +e2f2e2924d3676a05f89fe5987dd8a027585386223a4e8b898e172ecf9461f006f1e0200447b295d3a486171e43d08009088f7e9e5d4200cd501e89b76db01d3, +8574a404224e3d91e922570d75f965198b6c36f4887237ea0590445e4a365488948a1536d851120d6c2dd59c407219071118196781e3d4184b70842107682ddc, +a0b70e2a544362cac108c09e9301906aa99c14ca158012c57f42b92274e3e1c118c0137b31f960a4901b16a91e0028c4b409083c0266fa0fa65b7dbaf9df948d, +06087fc921d61920de606201145e82461a5c700254b11c88aa805688ab960d5db272a5a2b58e882baa8d95be68e390768fae79449b2a4dfa41864bb362e3540a, +ec46199274c404031c6c5c44b0c1082b1437002611a5d106041c4e6100ce00e02db02156198b74b4a1575f66a4c1061b1dc109c341439c60bc01961c66b0f1c6, +4dd89f40bd5daaa95c922842a6ab7202e7a4794492cd1a197cf04c01300143caaa0d996404379e7d1058dda7206263eddc2f4d0660846c8f0531930f6e8f0914, +923addd08f009443240f7df2ecfccd6549c5fdc2458f6034a48088c978a47c1b100a70c8f1c6c674989dc85aa49211dac413d626535a9e478044f6382567500a, +31a1badcdada48002bd504002993c218161d65c811c61875f2002a4f7742a1202e4017a067ce2a0094ded01100500d7503808c89815011dc8f5d8c0cfaa98651, +7cf4203c712ff6fc8b5cf829509d3bf0b08ac0896bf3fdb730f465037488e50190117bbefb8edb10051db3af0142156e8a034042e8743c300acf88d9a0b29be6, +81102953c3a34c848bddece870b70034aaa2b9077aa621afcbc80c8102221fd872479ad2f03ae2814f003ad09dc19947abc9d300b0f1a8b36edffdf7f3b057b4, +00f0b021bff817a142aba04fd30e61adc4ef1ae2b8b4c563c0869469214d1ca0c4a10e69a81bd19c48681907f8e119145e10813816a2d08108e495b02127f4e0, +42401d7d6a4a89609af08effeb081c3b36f907337a30421415af9845d875d009a9a5a84e43bf0240226549608cd6b6b60803ec52a01427b05050063b84810d75, +380200810e65c0148008986225a62401c0782068002808004b0818207037102844d1100280e30b813089ac0c4a79020886340cc00c3d63285d775c88a116c250, +d025002a20025c9a6b29810e0d609a150004471dd899c02c21c00c80003a9480050180300171dc61794b00500096ab14c8a043020044296a8458252042010009, +48d3f11d85ce7683674196c10fdcdcec020e75faa69def8c90239ae50cdcdd1aea24800cdef08f747202410c0008c0168e63626825e43480c292011825002600, +c9e81fcb580cdff01dd31ecf006012a3bd344a98b280a06002c0bc0104fa72037411454ad7061e09100b088476242029320282d8c94d0e200e01205d14904219, +1123f02146857ca12d0034284e81c4d6cc6300a0d0b23e923154c12304275a66812932914820211e38d8d84a215a6604d08510b40c6a282dd62310c943439913, +3a12052e0c7417873ce4b0af7f5d432462b2c9eb5e2f5206444748355062ccd5d70234bce10d6b60f4060062190316adcb60c6c42ad690015a63d391453ef5a6, +022006ca883455b6a0d73a588f0c1d8c8427668b741b5eddfa83423bbd83d34a1962e7837105200a0104f0400c753083604291eb51923a01ad2b29062a8a34a9, +b018681edeeb105cc55031503ea8b7ae26294891a885d0a4e35faf25075cf390a52ce288ea07c6901a5209e5c2b623b2c62030386b9201362332085c0064f0b8, +0956f929b0f61ad0a6ed32aa60d0dd4c193709d848a14d110048817c351ba2831783924405a5f0a3530a4c242e9922ee3a87fc2263a066480cd40ef41d003006, +42602c7944184f77440e8a54d3a2c52bf1a7a67b9726ba2520c023640d53642c49866c3bda8a7a02701582d2e0e260f2b846a43d059418c5b53c018010565a68, +00224164c9743d6b08e26f16b2329601a404802096d790ad94a435445ed9ca133e16fd0316d752b177333b6b04ff1ca149d293d4d6aaec40961aa48e48e1b90d, +908f34a1ce31a008291a3fd82e63dc9a831e8c31608dedf2309e83dbd436042919dc10693ceeab23402bef2d1d194142c1f2d18a954dd436c89603c108014dd7, +d98b1add608734c80450ebe0385aacb4bb1c83c8c87e281dd7cc0b800e82b3695c27f014dae46d650800ee79b92116662d7a2e88b68b2f8456c4a216e7a503d0, +06e8864579b79246dd5eb0979144e99bf20f65e0e2b69b618ffb07930d40159a076b81b8bbfded70661dc21a00b8a10e03c186b720cab846cd0d6d28831be8f0, +d104719dde4b1bc233ee4858d19a6a4d1d0c5e85bcf53b139d68fbda6dab752ce10d199997ad29d43e45a8e9d3390430c2106e7357810ae812f4050e81298a1b, +de4e8c03c18c0b405b11f94507bae5a088fa1c8865050aa058ce0ea6e7175000fc1279045e3ac31c21ffb8c765d00d898dbee3dbef51d0b7209616406f0e6b28, +09700a1a405ef26053c0001e1030c7e2101330460dc06080fb37c3410f5500004181990040032760a0c30025a18509008418013004b0330d011a520597888208, +c0edc18104bdbf02610c3880030429d6e083f6e86007edb12058bd3de0300e70302820017afa431d8a52808000ea200003ef0430c5e127801040e52fbf780098, +f09c7b3fd70950f70d1a520478828317080880030ee140c283f628e8e7e91f03688805921f0e28c834a0016b3ab321b45020c0f8f8d025201ff4f03d10746100, +b2e3067390067a50700574f6800a41070710071a3aa01b01570022ffa7496421800674a003ead011066f000779202f676285f0498300ba3013200d64d0c1383a, +385cfdf60240581c0039480667b0831768806e35405f7106410768103b88c28004e8b603f9850f0dd0230774207457c0905f23c28161e081061d740569d16f42, +3f17d8269f521717e1511c8a30259fe2686e57c00ce8a6002443511457f88121574074ca20024098e88169206ee4a61409e8960240d81c2a13011a7260705780, +13050275e0061d33d5811fa88520e025026380062b58842543b0826ef0067400e0501c123a98b002806d723557e040570df10d36522014c4d82173a827b2a160, +35899528820c587587b26823bf420f8d87488b0c68880ec58831b1c88ab58887007e18191514850c7c788168168879082053aae03f6af62d0773e089efe62e2e, +0613270779f003252d400669403b69f0f88a42d1732b980729aed810e09836d7b0688b00900a6725388dc3788bbe988d4485d887bcd636adff900ccec018dfd0, +59786f93d011592010377e31073e87896d2c2170735007707a38900579622976122a2a7687a712838d0dd1097420883db2d06100e0091312130058c00d05910c, +788149968f17c4172f775006265264be27308a8f188957a4e017b0f32e27a9851d0995868ae8014e91902659907dc913d8912f0892b4b08f83cd880a40081465, +155d3951d623073af50014ae11004240d78c22b453ff8867073ad03001a005082d918319113ba138a32113748d49f93d0dfb8807694293c97e817f5ad8415900, +b3b24f8d3048c8f3032bef01009589198c82405fc4205889bd2300fb540ffad898058cd1960d110e023a2008794909fb60c0329516674231700c1da1053dd48c, +80062d20066140810eb759311040167301b0052c5010ff30403108a00038289b0c794974ff700ea09ba9688442076420f30e444648a662620e88f3865e83423b, +9c7dd5581db405ecf0309cb9592875707345e6b60518b71d1cc6899cd633061a36829917d29a3917a805f4652badb9449840c1980d0199fb4ab1053cb08f3090, +23a29d96d936b022d89bf4b08f02c0201c100707c9b99ccacd1999ffd00dee592900fdf906b47345965bb05fdb219cb8e3999c62e1257940b51deae09e200200, +c018132466e3113e09fa191c05810ce96850a35cb09eff904004c0d909eea9000a114a062d1a005c24da115c7096ff10b31da5e09e02f00614623002bcc90528, +a590f0642045a52472466700f0a4c561c03813e40852942370452a0de1d126b1521408b02020c428a6330de1670d8109659d225a6815a56a73161c4552217756, +613aa89da59649ca0a00b1406480ba1d248068a57aba335a564a0a3059a7c993a1a46ad6a4ebc1299137850cb980a4dd598209aae8a5603a226778c6a6582a67, +102c3a79520fc7060627108905533d20bf02a9e9a2018de8e08f8eaa239c0040a59c2aa8b4850c8be1b3a7979aa9cef1d634905a87559aa73f6caaa86fcaa878, +adbea18aa97a248c0d9109363853e4938339c803005312ae15a8ea29478246ac8c03889fd9109ab0911fbbba62ab161c078c610afad305d5b35306c18120c8a0, +4406ad3a50230d51ba39006b22096b66ad9b111c8e201bf5831a466a49ad1d615a1cfa1a54db010553ebba15992039e964b6adf541abfd31f3ad00c0aec68138, +e1ac0110b42e3a253e8e6687f6d9b3c1ce81b269d0115f1071b2c11101fe8a240c2ed0860db19d4029660c830842ff80a08a8fa69929a69d0c0c0b00c6406781, +b299d2109640640483baa16a89b3da732aaf9630286c1ab697308b0c6ca896faaef90d81a366a420c2a6e11067b612b52759410f3b330a20eb5024dcd9104deb, +1fa92a8910335ff02245facaa65bc6a62970da1160008747707bb10d413e6cfa103ef991ab0020af0fe121b447d2445e87e0a289f10fc760a91770a345939802, +b1003a964001a72a20c7f00b69b2281d189bb47816b0b28b40ba1de1054b42b8b6e092baf95a195f20a2af9d56ba59c2c1b6a3ab2a917b2437493b5426f2b90d, +a93a8164cb4bbed7441306605010c7f05b24add325743089b2461914590223dd010006cf09b8ad00810263a1b768d0b70901f003e3b2a72dedf0909593880f85, +002045beb0331c8c0bb3c760088c01b78711dc10054cb9e8f605b88d902661607b41ea3b8906170633a60b00e47069deedcb08f07b0948ba72be9e91bdeb8b06, +1c1c511600381c2570620004f08b06348cb32bbf628008682106378bb2c1010cb875b0c1285b041d664007c4120666024c430030c2bad531671f7c53c7d00710, +14c828076429061f4cecc57a21164e580b05570c0043a0c52f6e402c62701a80c000614fac6d64b0dc104270c3392c53984a4c07f0db05473cec278022141649, +f1360763d017e2568bb2b2b2c45ce1c874637096c730b36fbfb2062093300b2300bf3890c651c0c73b2d30c764390608292cc084603d1d0301b84390c641c0c6, +70c7c7700069ac191c64e0256b402c63800b0169ec04a81c7111addc1163f0453b4a0c142d01c8448f54c818ac01697cc0c88400c7b15314c89605b82490c64b, +0dbd130628bc65c74dec9a36cb6600a02c0fe1d11d5d9c3607796070648002d9d0dccc6ea3452d808c0f05610cfb90c6c2bfa23007b872bab36cb40de1060da1, +5ffb195f7111f132e09e958490e32200d0babc1708520e69c6300daad16e6fb9d62545482c642092277d9c66e0c970da2a6ccff8accf284b9025be108e1c5c24, +521d3ffd6577d11d660d31088c53aa27cddb668280c27c065b06276a0c85aa9602efd60662103bdcd3801201a0d27a41200c694206e205002f644906fff50fc6, +d7728dd611d125166cddd66efdd6701d0502689dd66abdd619267a53c6000aeaa1902603da116550060083403e08620cd41a028813d4d481441d1c7446647206, +6550a6529636eeaaaa0f5693254db3d50f238209e1f82d6c7284565b0d07fe98004015126ddfa2b0b28b0c0086504165fec823c983b8378331074413d6d92c08, +e2b8ea8a566f690606c8931fa11d2b9cc41260d9dc046962a19800b0324b399ed357c0185ba609596ba0038fd0116690016f5e6214d0330623b360992d619e15, +845bb1d126a1d2d9c54d6589b3d5270060ce26ad02d64dab6d80010740402c678202db8803889bad33c07f8456f941d9db316c0c3b10dcc8dbd51d3937a18300, +060e2d80cde09ee1c6a65b8d13124ee1530170065632e12931730659b2d5cabc401f5bdd00836be0de642d0100de11675f9ccd1790dfe676cc01697206e66606, +70e310f30fc5b00d2231cee18422074088d33493d3e21f36890625580c479ae2e10fee1272e003bc0d210e1f6623123900156a7938a456ae0372c09b075e10c5, +e689f3e3513e2584018006315c0cc40b65e05f2c0335aee51c1a22e554f56b34f7590ca9c1e32b1e2103223e0c1d8106e228045407dbe17ad0d8e337cbe200e0, +e34187474267d9ca761e01e0010cdb990526ded56ae9097872109663d91169006e1268002273f995e461feaf756e9a666c9e061860e2b1d034e4efda126a0e04, +201f0160007fc66ad76a19ea10402c061921746920764acef87f1754ac64309f069060e2b7aa968023bbe875a903dc9b710a88b34b872e684ac442009a3600c5, +ee2dd0066f603d42867a946af090bf62c0bd6a70a2c520068440f0882d80d065c550074098e37800dd4e011000bc0ab3dce6aa2a1279a78c9f0d00fc803c8a8b, +2cc0039fccf171c0e09c7360d765e0030120d0048151062059216a63f0ae9df38620c5b004010f61cebae2d26ae05019ee0eefdc2e058cb1a706feabe45810c0, +1d1c71b0b353dd32063b8f56d6fbf381542dc026921f1cfc6c33cecc173b0b2264b1dd1031bf3d3dbe3022eddc34c390403a3f30722f8d90026ec00270c00263, +f426ee00eb4600928f34072f60ee4ad1f6f4dcfe004098173cd8110005ef27bc6c1a0cd501a930960bf5d5110c3602a9b22622eda282eff56a00931314b0408f, +864fafe4dabb6a509f3c0849f840f124f6064ff08ddf1181079250653fe72c4ea08a8c9024d94df6237426f0cd12006c1e569a4b1d36efdefe0fc4500f8ce137, +e003f1193b234034116da08ad74004ba75af39283007e2d06070875f10c4e00cea7fef368d95433f029f617b1ae3a1bf2ce4282b073b9b24f900f00bc521b9d1, +c56dc009ba8f095e83c03f42e102682020fc48480c9ec018696da0d57b810781c28f05ba5f0ade7522142790fc72b0fc24883021873025df6d8004baff0ad35a, +bcb600d0063214dece80bd290aca09344b4b2fe80ba35006628008bc1a00c97ffe7b7f6440fedd3112dcbf86700c2ac82e8007f2bf92780f3d28c94035634d28, +065e4014a80275e0f70441ddeb6833b0501ab023b8011c85813440014de0b8a980ee5304758f0ba02087408400e00640081a2ca01682646d9b04758f7c008009, +82180037b5f49694440dda4d35081f08c075b48518003cb5b83f98450cac0063f0de1680463bc31320a80c6c4037c02877048fe41180320adf220679a0ee9101, +37e0103e9944482840d811de0007d07d63c84c05d033dc818abd017e430c7c00f4060b0808403f40079a648db0819821a451a00301482120c0a17103c48810fc, +037f217a089d3790194aa80a3f835fb91c3110018730caa80514ba0432300a93b09e8801b2e8840ea08442010f5cc2371183e8a4962001e2d800230c006fa004, +2007ba4fc3cdaf68c88170c30a95c21bfd180010406ea0600c8031a0ad04530cd64696de400323065e7844c7695fe44219481149c03f0a87ef88c17f1b760044, +57104a622087cc013ab0a9428067fa1507f8cd307007aaa1094269e7001dee05bee0f00496834369842f982d274713a0a00ba43cedd1f274d3712e5e1e78016e, +d830706812eeabcdc00d5cc48e0007cc50906c142021042e921c28cbc5008063c0ac61a05374426fd8001e886e01000e7000cf3819bde0027e38ca8601394813, +544bec98031d040eff60a8681b17805a8cd81db89b6f905596725352444ead84193006dbd610e04c3188061c2869c300802e212592813ab0abe020010860493c, +06f2451a8003a2270711c9cc58c33b20c03fa5bcee54c0d28264137e54c1d77002434c88c2d706a8b00ea4487e8058e0d819a2a7478cacfc78c061700b18433e, +2520561a3e3c8c0ab352954015f9a95865293c230900c94a240163308a6dcaa90b513112847f300c9d010b18005f448c1df08b80b123c48100c401ab8107d9c0, +0cb7d22e416fc08764534b9700c1ad342fa646a22107fc2187a0a26974096ca08c0d81125c084c40192b1509664b63dc6320b88c718654d1030e4446c1a88628, +c74bd05c42211b40c3254832df3121c5803822a161400518581a3d031e888e70c48d0040376ea9decd463c531b3b0275864167ab74b1d14dc2f12fae4639b09e, +e2a9861009c69e1c28630d808d475133e7113272af39e075dba86618a480e40a1c190640c03dda883e9a47d4f8178963b0e6d77b5c520d818cc49118148461e0, +33ca48f0d8213b021a27e4469c0018329125b23c424802a9470ee9214744881c6329c38e19b2216c3135aec63940c42880397ca35ec003f7982d568a1248114c, +4b2dbd3ca04065024307484041100682004289e6073c128376043a70a286810180101ad88651474a67402c4c48a0c800edf01bd9c0ce910385048f22724be5c8, +4de35b540e43e04024240cb841c0631c1669036e40e8d00182dda03730c8de00bd84413978685bf20a3fe09361443af008b9c82571cdcce34099b40bcca14768, +1285ef4e3a9a3909c9e4011400119d9cd2006b936f3271c4810e188b4f2914d500180ae5a174034a1006d90008b98a1f0c20acb82537cb3fee641a811e62e02f, +20964b29a4a9148cc58c6539e7a0e2dacd832cc419ab2a4bdf03004c082bb526bbe0de305d9d9c73c29170b1b2f0a94a53120b3ae001858129d9249fb0945311, +b90c037920a3548f033c0f79a1523651a63a4156204dd1eb05f4055fcda936c3cb78599d229330b89b6b0000e10079bc603d090301a89670200764471e303775, +d1d7428b030c5f5920c0b0c176239064692e57601db863c2aa1eaa8d609e0172c0a47d792bb2cdd134db93716f6c0a131b2519c9940146dcc6522f5cca1b3003, +5680b83c03dccb0e4520faa58427d31256d71070e64d1106d19422d380d75c3b5eea8735153e36572be350b3bb7edd810474a6660a9a4433b6f091091e5c9698, +02dc660e098c77007020a0b9a829cf403c737307faa47a939ec2c08065c00c54212b682ea9181c32e0023fa50d5870fa690921735e70af3bf081334947d4d296, +10065a58ec204b77683780a825f8cda2ee292673a9088d802e04724b1281043cff283b4a081d21a761e001da9d9ad99bf5c00344e30ee43b3880154a1080c482, +01f4898a02b29a03f91a11bcf3bc10026d02c8b41920b643390316e4348890731253ea2aa519400408e451210c62661aa66c789750ad62f580fe7dca0120be64, +8af8e919c4001b50237d8015970044d80b0f98b160700cdcb09a6c05741c9ddc32315b06563036aac287c149abfc9aaa3a62717897b0a20c64090f1cb27f100c, +e481bb170c4c817bee001ec09ffab323362239a619094a2833493d031d72ec4e2ee41839847be5017e06d011e11c4f24cda8272f708f4502036f402c100d3c80, +968d012080118b5d405b680f35310fb203f72918b04b8fb8810b9a3fdd00d1c800ffbc5f2f945088937a6e0205c966024808ce23fad4a05bec0df0138412d0fa, +2c38208e899816a9c39e6e4a30708697c80389440f94be42c14821c9b3366400788d301053d4535aefaa18bc2b9715cd604023d492c80a594108069ca0ee21a1, +d860917eab00a00791f890884c00b89301498b756b3340848cd29660c061d492a5be6818251f9eb3067d698b92aa2411ac1710cd660b820841910098d8d2daa1, +3676605c00a2561a034e38bff0d5e54c4670b81c9d148b06800bd051b4e268befa03d2d9ea631e026c083a8b92f29a3b76844ada102ee94cc2c715e514ee2d92, +02116cd499becb40688a11c1462317ca1640341d9e2106c8b00d0ea52b10c1c13d23453429239d58e24359c5b41048aa3e54080ea6b36e852560e92085858694, +0ab8a1fca0200003d335a429b213374645f700f208a4ebb40eee94cbf88678ea0074ea1cd4293beda922750ee51437068f8cfe83e6e24989102d35441fdd038a, +813404209989186a55236ad03b060c86f50f565a415b4a05187e596ab6e4d34d92530dd947f5009fe0e891280e5b0633d92091ec01cb941f70b03b2cd392e11f, +54419a38761d41d91bb00f1c8d7f000c051506500bb3a2475eb017b1a305d80100e8d49cb7c73aa6d3e657d40b0e7b2c0352ac0f4c4f60b0d044c20746e92aac, +b13a430048970d41355ad5d8e8087ed08707b025894cdb100dca0aaab1d2ad066041accc2d39251af03c89461fd84bc02b9e25d5b1b98415d9297e10672a44fb, +2407c2c498809e1da50a3d4f2fc48d78a48f9e42f4ce155893ddb20b0e08a942bc0c1890170987557de173de80d0e903588d830d416e1e8c1dd8a0b9d8236412, +1d461f621c64c55b28ca081a21239da2309494938283d2c0888ed5690501a3350239a82f184c8bf7d61ec1383a470aa05c02c033b92a00a8c10f4c5560802624, +2b01217080c569351f5dc45814e2c1a15550fd55e421588550fa8e04e2ab0e7c7aada72bfb0480035686677957e9c35b90409ae0963726aecf936fa5d62a080c, +c857b05a5f01c05201407b25ac626f3c0d21bd0605bf0a58d82a5ec96b8f38af9bb4ab5be1907e574bd219b9da10e8aabfde1277d5316f75387ec00302835338, +1ea58015080808408ede111d8847f3a870257629b90e37d00a22f50f7e015e948d031811bfe279268201f486af2a5b2ff307921c302000691d03a65558cc01a1, +8697de29b4171c74d710d8681c15054f3805e483eb99044dfd823f69ebae55757ec061080080603df6931d8d013310069de12f1198dc504e41f805f0e03206a4, +bfaf0c94811460704070c77ec12fa02f71fd6413c58d740454c8d9f9405f97920eae9b898055bde2591655cca11579c5a15f000d3a4ca61bdd20a3b21d041020, +981dc812c923d071b2bf18892642ad850e1dd0001529537ee0651d590faa2639100df887940b0081aca237e517b002c6c1ac5fd08fba6ca002c16faab1cba0ee, +ac72a8361c21885fb5ab77c5a632c1b5d492be040a9b35521070f491b64d5b5cb4c681b2d0bb1817705006c1a1732480aded1c3c9051465116814259641e0a20, +e7cb324c7343ead39c46cb0981afa2dd34f203e42c6e4c664e359613d097fcd00239209d16539cb1ed4a535c5f95b6fca45e1ed953f05e50d05ddae5748a3347, +ac12004252a8c61e60916eb43aa1df8ed80d0c145d0100041b17e3f60bd4bd2a88a23240d33a468d22000fe8adeec82bab69dc4e01bf246d7779a912963a6d37, +8042d125ba76467470527d1c89de3108d0f8b5c4430018ba86287c498d8be2194e0c82f0716306818488ce2fa00169ac08c581d41dd92000012064c67e81f153, +1846c1cef816a4e09c52b120f8027fc05914eb6901c028b0ee5a040a95200e1eb0476cb1b885769fd044a0ee9cd361f6dd52e1e81190c7ed0d8209d168aa5c7c, +41f50200e6ed7b02b8bb1d41f1e6119e8656dae20bac674390db9a20047146cd54cdb32e2e00a21eeac0b89007d5bb532fd07b128e1098c5620e8ac405931084, +f9557304443fd0bde9ed6fffc01774da3860033bf42c5385681fe949d4bb3db5a8f6a3f6268e6a19c95ec956e12435bd53256960bec0dfa8abb3de145f507b70, +207143d73a42fae58b842b046d62fce2b623140283a6776d50d3a2640bac13a9f5059d8031901603445f40317ca12ff2b469a678be6e724ac63796acde542046, +ce8134217d0100698f6f473004bf37f9e2268c990166937ec3cb07c42f042800b09b5ffacaef0e5410508dff9b360caf08d2442100144dc3bc97000811285fa0, +a434d58e512fee853061871c98386ca003026863188cd8a10659982e420011282e072baa44d1a836d7884938a38b6b92816a654507d65786390011780c5828ed, +020ac35d1b2185659966e2ae990b72a23d1240017762e1a1d019aec73fc05e9a308486a82e5ac5104dc3298addee46bf9e792484a94948c25062362c581c25dd, +174201075a00107807e08f40efec2a04217848d52ee2c6e10d93c659953cd684562caf726b3797aabaa4aa48e407a68b009af5748fee524c4512f66130cb17b0, +c4b1b865cce2001062d9b74bd395867001e3f89ea16e5b1cc311633a487c2a08527731dde94d1e8c482818f8a6f482823fa450670860c321a930b6d2345af802, +000a25d8cc6d05ff4891f11bc6fc820f7a4132600cceb8470d614a00a277892032a59642419bc8b31f967d281866f5020010e0c491f8e4e48a694b2f60a89e36, +0438000f27d1aabc033b1af0027f071206d80068702d15b81ec238d1901602505fb162814ef1a758a2201811d458192f4000590f707c7fe5da562b43071ebf3b, +40f33418ec585634ca0e15640f0c010c99d63ab2fad531e9185a06d900a40188ccc098827e4d30a0eeb1fad5c70ff80ef6f8488cc57a2c1b0adc8bab3127b0b3, +7a01037bbff1b72503a8fe1ae5a4fc0fb4e41157f2f8d51730ae0c33b920f48225ff80309693c3b18133702fd8c036b92925d9feca8af57b6465dc80d512373e, +2724ace6529bad2a55e275517604018060d261927d3111c08b02d80239180eec2c180b8076f33d49999375f257f6c56816c5fb2e28178087af00a80c0762724f, +28682e44b4d599be6e9c668b325787ce55e3113099b7ad288a24004806bda1b8a278050cc5ad901f9fe02611c7afad5d5206ba7537b62a02387c8b68e34993b1, +e08c7893333405002fb8b1089860f98a17fc83d58c9a11043aa05a26a065308b0523821c4e1b1700c3d0ac23c6309baa83690614054b1447b80274e6b4d81df5, +6402b0054e005da673d294ce30d139b3803bd3165e800d56139777f0c861570136cc03221c30868e2431ed2c9dcdc16aa8322f5807696211bff9a6f082779026, +d019e3ec0aae2be224dc22202501a011a24304800ee30c1eba3b6c402d4be335e27acce09917fccf0018d7910399d3a27e0744fb544b9d63c06d82f0422dccc5, +41f4030e80d1648a8e0bb471aeb6f30bc9061902ab1cd011801de095efd4384d65390ebd8082b408b8df2abe23318ebfaca1a533f80bc6c308d0704042cb14f4, +7ab03602f192a1d9e02a04c010500e669005cd056eb5a2085ab5acd687ac2eff2113b54b12f22ae9d5a9f0ee05d2122358054f811cf3504408d0568a03d0109a, +8b3a002802d8d0a88e8008c6462370202358818d003624ea702a8215a808f031004c579f96158a40d2da6304748444146970f80ff8c13a28f49aee086fba4dc3, +06787a5ce8e9f4dcea39bda779203f20f59a88d3b0da4dcb01550b0022d01c56c0a617019f10d51d56d4a28b110cd645f85545205e33312fe1b4035904348611, +6e308c207ce82bf483abcaa0ac21f3b18fb5b13e048766584e0511306b675d8c24830884c8b14ed6006004e2155933eaa93002612daccf4a4110013ef6d5a9da, +23c0c761c032116c12538579bdd242dd9d935817485e93938bc5eda736043d0dba373d79e1f48840022f50cdd6b64d843a5dc76a5a5dbb0acc088c75b9a6d572, +aa051ac63726a9d5e2e420885db0e37cf052e00d1b58aee3e0cd20800a0c61bfe6c278539ee6061c3ac7080856c34a6145c2118c2c76a08aade2083a48c23673, +90dd209085dd37fbff60172c033b0b09386006302224d08f786d0463a361534410b4c85d605412b31301c31a10374423d83ac2a2eac8d099e1b4a19f33f4d838, +1076c12848136bd92dbf41402c529e5dd40c0b00a401d5c8478c7bda397bec81036ca75d232120be6b1758ecd5f6dae15d32c501b9c9a1aa7226e9db983b82d9, +0ab1020024d8127d937091002679524f8ad208485b7681069a066686a6bef79d7ddb32c6c4c15b1dfba7961e3359549e1ad022ceaa2eaf6c4e919604a031b861, +9bb20bf2e8eaee0847ecdda00036bce34df46ebe1db555a6bbed22ccda056b20ddd0f95dbdee00106d3b40875bb78e780db2ed08a15bacf6bbdcd652932001da, +c5dd4dbd21c0b2456ed4becbd6b638a07b7bdfdfd21d09e4cdbb6152f5beded91e83cf1b00a0c5cbd81aa31cbd71f7ca1040aca90316af07b6fb32d398de4d5a, +e3b700de10d062e7cf46f7ae13bd7b65071a72476dce6c6de67d378f374c428b9b908bd13bb60a6d7c4300016d6c0172ba9fd5ef3e9ba0dbdf20407be367e8ed, +5064d9701173f7c190d62920e000166012373c5cd007408044be132ef8072028d63e9051ae57a6881a04a40002adb2619707aa0decb6110108b6680d0508817a, +451238eb4980a1271e8d6177229104e0b20765731fe40124d8087cb015f28165149333f9110aa0005f0b1f4c897c803c7b5024ee4175c00724c8d5c1c19a0280, +770a912f5aaa3090efa1af018012bfa57e00054023004c82ca01227905c655450bc473dd0505ff14046fdc584f024fa9a14920382741079181fe9004494612e0, +60f51ad536983e126d60a70b1ce8fcaac13e39a4a253d23a089377044ab0e9222b9a4f0525d8db16406969b421c0d5010782772ba50b822e6955a8a3041aa274, +ae0e8aeb121be49db5c553b1c0c5b71e01a6993d1297ce028b545e31f1ae81612abeb358f7774be52ef8dbc1f8948f5e2ca400b25409ee9e93c46aa4bd08c848, +49d30570000849a5777bf2f982732b49eaee391fc1a7b8d782ba0028dff2e612324a2416844e25a8c35ee0d99f41d20e182655bbcc4925b665166583be7acf94, +9c25900d85cf12fc00a4f31b5da0f0240e000ac0f4d4055ea02f6bc7936ff482840120d43f75011968b91a0042714417402886e9823300847f90cf81d0aa44e8, +2e8114716f52fd04541841e882392ce119e0d3954acbf8e9b2b304e128bc79f27533f41c90262c01fcd2c425c0d0960004ce5aa62f609875dde5ecc9e1b747b4, +4e3b164fa7bb669d611c6c87f5b08facf5e0204582c1ce502b20765395c1129caf3848339e0eaffb0e9a6fba48655d39b80453af48b051a914f5b571099c7a47, +762a2c7b47d0e932c8050f91b23784c2f389a0fed569fa3f30419cc174a371b03725170044976e81b9fe21aee94cc136b523deb9001f14f54a0500a8ae66a24d, +3d3bd8e30cb5c004fc8215b8f379dd5e00fcb482900bfef3a40b80181a178b2ced7eac206003355082cd1e66c2872e3a4151df19a47d765db815a17604910bb2, +74f1dedc7fe653c79b0532efbb02d3bd609f308244f32986158cc37be2689396090048dd8945f6f058f741718a6d85df7027c63c1b97004f80c2d27cf5cb5e1d, +f0750121b688fb6404c16c891ae09d66bc263309038b552437258708bb95c2047107d22621bbfb341ea72b4a9125e23108ae5bcc20ec6cca13dd573fc8866f41, +c5f708d8a0e2717a0bac984b67f140c10429665730362c9a19d5eeacf51586b741200f0ed8dd446c48a783f714d33414f01b893bbd5dabb075eba77d0f55864c, +be2350f98e8009f605b372015197705cf8ee51def86282df9b044d801f9cbc8e00916acfed9fdda6f35dd104804cf0b56d0bde2bfbbb7a4b88c7359a40567076, +93b2826c02c054e67454e637f84daf0e990f01843e00600217988080c8e6295ae7fd4300d804fd39889b606455988e90f4025036738125f3c25b1af3919d0691, +13935e1c9ff6760382e67ce9afd59e59bc3ebdf21d013ce37ec57326a37e948cf7e80b7d64775b20bee94d64d147f608a3993f4fe989fb6cdbba4940ed91beb4, +f872371dc877044ea252136e126f0a2e0040cdbb0b5b812471b4160787a558b49bbe36e43aea0d7b8481f3b4051700e3b457104c305849bc8d01c05254f0476d, +bbd7119cd34d55f84a754eb4fb143f270d0005f48af6b2c188a46a5a9eaa0b8182a2ce6b301d61373aaf79f364dedcf7412e26d1d39ed3ef60530b022e30eec5, +0ac0078f9db3e42734eb4a2990bf211cd3d7bfbac6376e5ceaf743ef4e09fc3f4df718291cc06366dd372ea0043edde805312b0c7c9942527d0f1f72279d9b54, +4ffbf7b8e6a7e36a5e7d067b7b27b0d5645f483d2258ffeae9182b51be69c0facd50cad2dee00dd6d83d584e87e9beb2cfce3e7930b3753ffb380028537c1341, +eac13baf51042bedf657ff0b67fd84c23a98850beefca56ffb9d3a396fc913b480d78fbd9c8ff51b40e3fd3c8ea7ef9660d39c7db0cbf8ac788241d1eb37dd26, +20f76fca2d20c54ec4a76df7ec4f8d8e97180b9ff3ac0d54f2fa968af01762c21b757180c7c66fa52e5af6ad5dbac21351e73506d1961edc5338ebaf7fdadffb, +38b32d723d6db90541b805df20f7effe437782a0afe8197d2ddabce9f7ce551d0769a213603bc2be33755ae2ffc12d68bdbfaff0d86e13e85f8a6046d9e8f1f9, +991857409f3f2d487cd82ff2229ecde3fecf8f2c0cbfe699da495b469f07007bb7fd53dba5ab7ddad459b5d40eff7cbc793f9f70fe08e216ed39f877045060ac, +b34b02f8d8d551f51572d1dcc6f9114fe9089a9fc33775a114494e0dc1c85239073a5920e41ed45799a5f75d35010bdcb36e01f413ff565f13a0c0027902ae04, +00b1200afc39b61f3285f600749401790377406fd73b143b28059680f3f30f5c07682472930b8206021b007a9ec1cf96ff9708a409d0dd405495202a7002794e, +c3976d7d0ac341e9139e90fdf9782e5beecd9e073e01664d08c541839616c10a2c45d0ddf1c794e14ac47005c084a03dd00780745395352023b06e140097d62d, +00626d01e3421ff86f80dcdc81399a5f0633f0bb9c7c1c4ca4c50000c8c8144c3de1c2ce522bc90604006aa099c3c81d5ca12c624069d69083b27c011d8128d0, +22dd021b0048270388e0f47f2ac010d843920866828b201cc2208856e4818dc56d821f68c8d181e3010903c2646b5d156a4880885bb69cac07fa11284bc92001, +8074decf3f600b807e308177cf2d100010e38c027654ff6701c0dea175580dffa0099806e209b155ed46e1230ab40cb30f2d4d1a58418c02de020e409a200a20, +1870a0fe800b7226447f1e1129302144de2575c05941600b17008067b680e70589e1de347eef12ac9d355241f47dac9eaa9e6ba2da7510e61a6a896a375bc809, +eee0fd07aa3411a4832b8e806099b470551a54c32890c8c90f163ea480d032e0f690407b47821d922df14901009b8207cc1fe0900c4f1c0cf72031561db07c1c, +8784530a5c560d81ac004897e4d802300bc5011cb89ed80254033f406fe7508c0bd40220ddfbf20ff7969402b210826029906db883ab40cd802c14f76d3ab115, +7a7024c84298ce534454f82d7c0b1555af91d7e4d294020e85335e051115aa84760445a10c96fe450102009a5f003014653b657e168bcb37ac500a981b3fe140, +a196fc026f94e5d2847115c22cb6c00fc253e814c60c5ca1d2606be51199026b195ed758510a187f44850351826115fedfc94e93982bc0cc6854398544619690, +a8b88537852d20030714c4767e9aab8756f20d425c6743d2ddda80121e255161018029b04fec29aa4be1c3bb74a3b10a0486aed9b9a08df1bbfc006810ec722a, +ac0043a0abe005986b9125a2c0f7620b87024c8295601e609ab0102e459b00995628901212861f40805f6115eb5564e00a399db837100607547dfd43474011ea, +03b500df951d86809401520c2a6064fdd89904841fa1e00510067887cc882d00d982e72d524281178014730adc31b640128eece7197801620184098d650bf832, +5c9647740abc2cf9876a407cf8b7d402ac05a00ad5501c6e1fa601f1a148520b520ba033d9e172968c931fc63ffce159c023441f2a76d9e100801790007504a8, +c1feb71dbe01f161f16149530b807b266726c186b81dba01b601f121d1510bc4da4938a100f9931fc806c48731572de0f227e170028c4379e11a101f2221b540, +236053e5877980944d2d500ba409b3e1f9a1ffd311a402e81bb5c02e80ff892de587718014930af00b040369c22740e6901fc201f161ff540c530ba07bd3df96, +6070a402b30e7d886b21115e106de21b60dbf00d9c1e6da2b500a5330e8d0df989dbe11e2025ba1c6c89a34c2da071a863ed0586600b30ced822d5021d1a8b08, +c9b4006680c1a10a0808e07f54139be843d026920187a2925b2d7008e07f525abf429b88061c8a500f05d4604763d47ff40e2a5647f000e8f149380e40070101, +9201a8e2afb82a4e06100daa400f421f26e18002a122b048ffd211a8020e62f011f5e719b4895e00aee254550b9c781e025f4ba6b82a8a015448b5c087671280, +57dc1f9fd86ef8896e01aee2aa540b58281c8ba9a2a8b82ac6bda80293512de0b1286e1102a3623f00b368c6d4025ed0b362ade812008b6287cc22cc520b8081, +69827618311e82cb0dab000f540bb400f988fee2bb38061011ac025d2262e611e3244a8b8760b7d8b3e801d502d58d8422a1d0266e016100200004f62e321b83, +5d6f20530500c8a037452d1001bc545f421ae2f5c7a6918896054ac12a9022fe207a06c821b3a21cb430a650b540709876481e6e8bef627ae2c2e812d602835e, +14c30aa037b400356389e812780177800d0c2db0cd64873702ed467988532d8ca07a26811460acad538d3e334e41500bd0106a15a6c0ce205631215605ae4200, +780dcd0d3b07c814a760128c8d5ba2d7cc3f400b8803b0e10aa2173006888d5402a30c2d800e648c81807a01208311b136f240b4c064e711d82b868a5e801c20, +2e5448b4003200d29728d202dbc0d131105805d102cf0048c01008b3d002dec0e4c0108884d002e16b38600e5810d0021028d40033d0db1997053240d63d720a, +2472c463707063a0c1d102ba8384c30a3428f80b95063b25a4d432a878c023b3d8c11700b402c1418fd69c779fd002f306da43cb30145e8ec55cd30016d0dbc9, +4eb2416ea83b7d5df865f1179e0039c53eaa5a7e631335bf38fadd868358cc526ec8a7747e1d41f112e3f000de05af9f3b83418419452ed1769f82e862e48177, +a35442d10af40e0f4b825ccbd00af4304811854f2b208d5d12fa8d5e409ad00a92250c1aead41f32bf07e5b02900d3a820c7f7cd4929dfe36b96e4b5391d4d0b, +9d842342d28317a4bc61a0626290904c7601802b901ed485e04e4e972bd04236238c57e55570b0158423840fb0c2bb9407793e2208b4407fa45d109db926185e, +e38719ba0223021481d3b545a60d7e983adfa9b000300d4053c101f260a58445cc037886ccd83fee508057014002c0387521f47ad2186d90d472bc24091906bf, +6322780b78a450431b6947867cabc9d380d968126c907641178266750fc12cb32bcd14c5b2dfc1740c837ad69a05c2a4ea150712d65a881f993ec224c41b2d40, +ca817ae563f018f4883fa23d05c12c00a71347b273afcf432300e01491541097760a9311797519e37e6e8abe876b1c1f42909bcf851083ad21148d8064ee563e, +640594a493e2f10194fc8e1c242409ae1500c4026d827467a8e54322244d437a88f620876c90a9e4c49b34f004f476af02d5c1a06166ac34cd2eb00005c9dcb1, +199edd2ca0457944063501002b10a6990ac00622648b774ea9189671765142f123e040e66795db11983e0315b96fb380d640758044a25e8105c62432e90b0200, +f90a34c900fa7a5b589c0920f93b3a93a59257d9fcf282090b388498612cc0ffb04e3e92830e3c29a6c847ba010e24b10ec8174fde0ce016b1c0d8130b600e50, +40c284ac6c2240c9559e6c10f104016e9401802cb048391abe73e5a43116001c31f1915153ab553ea3d404682e404a3927091559204124e412e2a0140556efca, +2c007c0043d3df80103d5227c08db4c5de86c5c304fd584e5a25450e52518c1bf85622d670052f485c310f264015001ae28e0c33b003cac6c1506c6d2292c80a, +310bb04e12ce2ce05ea957f6017d651ccc2cb02acd022201b2c093e805f001528df9ce2cc08849387504f2e47608068856325e9ac626400d55343e8f42236774, +881c0c44c94b2137374e744acc0303d07e7653c802d4592800d406a6a5098cd67dc10d84ac5c59ac9617840b300650044c4fb2403f902628bfe5877f8014430b, +0500b400f95001be027510ff5a8f50ca600da409d5c367c35ed311cc9605812c91b6c7ff8860070303801641a07130224b284b0e805a4a1bb4012307a6430b5c, +84f11a4b9025d88f2805b4c064240b94617906b1d6d5f403e8b95c97285976a9a9105de65e1896e0870ee4af016c75c602c26c31569c5f24570460e9d21d6c2c, +281eac403f1e37cb04b580b3280b3440ac8919c3c28438758815973b148eb024305aba5fb55496a005176111194c46c0e400934d8e960f59df93b7a216e253a6, +2081220b4494c581205d03230be8014319e5de3f200bc4011944b642f804e39862a61901cb5f363cc09855989c550000adb04b117c57432d5d43005ed4028382, +9ae065ba57f6a5dfa32d60e8159747408fd9c9310d450645857e952dc03f340d44739a868f205a32b3c802b38d84630b30002401dc25c805a8c12de54a9c031d, +80a89c10fad40ae905170606005666dad6bbe248014bc52549429b5461b55716997d159d49ab64520880e2636ca5eda80f382dea03ca1202133a9d7ccf0ea7c0, +357a44364a07676d66cda8981e502cb05a714a76587dd348a1cf438be590c693efcaf7b49aa8266a4d59c1a77036d80284196d8231590be860250fe4437e8008, +c106cba65ef081b40ba037b18037207ea288b54da626b180adf00fd08502c22b441c1563b63a2682b002be422ddc02fb183fe3984910ee131c09f29aa6610ba4, +0c7fc123623d681ae004590114a74928414e33c65502b24ba56ad21798cdf0f4509415e8035902be26428220c402d1c0b1c071a9967c17d630625347800ba84e, +c750bd83cb881b670de666ea48d24d3f405cc541db50dcb4db403531983a00d1107c3504a78014810e2074e402fe612c26519007c0016580b9407140d92404f6, +4277b064605d0518b9c07d120b209838201881e92407981bec052a8126a1cab871689c864700900b0300f80023031e202cd03cce2fc54d78000e4296e4025355, +bb012b8898b28188260435e5d8052964ef24cff33a558dc19ca9e61e40b3ec08a21c86530bd06f0e06be379a4d17097486731228b100861918d38fdd3235a70f, +8975760483a758d5d0a10b309b61265916b3f217489d1aa71d4adeb93bd1061d61f156deb61d949dad9d5518eef4b454760e4f588fa183f2a94dbe934982ad40, +40c502c054901633d06fce014ac12ec06548b3794cf48e60cad349a9943e2325905334d910000594592f2780f40cbe2b219efd532cc003d810205780a7f53062, +81328d67192074ecb975919c86419358e774f99e3a42bf55dde54e1a6303a112d62e90efc402044e41095325c8f49b5718c31356a17a5e10549ee2c393911f20, +056081d0c10bf0407403d6d06ef15878ac184e049ac9411f4767740e0b00c6462ce0471e2f5b41af47b8a114f0020c14b980824802b8591302ad112c80fa9904, +d2a6ecb071755ca70f02c978d51b7484d40905e8cf48019080b001bb8e5f0158e87f16096e190a20589043b816fc27d1664740018423fb98b0801fe711dd9f5c, +9a27c969148dbd004ce0aa040bf48ef53e4ce01d030b645a460343e042070bf0d2c002d4c010587d5110c002ea0613582fd0db613b95a34c5347c00b248ad0c0, +17ca519ea0392149c107f00f9ca0b00008022c400ba88e0d2b5b1f14da0ba822f59f01402f8090c811f4025284bce2090022c82be08059d9e320afb44c3f632f, +80db084df8162cf05607b3c002f76471c61f9026f402ef0afa561d1a1c7ca16735666850d3109ca088a100c00770829a736d0dabc4094a0a372e78a127284982, +89ce009c28ccf20ff00e603402404320242a0370a249ce3fc028b34e6134d787b99a241a036044be00d10d8df50fe403604e8440097006c0869274fb5200e00b, +de31ff803580d11cd11800b3e80dc089c0891228ffc0368046b376000092a80d0027cacbfc03e000e50046136748a235013400271a73fd03e427aed700a08a9e, +344adc375a8ba6a3b2a2e92803f529616f002e188d48f48d508d8ea21dc12fc0369a50712a184d024d715002bc019b28be00b0f30f44031800aae81b40897604, +bf4015f40fa4021855c4281b708d0600f68dff802b80d1d0d13800d5a8339a8e9a8eba84ffc02c8046436210a36f8031682f9a8e8a24c31925485586d14c09df, +8d86f091faa31829bfc0aaf40f5402185e13802a7af8604462a450db3fc0e5b90960343551450a8ff591a2a318296df246aa3a0d9b184d310d885002b001e128, +480a0c7c2fff001f004693249400694017293080defc03810218cd05a08aa6013aa4496985f40f189c2c02188d05609360931aa401808b0033f20f4002184d05, +80d174005729520a500a0ce43bff001a401b80d14811602957e93d9a94ba1cff2dff801c80d16c00690057e94b0a0cfc0cdc3dff400de87a80d1640057294a0a, +8a12a372c04b1a0c1a47fc03bba4eb9583420580a299a95a40169089ca0162a9aaa81c90959634ff40ff801780d17c0078005729540a0c000c9831ffc01880d1, +66a6380046140c38950603408a0d308df40fec00cb68660a309a9922a5c1408b69307069fd034080ff4011a08b66a640a2aca95e1a0c0081cc87ff801280d1c8, +a3dfe90c209eb64688a70dcc3fd001ec0f8800f4e8772a03fa9dc600e2a9a7f4b1a043012727403b4039ca9ac60030003980749a42fd032c8bff400cd08d66a6, +df290ec0a04e55fea8fee13f400094a424001de9777a033003100bc2c0f4f40ff40f380013e9776a42fa9dd600e2a90780781ac3fc0313c0ff000620907ea734, +298b8a84f803779aae97518aa2ca00efa72cea5ee20fb427d4033d296b2a03a09e7604c24034e80f5393960072800c1083ca03f903fa0046c03fc0927ea73900, +8e3aa1b2a8749a3f9d3f700d603470e967a98cbaa0b2a80ba82cea64e40f7003f803e180572aa31295caa8fd298b7a9f6a98fc03fe803950ebe594eea8f6298b, +7099aaa266c0453a8dbaa79e25fe802f933f300c3ca6782a33c08a1a000c036528fe00327098b2a6caa8216a47300c9ca2f64ffe4033f097200ddca532aa86ca, +aaeaa5c340cce50fe20fa80218cd1a23316a06bca4c300cc8e3ff00a6034590c4555a48a920e034903a38c3f400b6034300e25801910920e0cc880fe402e80d1, +4402180d9e10a966aa46a7722ab0e30fe30fbc74ae9755211180a842a5c3c01d0081e20f6c02188d188d0d23aa22a5c3a5c3002fe30f8002a428ae972c14a902, +3472c1b65aa4beab100325883fd00760d19c32db6a8f1a004a0c3050fe80208046a30488aa3180a00231c06ff8038700ae179d10a982a7c4a772ea38ea0f3806, +aa933f400660348b5e0ccbb63aa6beabbeab55903f70d1b8066034f5d0b6baa54aa5beab7da33fe03f30076034c0ccb6c3b6daa4beab2ea122893fa03eb95eb7, +aabb5a0ce00e48eafe0057e17a990b9a349a83a66aae322376abab923f5005600560345380a8aaa21aa7beab509b3fa03ff00560345200b9ccb6aaa6beab4487, +0d80d168012eebc5ebc32ab21404fec0fe000f80d164012e0c9aeac15a0c7c2fa037fe401080d1087a5d012eebbf5a0c5a0c5448fec0cce01280d158012eebbd, +2aa8160300903fe03f300260345e40df6a9e4a2c1403668cfe000a80d17401a20d9aeac95a0ce43bb81cfe400b80d1fcd120829aeac75a0c5a0cfc2dfe800c80, +06acaa7aaa310004301ffa030a00467346e3ac38ae1fab31abd71a47f8030f00fe000580d18c017d346140dfeab44626f8ac258d3f9001600160346860a43a03, +f603f1004693f4ccd1083db46be9ea2c6a0cac27fd803d803e80d1b401abeac3eabf6a0cb448fdc0fe000080d1ac01abaa3480bb6a0c5c5afa03050046f3b344, +03d80046b307ecaae501db6be9da1af5bc3630fd0084e27a200e6034fcc2ac6a1db0bdfaae9e523f6ba2d80fd826ae5718cd1c20aad600b6aaad6b0ad50fb003, +e70f582ac126b053b0fe613f80abb95e940078c0183006243df503c900467319b09ca401c4c231303fe00c6034fe60094d1fb0abdaae1e50ad6b0cd30f4c0318, +260fd617dc10596510c7ebb0515440ed004680be306b144c28b0ffe0e119bd800a4866c118a5da11d10b7407770b6de141e00ac4007fe8a1553f2082ba5ed561, +13ba8462a1308b2ba54764842ea10d067d81108b20b80281497f810f5b0600b1c20e450846d1174490004ce942068064d5897604c0000afb517253b80219809d, +1b8592b105412b00128a90c018014020422be0369a0470ec6616cab203941808088500e2c0c1300e2003638f149af368d5c12cadc0f5d91100352ea16b42101a, +40b602ad52aa57cafb8c9896706921bb4489b21858762a251532f0fdb502459bd54137153e10028314ad80e79590f4020eb2b888217b85defccd2f77d01b1bc7, +5820b42cea952ee0682603901f36a7dd2045402a7d6c9a383298c856681ed131ecaa53c85e1ac8401351149a6210b29e0323cbfab0840210d216ad804b158c1d, +53780227fbc66673a42b78882f501c8481d4014d900712b7013bc00b1a8fc6c61ab089b0013ed8c48d27e22e1c2b390420401b109f4422350049401b60b8216e, +6cec1d606731b37695ee2cb3910c4407342beaac1cc0ce72ce8eb3e52c369bf16bf1243fefc21d1019308a8860c20a37ec357bce160cfd182fecc8922e0001d5, +00a040e6704c7d6c8889b9b598200ff6b367e131b02626b2705b420bcaa221d81d89b2c101667a62dbc98a2ec12c257b1d22cfc29977413dca5831efddb3668e, +9b860c2472172d25562b40d11574502d93a784b30c8008f801f516bc74ddb0b10600ca40d5c8c6068714b594ac1190d4c1c6320192d066601480a4d409cac076, +900ca0b47d6d2b4000d0d52601796d47a55d5bd69904742d6d2d9b56d616b20fb5ead63fd00a4c0192b59f2c0a90266c0a7401ed963220d6fb1a6ab55c6d64d2, +c1d2150cc1652b0690d97604ccc03a7afb4a5790120ce81cdc5f20c51014c089774002cb03190448035683b6c180d60114b67ced1b7b692801ccb5696d22fb03, +a201b02d5f8aaaaa907eaaae178971d95007288c010033802de09d3604a52d1d4769fbdaa2b60069cc403e3ac0ba5e6b15d7c75f20066044100bcc803cfac1d2, +28b02a5d418daab7d0a67f011980db3a04e1b69c29b24a57cadcd2150ce908b448f417ac44c92d652d6acb98e2aaae978eaaebc58c96b6d0a69f010e82db12a6, +ee2d43400194b6771520422e04e11aa76044cdc06f5ae0d29baaab311c713bcc4591aab7524c3380c1d10cc0a6e1aaebc50260da86011c83e42d33709a62ab74, +2e8b4b343403eaa9ffc0c2ea7aa1a50eb6256e00d00c248a6ca7132e435001f8b3d8b66100b1d00cd00c50a7fb2a5da1eb8501b8b61e6e47401820e00229f3aa, +89829a9aa856ee972a033acc100bcec02dae89db3f15a680a6606a444007e00136a5dcad914ba7751750222eee425797db0c4c468de987fa61ea7a7500cf6d8d, +ea7a91000ca819309e1b003803a56870a875ea7a01057fc187aa7adbb49db99e09068733200302a7e8a6aed706f0df76a432a0582e980ba3db113803655365ba, +897410ce00342a016502f02704035130a60be622a3dda9ebe87cea7a1d697f81ea6d1c600680b9bfb9b7a873ea7a9500ba5e2140a0bbe8d6073c2167ae2b5a9e, +60343c0003aae9d615100bcfc0566a023a006034578108e6e091e866b9bcae5400d0fa0f1069ae577a5a7c4beb0600cfba67ae50ba04d21560342d807a4b066c, +343680b28be59ebb7604cfc0767a00600f60343340a86bee65703c03cea23f803f80d1f4005e2e9580d0f10cdc3dfe40320046b25aec2f61b8cf00597aecba5e, +6c2ec3ebf0d269ac0289869232e85a43b446acc0a76712f80728ba7200d1f00ca3ee6234eb47758b464303e8bad46e032eb1fb0c784ae12e382e0380d1b41681, +aa2c80d1840a81ee22af9eebae4203f90208e2c72bba38034eba1d013480deaca7148dce40fc99e8303dad02abe6c49bbb68e532bc0607340062e91151bc676e, +2a70ca7a44812dbec4586bd862b405c18ded3fd0f1b6b589a1ffc02a000f02b61ea9fec02d00ebde0a603429c0c88bf490e8deabd0c08f8ace6ba30603184d79, +35c17604d10090f27df20f60a90d2e722d57805c6144d0c070af3930f7060065b17ded2a6025a2b5d6b5abc03bc0f5bef5d216ab0031c0d8b50ae40390ed5eeb, +001895122ce48be4100d08be139eeb95ebe54c68b31611b10346140d1ca9eca8dba9e428e22e9ed55efb89e33b3122be181cd100757aa6baa5ba5e0880e13b06, +360478406080114934480362eed2fb96d592e6bea4af044b068bf86eb912a9ebae421ade020081c100004f046f98be5331d180938b0ba0a2f602186a43101848, +5ea444ac75f8aabf1cb7d32f5f5ab1b80d20a4475c9cfb19da3625bf976f002047200d00a4420a4d003d1afd56048f6fa42fb1200de4a39e03f2e828309b4604, +9c2f19c05b14c0061c761b704207eca7fa1669801d800718c688bff8e918c7db4099fa016faa5139fb2b0648b0e9af34affacb98120231ea846922b08fdabfe1, +ae67ea7a41a678c029b0f2db114c03770330cac82aa40607390081c1066c704c2c4c0369eec6ea7a4a5730a310b01d400f86114d0362eec4aa8e4b5718a5c0ef, +12a4053b34c0490fc91090e70200d0c34ab00e1c00f0afc0031a6912b0a47e061cb84170f09bfe4e02efc010696a4a57ea7a51a373803ba2232207acc008e968, +d01718b73f58202c75009ce8ad906e708d134807f0bf44c36cc00abce5ba001800c82e00a0066c0c68a08cee163ce5ce053bb938c0cf7b0780d16c14c30cccbb, +ff4ac294f076aaef409dbebad82e18cc00f0066fc21d01350090720160342a00479ab01037100bd4106e147002ecd2159301122c1d6007748fb2a7ae976d1906, +32259a525fc0bd500197c2c6ea3d30f580d194004970043cc180115103be2a3f6838e17a150973c0876e44f0d170c2bf32e92f3500fa361fba5efc1a0040fa7a, +152980b0a0d0b601abc1d500d66a0dd30d43ade76bb0ab094a572c578b6e18b00072ff5603482bf8ab3f80bd9abafcc99f41a3831155034003ce6af4ea7af500, +aed70cc094d0012ec100b1401cb846a9e7c378ab928aedbea4d21531c01b7c0f40564920f030dc1a1c5c0da0ade63043850a202cd001624006473500ee7ec374, +813500b4aa029600a928492c13c3c44ac4318c2ae009c0a144c3fd18c84126780a980270a833310250120b1dd54049a34390038c00362c194c47500d24aeb32d, +1f008702052f711e9bd0610db884aa802340b891028922d848aa802100878208031607acf5d013b70a3802702843a01300139325d640d9a41c4a00bcc480415f, +c417a4c171b035502ab006d9bca5b0a001456043c9c50d8c96e7112b07070d444eaa4093e91165a42b270d6f47600da80adc0170e88fa015c05b181cd60012a2, +c18e0181d135e054001b9ca91add121426116b75c61dc13540cc700de06391af2ba429bc9420577800d7c04f9cd536c6fc46863019400a0713b794847142320d, +3b33c43148ab5ba405a90245ac84430efb2466c3a56f695c25a78a4000ce4421872a20689a04d40007031e402c5c032ec6788834c00c88c67cbef9dc71bb1ab7, +8787b1041b076303a602f62161bc05e317bcc1e171693c8e90261cb1094965ac46740dac4aaa8001712fcb15080b790077a547140f43c7c5c3ba71694c74a802, +033212920a384a0890ff718ca581a601a60219e2c4fb64ac41080b07ec80ec1280fb4938be801e7c7d6c706003df4b2ac2d9a01ebb0d6fb0fe612a90267dbca5, +00b0930aac92132f6640dc205c0600d8bc6a8b7fbc580a0b6203505b2a10fe7d1a2f960d81267cff940a84b2136f6d573bb206100dd880a7322e320de087fff0, +2a800aa431674354091a70071cc9774fd580b7e912e40bf102b69ccadb65040088c3c442363055a5703aa28cd987bcdb4c346403274a2a70f964232b42f8828e, +5cd2a4024aa7191864ab5b8431234394c09b1c27af0d206f1d44361073a50293b64b89515c141325c8001d8199ec88220df48da9c02790c67b41d09f4489c191, +10a4026940554b9d5c665538d4c0b858bed526d317efc19cc00ca3d3c24b08097272a0bcf62208a940a98009635a32cabb0d87303da2267b1c502f502da04c27, +a828c0820bd21133680500da404cea0de09e5c1f14712ea45890fe6a03b40939409a9b0ea0af2ec81704450c07f4bfda07a6324462797ec608b691099f4c2a23, +04dbc05485f7b82730a3a2b00b920777a16c03b869038b9be09e0ca3a3b0b27c7262706c03b0e9332935e09e901214b114b1884c346803a7cb0e4a36e09e0c00, +0172c7b08228b4a8cbae682be09e2c0044cb04ad9d3c37d1746c037b89dfb8a3628e06c82b089a2c1c302e47830c9d7b6d48cc1004c87700d4e8286c308ccb9b, +c336308efe033a0abba0ebf50f0bcb44a4fff0ae3c2e6ba36c034e2eb08a9b30310ca40eb1badc41ac143039c0090c57632437cc5f7200c712bdcc989e02ee89, +00c00dd0a50c6ec5c0b9dc224bc645734bb3b86c34b3a5880ddc0059da087ccb4a02d77288ccda101873c4c40237b095c00daca39700b47c6e727dfcc32e7347, +2212fdcd6e80c4dcd0e12801277e296e89396a3727cc1f8d060737a09e0eacb8000c81b0300604ccefcb46338e9be2229d86b8150335aa09002fffc3f3b2d8bc, +c1f6bfddc059820a6a04570c0c290ba0406a0f87cddd40854037009baeacb8c9c20224925b51ce01cc46b3500a0684cc5ccc76b3c6ec069817981bdc80936b06, +a8207299194034747acd444b91742c142b3bc791704b749c2a80cc7944c0f31bf36a6c707403322095c11b3b2e3604aa2d18c0f5a166e12c10b380acc902e5c0, +81a880a77c177710fe0a2c6e1cec0d005ea431fa839cdcf786451c27d3736bc42eb2d752cf9ec1484e345b88e53c6b140dc11edb284bc7980355102a20b9b1b4, +1d8137609cc2a8aed0926daea329918a1c037888d71b00400a341d60ad37e054810aacb4586f5d8bd4f41a945927ed4d14f60c00d4007ff27a71850cb3a00268, +f4968b11d315c7406680caf906acd0220353ae444c57380318032834086d70787564d04eee42cc10d10c98016400603000e00d20b9382a5d5732a0e80206cb70, +2c6a068c0c52871780c1f10ddcb96e6a7485003045db01710b44f43700a34cbe02278b2f6dbb44db06d03b76000ffd2720e612be74c532600e0d1860d001c037, +5d4423a3e72d43a02f7aa986b77fb41c4502804727c15ef49992137d8b66b77403aea8a17a045359aad1674017dd117c0155d1a5e89faadded89daa9bced185d, +708003152a2680d14c57ac0005830a6d8419008003b069d0afeb150a5bd298f4b009d1f00d08a5d65e4d6f62350738d2ecc8df0034ca91bac401008a6e1ce082, +c82689950e1d4c77178fd2a568d9cc10150cb4592974fe14d1000e10cc5db3eb858dc0486b4ade06213438b0d9cebf74cbed2f5d810cc4d21003a974bdb34adb, +04a7803dd06e39d09e023372020d2b179916ce74c53440f5250d08d1e2f428cd364d4d53a676a9eba95b4a57440331f4c3c0079d3fadd28c04e080466a96ba5e, +3c74bc049c18cbaecaaed710a0e81eb79301217438609cfe0efca6ee00a88a5080a952594b10111d72c54383030eca3c6c3efdc6268389152f6c049dc851d0bf, +2a0a1d0167d4f8693275441d9f2e03eb1ce1807a0a0d88ab603449c04acd801a44c31b19358e5b0dbd9d6a0318cd11b075fa0d04ab1f7544571170518b010a35, +ca31066c0c3cb43874047d69f0d3292d95030733d316d01303a7c02a704f930fbed3a722de3b4fff5447d4062a2fc0b0fd9f12bdae97134059c3affad4768042, +18008803ea294aed30bab3b6597d75c7b55f403488038469363443d0b226566cd51b43082d0ef0a5d0a52e34002005ac068cd57000112d0ee0a096d00c411460, +9bcec3c5417030033b32dc0b06c738808e2c0e40a3ca2be3e94bcb321a4608d3e10e239a66a12c70d383b13c8d6f9d02fcd548aeb7bcb4be7a11ad7cf5c6d058, +aabe474b94585ce36ec087c5f5765abf409d8ab60cc130ea407a0dddd61dc1382c6c0da4b4c374c5c669418c720507120453c2083407c0d64931e3c06fca0f33, +21b0b581aa0bb4a786c40000bc0c0014decac20c6271fd9f585ce3a7ab2d43907cea2edbb7e2c989f0754d5c0700e3407b6371ad9eeeb64fb8fcabe81b1cd801, +56a9673d414398b975058129809d9996d03020c2f54108f80ae0be40ab29100fcb5c0700e480bdbc7e5da1c202e62971aa701b8b06071de7c42d1d20c590030e, +113940749802cc00ca94f32c070d2018d3748ba682b22871ac88f34b521162eb5c191ce440a2680ab43690037b643c5739c0039902fae7f5af1ba03108cc1d01, +e097ae3c297e958f0be8d04dc90ad1409f42ef801e331970c45767228560a330f7c577008b4da7b10bb4996e9f417826600cd030ecc9f501a0642a23d878a129, +b01d6f80be5bdb44f024e431795bb649c08fcd732a9776f609819c6dda1a1ce5410140397036d8d9cb3e8a18684007d014fa1265660010660d10aa2241c85807, +667a14d740af4947cd2b2452c94397e267823cd1063143a0c19b694c1d103d826e362ea9443282c1d9970b36caaa0854b88f3802391962631454c7753681620a, +ab0869c4219c369b2f7a4449ace6a6178c119903d3932940d57267232ed9c621c39b8d684b6c66ce95b6fd5267a34131c8ea9d6c806a63378e07f35043e06953, +01ebb64b680a9400a6512601ba0d07b8119d032d92298031038ee9d8240f1d8039e01f9a0217d2251100c0029c871dc178f15db0023ddb27031e902960084938, +0dd3ad0502f0a8fe001917c7d0ac5c40d81a292c138b09805a5407cd17d560b4c0187c0b504d210039e040b0db15f606871bf06eb001efe6474cbc5dc8eece59, +3182500aa80328f785ecd8730e681ade026088663d6383b49402280ed99bf59a219c2c2337c97d530d001cdc8342c23dff50d49c18a962854924926b256ed686, +ce93dee6d80321080749abaf15359a6c11934a01721b2dd70b10530c600374dc59dc1601c66d6bd564cbb0e902c56d5c0008d8ceaa08e2e073a670eb08cdd73f, +2ce11c03b210324b7030d6c12ca5c09800d6fd71b35d674e9ac8d44d96c50039dd12b7d3ed365ddc680a8395d1d25a2fc8a6dc82d9c2bd624cd3863d3eb72ccb, +7a77ceae36662538416c5820e940af392256417604c5f34c00208bcf0600e900b8088a8d731bb2e9d5f85629900c90ca28de054129b0fe48780fcf26c131b015, +f5b2852cb6d37bbf1c3bb21d013a20387b730f849db53d6b64520a880298b75280b618796bb49477dbdb36d76b084ee70143c00e4bc5fa60b85a10801040510c, +c4e689fb1d00a803a8033ae915b08c068a06c40543abd811462c9c03ea2917802fbb732f2501f148d4f3b2f8ad099db71936d98d0df00f6cdcd0623026c70e84, +f8c2484634ac0300a6aeb475dd1040e08801a395fdbd0ee0400c542be424eb3614338cdff30a0ce03a00b49602a594abf10a32898400dccb42a914f09c020001, +80c1b10ed0262a33a600281a10770c7a7501b11ed08283be981e69020a7e7ffb17f4df18d13ae07227e1a8d61d0107aeb1bb0efc2da5805629d4ccdbf2df7103, +351494100bec40850172009c5ccd47f027b0145e06f4e01de101c03a20947ae026cd1f78407c063410bb0145780aae93b00ec4a49cc0f51b43908aeee07a00b1, +2de17cb184b888e8d1a882d316a440780129d0b235dec341ba45f9bdebf65905e1e80d2990640998f4dc84006aa16e77c28e0d862c3a2040440aa4bc3d4bdaf1, +fe0400ba4741d00fe0f6ba4a7b410f70037e3638e00802298ada228953e2822c370529b0fd2de2ed0a26c1f57ddd8db11ce2578b49a00e94c52a3a300b29c0e4, +e7bec37831feb7f48ab703c8ab63fa5f00bc9e01a8280fb00cc003f40018513bc0a5d50fb0010c36b1f89b328b7704ed31ed0010d80fc401d801a4699dd10348, +be3ec0325ed2f40317e300503f209baa043304e6a870608ee003d0e2664c3fe03f703a3304f2350f85722d8cd3e2f94eb4b8cbd10ff8c074039629fd8b03f300, +ee4085d40fa8adcd5e5342434e8c7704b803406b3f20b6ba7a2dd275403f1e00d00e3023fd80d6eaefdb10f800bb7800382fbe2af50352eb4a2b5d21120907e7, +35463ef70507f3d7770f2960bc9904b11eb8a7574244bb0320e2580539b0e9e80ad07c120e3b808b30924931eec0f7427ad30fc8ad2f70706d9d41906344ee00, +11e20e4426a440e15f4bbe4fc4581b996e80c10110f5e154595d3896c87ff3b0d8c526813b60acf506100bee80ea440ad9926f3b478b3f5602fc90a750a44003, +50829002b4944960989890691144c33b202910094938ebc03c4756de11bc0340e189c6af10069c01910205b84724937710bc646c8056de3fe911e1e45df855db, +d822c8d6d05f24c58d11bd03bc0c29b02900cb74c87a810ab16710c5ece5472aefc07a420a8c95fc9ff431ff6da1100bc50ef6e75b6e82ef9857e5b8e7066a3f, +8e0121293cc0408da28c026eac482a6de1c9c80118113c7007440a9cb14969b6297b899b0700ef807b39598e00a4098338c0c016c4172089bc03501b29100b4a, +2ca380b3499bfb6f4b459e0c500a0fc00fec25a3406877178d6dfb759e8c5e0a4b0a0fac27a300d0c01d7e1727839ecc9e0c4a0a0f7c2fa302fbb149f00b307a, +7b8347d46a874b8d0142393c40a78d0263db5fb9b6110cb30624e7add1281064c08c31db5a72c633270395c20300d028c0d58bc4a21184809e0c520a0fa84ea3, +978433e08a566501ee461112a393e7d402c79247c40c74588c06d3f21151108c0a744512ce78bc94d481100bf1807f382f90265c038c5edb8e501e0f00ada380, +947e36a4b64b09137a6180a237e82320d7b3896d7946b853013a3a8a7e9f8c02a1782be490be94b0a30be955d028b0422d7a0600f1c055ab46140f2439a300e3, +d225cbe92ee128a09d7e364803d396784009320ab401fec86fba6ef195dcbff2e8c0f7d2e914ad906ec67905b1f053cc0a44d59871d198f8bd947704f1401c31, +425adae2af9456028d11c9030bdd2860e8a2174703e3225b819c7ea50bb508b29a469fbe94c00e7fe95750fc7625c703c403113a74d3a83717d2631d813ca05c, +cc03e4397f85d10612a01662c0634e34350a24e6262e1ae40ba2a31b1cf3c054f999873da7d922af1fe91b8011cd03cb72414823eb727305cc40a7ba9a2e6384, +05f600219010643fec00944400300f640ff406f6001a10801281154af766473093fed776042fd652cffaa2717610f340890628c0408301b50729271d1033cc03, +a2001a4ec03417680062000947acaf4a2444ababf6f02b9cd3d434188549010286094c00da0f0830a349072acf8c000db162be3354301c504e08b15ed28c02d9, +cdaead1700b8822e811f31183c6d58c630e28fc0ce1def068802e6f9a0899a53afc70ea2343d20925b1ce0721e3ba180ae4b0fa037a240cd9116b4949c00b3c3, +1a3b3ce5e062fb24003d10998802403257441a7006fcc50103819f3a851fba008cbd5a3a17b526901a110bf4c064240a64a1bf53bac523a23db0978802daa647, +c6047e0fcc8adf6e95f50eb81ca2c02f604d833038a06bc0c0b96d0e0084319527c8832cb0e9448ad403278a28003b576ec40eea98f4d91196703b105e3ba138, +889eee32dc114502ba10e480159228b00030b9d316a2801aa228b028ce2f855c4b49db4e2cd40389b5a28032405f249c0205f68049c0b8d770d40384bb9e6888, +00ea12cef0ae6eb6458aee81e802290a8cb0b834f5009121a6630ff01ba280fdd36ddadbb118e3c2d581f6b0e9d403fd18c8e411b5b83281f476584770600034, +266fbb0c280a98e55b9edf7bd039020d538802a0faa039bed985031022a5507147600f788f48d134e6a9600f5c994e679915cd44bd8b024083ff802840e144ef, +a2c0bbed11b9e41e7a8cf4027f0fb4487b44053caed10e50bfebeffd9328506ec10e78264fa78842a6630fac0df680727bd36512c4efae098c7a00600fa072e2, +c0bb628256ef2380505b83dadb0d56bc27a001077a73beed6e07249430635c2d96f1537dd400df01200a70e6923ba4c7f8ce3f185f8838820500aff46d0582ba, +37cac42bf1e0a817c0132f8926bc75c5503c006dc59f0136f11af1142f89ea3028f167009c1c1c4089ce370e81263a2efce7060004c000207a4146f0a1df0002, +eac587a5877c1e5f1c0fc8cff14a3c563c1ba0c587f16c00683c1dbfc6d3f16df116a9170f92daf177f156fc1b00c637c5a7f1587c3f6ac6ff0648f161fc1b50, +2d641f28413be120205808117041936074001c142467854b41942117680e7fc3ffc2f2501ef80fecf273fc6e8d1dd807fcf14d7c1a20c847c8eff1857c1b9f06, +ab3e9504671c1c10004ff13170321f05fbc4c75ae30201a051b9d104060ec1f7800090c423574fbce3e8374008d3153f0ee3682890ff3081f804408378811c3c, +040680021ccf8f657fbf126c3acfff36fa72ae289714fccdfccd3bbe0d4101c0ff4000a4c0ddbc12fc681c1c14002930470201300790bed300a42fff8072e9be, +c76d3c8f0058f4b4d711fd23dccfffc1e7c09cab01900c631a03f4023df522bb1b5f6ff3f0463f3f0f20d08f0b2e19fa7c3daf1ac7f303c03f583c1f5f3ff3f1, +0a3b8f7231d1337dfa7c0130d18bf31374ff70409cce33d143f30480260ccd97cd33c88b6e3aff0e7ecc373a277de5fa472fbbcfc200fd84432ed53360f40370, +01f063e9f3f1b5f970a251491cc2a22055fd0022c50f00770063c084f2d49774a4f34d3d1c20c5172e17f539f20012038f10c3f4a370501f01f0062f27d0bc50, +6125b8089d016b304480313c06c6039a827ce02a5c0677037901c32230040e1d04a1c255a019fc086b0fa4c425cfb3ac90e12415cf13dfd0dc25a35c68727080, +0be0044969211b00a6e88513da4e00000b856505008880e9053ed2bdb439199138400000042c055b002840000003040014c708002ba148045d2807ba014f800f, +70b8c3bd40db0656cce320cbbd104b00bbd1fc050e816d7b6b3bcd3fb753bc97802f2f0030a02897058137b054b85e400301003c1000a03040033cf2281d00a0, +f7da3c6c52de170025f32c6e378f8394dd2f41e5fd00900b4fe29af73b112542c7505730a02a7d3afd953b2ee8f41d2e03bdec5edc1eb7c912dc6d710f51bbf5, +30bdbb2bdf53f875ba537ca0fbdd4bbac2f4d2ee04b6decfd20f0089ee77fff25adf03f8f27c78af5bafdd0bb40071e57d94bbde63b953fc1cae4a8fdf4bf7fa, +1dc13be2e3f825be2bbe4e4f07ccf825f72f7e25d1ef06f8b6f72dfe7e3feda2e23b041e7e703feba1edaaba3361400f431fe263f7223e4d8580dfe167f71fbe, +e242890100ab3c00300050ca3706e1d1000028bfb78f4060f20000270f0078f23304cd415db01268cedbbb0b7e8bbf5b5bde2700273eb79b8a1fe4b7f80480b2, +0f0aa4f6ab3d2ed01e30da97f690c069001560a3bc34a13d3c40004004140d010001000b0056040007000c008f31d993cb0300b3bcb383c4d0ca0300af3c0010, +eac7d22682a87f411f4e93faa2be0e8d01104b6baf2c7e8ef4a66f00a0d39b7e04bd36ed6dc4d7e103c0b5864b8909f9d0f6f4c06d5f1074da2303af7d6cbf4a, +2f2e93bec54cf99ee58bf25dfe977fcaff686cf2a50a96af4907ea4ff3c90d26bda60fd527d33f4bc934ff80e903f9dfd250bda6c43f88fafff850bd0eddeae3, +d999bcb75de527fbcffa4ab0351fd7b3eb0bfb4af0aaaf040cd593beb37e350facefcd73fbbdfe2cbeab8f51d7fac7ed0935b67fdd97fa2518bb3e542f505bfb, +c7febddfc9e7fb5901eafec06fc9d3fbaff80f7f89ffe993f07ffa083d709ff0bfee0ffc087f8b3f2150ed93fbbc7ec13e293fe93bd3410d00c0270f0084f25c, +2e850b0040012c501d4cc6cfc94ffa8607323fc029ce17fbf7d5daebcbef584febb3d5ba7e8bffe92feab3d5ab3e5b3da42f7f33be57fec0febebfe58ff25efe, +6d1dd418fb74bdbdfd04f2f4b3f3a40402c01920be0a00000cee44c759f53b2b34d11d814a2f008c0668af030019bdd1c0e09701e22bb9309d90b8fdf6480b7d, +50846c3431c50000d08fbd5dfd0e411d42d21f00a8f401c0f481ddbfba4e3875f6abab00006f7404330141bf3b41f5ff2378f2933e23ecf37f15f80f9a017bf0, +fa2317754215fff7a011070057bd00101e2f0080feee440c3e34e310c40032c032603710bb4efb7ef9a082d9aff14b993707f6415df02f4c6f6cdd9810b12ff6, +b00002c0404f498d65b2fd836f5e7de6112a940767bfb424933ff6f32c93ffa3bfe9ffc4effe79fcab3fb900033cf5b7c4b23f9c3c00c000d7095b8100000368, +1b9f404ae7fe03814c4f9fc04897fef3107c021f1d496700f5097cb5ac3b335a9923d74bfe1c2503ff0050845cffc9fc03fdd47ffd67fdd7f75b38e2af07b813, +d18d003000d0ff1f00284c78b32b87007e0254ed4e2100082b1351ee8400308efb094001fb3f0eb0fe7f15eccad521d53f16b0ffa337f9ff9fc016405fe01deb, +40a220000c00cee2b37ba13044b101400022c9271004ac1bd0014040a220000cd6ce2f4fa8db00c720000c0097d6277078b263fd0540c04ccb4e21000800284c, +faaf4ac47006802c901c70370800d7c429461a910c75b84b000380d23447d52cdd149f4073ac1308c243515014140545d0aa0d007be4fa8f27806fef1402c000, +e1090088fd9540b47c2c846f28c6e34d061595c2d4989e4003009a21000c00bc1902c000806608003b510c8b003000a0000c0091c927b09b0401cf012e40a220, +c1d055bebcbf5310efef14049e8025cb276088fbcf70a92f4a5ee0cbcf7d0581b73a82e009dc8da0000200d027507dda3cd83b852fef3f08c9629e79d73fe009, +7902f39e694962f82837040ca92f5ffb5d72ff039e80daad0000f445094cc6d98127f0a0eb040280d840e0e0cbcf7d053b05812770a047ed7802d700a0e4cbfb, +eea8148a5a277440e009ca405feb0938b37802ac9647940f39bf880e2cc08406acd434fe039e007d4013486aa02c032932a027a011ea0402f2b59f27100cecff, +054087f70f780296a6024001603c0800f8f2b52c31c8c16009f45fa62556d21015a9d6091dd04de1a97c5378020d262a77b077abe30504f4378527f0a4876f61, +002e610054b60581ee4401801c080005039e40ff2c845fa8dc0d0240019077fd1c080005002e41002e84a358ee44018007444215049e409df2fc223a9400ec3c, +aafc0f7802e1a24e812f7f370800058079d73fe00954ea3a00b8048ae54e1400ba130500722000141078028bba3b71a1106508000600f95327a082e904024001, +cc900a0006c04dfb545b107802d7b6ff769b802b0800068089a6106ef7e43cb34f43376de109acea470759024dbb640f006c3b058127d0be2000140051860060, +007c0f01189a26002000cc169281002041e009848c61a000367e0711f8f2735f37ed3fe009507531b5fe337620001800180037ed3fe0099c0f0024698c352500, +381aadda0160221c39d07906ec07322e195e0a00269d9dd2f0a9130800819b4900dd117416049e4002c0f7d06f451902dc3b85003000b46a7c0f394741e00918, +00f681005000e012a8ca40f31feb4e2010faf2568200500020451c03aa8861f70060d2512902c0014001a02a03cd68b827f74ee1cb3f060203aa48b481207802, +054127500da43158130200d047005db5c131eb6c3b6bc2b9012401ac255e1e84d709008e001a1d50011065080008c0f75b279034ec1402400840a820001c00ee, +048ae54e1400fa4c07808320001400b81b0100dfda1008007330d8f023382449008044c1416b71ab20002000f68100802700b5271b88604349e0e0cbcf7d0541, +8a516cd03929dc0a8c83e6682c0fbe7c2d00816608840ff796d314f330008000300f030008b002ec67742bdaa458f83420300800078059b4ba02110800265d8f, +882dac6dec9c37f520100808029528261b041001600019003b850070009c7cd51b06c0ddd309b4241c00ee5b27a00aac3904007c6b43200030720800054038d2, +2cc6d857812fcfb011b80d3c37452760db56e508000900400642f8650800088026dda9ec4e2400ed00815be2409a0800c32c9d80a5ac1308ace43c83420a8b76, +09e108009fc0cc011028037d6d2700bee0cb332c0280e1d35fdb09e4b431f6558100904a3504ca403cca4dd10918e53a02d5b7ff0c970a00a4a2cd8532d0d776, +7840b3af2e845fa81400c68300500074342748a625362c00603c080005408707fe9ef3502f0240014001f01b16049d003b8500a00038080200ca405fdb0920b5, +1ccc6c04d4b46a0ae108004804e391b48480054127d0c0094b1000778300a0002100202fee440180085810740224ec4e002e8162b9130a40ee84026083080005, +59d215d408000b009bce3d207509decf9a284b924064f8f27402c1a74ee0cbf7001400170297465ba021583576688e20bf9674053502c002c0bb62d5d8fb0321, +4c81a604074957508200500084235cda0b007d60d5d8a1390005803e53e50800e6b1c1c140ea870915f8f2b52cca92de05d4d02132ed66707d60d56cf977011f, +584cb57dc98d0010d0200014006421275b47b00f000aca009c807f2e0020009413054038c2a5d116e11d434d51236cbbf9df057c1450d3aa2300140017825553, +79a52b8020ca329020001400b8840140005000e0120840a8c37d26001c000e82bd09b980006808a23d1109b373a7740ee74ec314cae2d083b8d1869c7643800d, +812a905f48e44ed8b80d3c37052780e3804b2c000e820010b0ed4e045bee440182005000e012c156114942e84e2c000e90242d074391823d86538ff79312d3ba, +03408300d000682a1cd3bd973f401f2865bb130d40a589b2724c0f8454410a9b4e210034009526ca40655b107002fdd702400110650800063d370527f008b005, +aeb700d000549a282c2a3d07a38f89de2c05ee44035069a2340800060022863cd57b01a70d81320096ed4e3400956680668035108e2c296cc8c3b1e64e340095, +34a9ef4e34004486510d5dc73c88fa6400448655a3e60fd088fa4c34a9ef4e3415540e4957ce2f6d863c20f1ee44039032003408000600228b4abf2d44450d81, +14d13930fc98b48948ceb3026429408d0240034064583542fcd206c38f4993fa180739cf279d74e58a900b0d009161d595f34b1ba27e5325557372e73c2251d2, +d3dda4a24f8632004e2000340095a6600df953107002abb99dc30110d53bf958000d009161d57451740e0c7f28dd1008650e844c0a5023452000340044865523, +008c00cf43c5f33c91113c0f158fadc145312e2c0023c0c7dc08f03c543c1f071f4746f07150148ea5613819a0008c001800117a41900d743408000540942100, +17079d8301f0167bb0e01905c12610b3d11cac0457c18fc01460168f0140012900576cf1c4d723c00ac008d004705c491c50f107b28e8d0b543ca0c30230027c, +049bc0833ebf0468740e3a3e5cac6416f3116f9bc0815e1ca00c7c0f8f4097221d1aa508000fc088970ba923540e6d9f02c001d04cf10f02090d810050004419, +2cba4e20004400ff1206c0b653106c0220007f83005000e05308000a80782100c01fc02c9b8088be80061e6b0f0280015041b00964e8c541ecb1f6200020005b, +3801d06b2253390f064034b8098c9c4200ebc92660b89f5c6c3b05815bb96e1811080005002e6100e1cb3f060240010026d03b0a000a8078820050008c8c05c1, +b461d41fb0e40202000091df255d39bfe40202c03f5835005d39bfb461d4dbc7ac34560d9aff9c254f305c404dab0601d05ca52bba812fbf5090c2624b024004, +60d2d9299d8336af026099381aa18200812f5f91a17502005f0b07d367003579000800ff60d50000bcc139f297d01008b5245d39bfb46100c03f583527c666f0, +65080011c05e209130714938f780d4f59523004000b5df26f797210044002b779b00b6e84e1000aa00088065c2a5d116200096895593dc08b513afe382442200, +900b06405660d50045740e0580ddfcc99376b852590a50234f03d4b46ac51456daaf41d9bb1317aa40410a8b2d090064eabe7c45864ce53c0800afee4db109ac, +c63ebd3b610064054735741df310d34b006405568dee3a40600048cdbcab3b6166606700355244e78401901558359ac99d4301c0d207fbee00fb201f05d44811, +020004d05c5539021a2b810060d271567f19020002609938a500353f822faf7a60d5000080d437958edc10080006405657ce2f6d180038b2568d97bf197c2d49, +000460235835c98d020002609948240235a1822faf7a7f191435afd83795a500d30035ad5a3185d5a10998eceec485ea00800058265c1a6d000460235835c98d, +008000d807024001830b452e140051860e820040e7f93d9d02cf005b200028005439020005c03e6a757d1902800420e4a109c0d826c13d20001001b4095c1a6d, +4007eccac93c1d206ef7ec4efb88c0004001804b1800db8e558e0050009c1502056cd431a08a1876119f77ec1996f300d2f508ec810040e7804b10000e820060, +d6f70534855e31519bd607070a40c4ccddecd50300070041c1002097751403c0d003ece04ed001c0ae7545814fd0ab46b8131c31ca35d6f32ccbee7f30f4003b, +dab2d28600202c34a1b6191c0c8890c25f1068020798107e5c20304c07f241293fd95ff9dbf5f8beb0833b6106243d170e1cb3ec8e0b410f4cce620174a039c7, +0bf702b96000549a2d7e5244e75000081df8f21519ca826dd251080006007f3032754a491b313d11007f301df8f21519788632003408000604befc6320005400, +e41cf34000bcc1073fd3812fdf6b225328034083008000b8cbdf0d02400580672b6d08006f7043e03e314e8db231ac2d812690d3ea04befc558e0080004c5b05, +9d3126001c00aac8f681005000e012260005409421002000332c028002001708d3e73c4a5cf7e5cb38bf740ed4bcbd3002306d15049a40c10e7d630c56390200, +91e9e40b0005c01e0301b03abfb327a564bdae27c37e4f9d37e51cf3400040b04353befc44f69c21006c3b058126f01b102a080005002e6131f0a75439020002, +20001400b8844947008001b46a08807d804b2000140051861a7be7e026910b0a001740845e1064026802e290a25cc609940a001740845e10591068026b64ce63, +9e19994cb4f62000a100e08599c035308f126c271b12be3ba92f9fb37f190200498369499172303509024001a02a0729a82286dd43e8cb5ba5080007409b700c, +1c03aa8861f710fad2512902c001d026351d080005002e611d400044aa647d2f2d7c4564f8f2fa2c020006404da52b310735a92f9fb37f196000655a01405b06, +1206c0b6531064022000a182005000e0d36f340540942100e268b00f740001d085ca5909000880654e41900954c9eec4024001804b1800dbf256820050009c15, +a7ee408890a4b0d906020002001205072e1b4eb600407760008044c1816d391020000800ba81008026f0a4c7d8ce8de6002db06e18002e61b7c0ba61008c3299, +409602d4c821f78056cd00f08a70302b00e28500600000107cd249179b2d00288a583503005b86b29d740535020005f00080008044c141258d004001742cd381, +006000001056cdedc64328002800e285ccc3a77f3e7bc9d63572c83d20753d0d0c00ec1dcac2a40031900b06405660d51547760e05803dacd4f5650800168034, +230048004c0de320db86b25cf5495750da058090583502809926ca62670035ad6a19c0c862d50800001573549602d4b400600029865533009ff3c4ba51cd9721, +1704074957ce2f6d4c94680f564d987fd295f34b1b0880e28d106bd59cdc5142404d92d039e8f41f07e2852fbf4f305c5d1f01c03d207505008044c181149f74, +00354942e7209271535835f67e499ba5700008c13b876124c822634735741df373ec503f603545cd51cdd3c03c18009afec18155c39f18df34be07835e315178, +f5f730b98000f00f5800afc8aec43c1800dc0352d797210099f354f149d7bd1f008000e019560d745aea25002800e285d88100800058265c1b5744fd80d51435, +394fc29b7455fe01000fc06c61d52812e73c707cd215d40800340017825583d99ff368f149575023008000e019564d9f179b2d002800e285568d9b94f3a82249, +4dab86012024568d00803aa7c76629400a024004204558357d190240067043b22d0135bdc33d207520455835000027380670535639024004c03d20757d190240, +a40cbf0607560d4743d2d545750e05405b375653d4300e95354942e7400010cae806befc3ec1700177d8057c88002000e14e1c00c68300402799f338f449d7e1, +71009c1502c000d0884065f8f28b973b194dbb64bb1303005c1a6d810924cacf35d8810010014811200096099786d51487080002806e20002900d01d42e4ecc3, +cba22c203091e1cb0ee20d8474952f5f07404215049800f481006000f00402400501264007a431f6003c8100d0019050d096c181552a0018d752366c81005000, +201b024001804b18c4d1b4a8f631a08a21000800405fcea3513003910b054094806138bf740e3a3d02400740421504983c3a8b006000b006d7b2a32c017d2ae7, +edc88d107e006c3b6e0657812f3f912100087598c0c782ca61f6d42f7c8800203bd1013c0e0200dd409421000800409fd246911f946c340500db4e418009acea, +a9e8e320007c0035dc3b8500f00194077c00bef73f800918713306ca00d02000253a7cdbfe5b4130e62000080007057c0164eacbe392a399050126a0c12bca0d, +8c7de0cbe7ec4f031b1acc8209140069131f8010210078007c00e5810060f8b8bf880e66c0742f00b0a1c12c98c06c3e3bf101180f028007262660e9251bd3bd, +853dbf04681838c58007f01b160497c05186007001d820020f0200502000140041e00d8100f001186416049700ad874ac53c0c00248fe7aff33000a4db14df34, +10a94ab0200016801dd0009801103808f73f70096803e319024001804b7800be005186008000d807040e020050200014002800708100f001c7591bdfbe3cc322, +75d175ccc301003207880135fac33d203586611bdfbefcfa8007b0a1c12c97c0a3b43bf101081102f702c007501e08001ce8c581e830064c056001b606827009, +0c0a568de5607c471c245d418d00f001609958350000f71508f08a5539020002c03d20757d190200ac4494907455fe01f31ef6c6302e583540cf14df34c53c80, +91ac820080005826485d5f86000002cc404735ae7700700fe601ec0c56cde13127b919d819404dab8e0080005826568d5f86000002b87c5535ae7700700f485d, +3b85002000c47f03de5c1a6d71091094080020808d60d504650800088065229155f90700f780d4f555a3fcdf05fc43d2575023007c00df8356cdcfbf197c2d49, +1a030093583581371ce55dc0470135ad350240060040583528ff774170907405d408001ec08860d560d5fcfc5142d2152006d4b46a20c088a14b4b64f8f2eb1f, +00a0ac1704974022c4000022501902c022009e7172f046ee81988100704db813676ebd06ed2500342f080003c0f72063e54e0c00ad1a01f097465b5c02486d30, +20008c0064ecde3e25f01bbb130340798008c0a6e14405c10280007076ea86021a731b422820e8068800e285004077e0000800df4384210033b9b91374871029, +105c02126f1e21009071b904020067562e210240c60dc10ac000f083ba1303009700cd581c642b025c34aa00906914040800220017a04964c36ff381d13de013, +005a06111bd5eb3d90dc14964075ae235e105802c85971003b3100e0122340846cbd26000c003fa802c00840a75d0267122300199b7145370c003fa83b3100e0, +04020009c0005c123106228a424414cc4799929b246d91f6dd10005a06111b0525a088e7ef6456aa01b4674a6e92b485094972b95c0e245997e7170b240b3559, +0bc1fcf14fb813f603980400a00b1c001013e640d34b01200300011280294001600e98a314c0284001900ad00020c0000020400a300020c099c401b010501220, +000b000c4400e640a3000d00044800a600038039608e5200800007402a400380498000800029c0007049641207c042401c7037080024003b47709010ad2f1ab3, +0830009803e6280500087000a4023400940408000890020c0097442671002c04e3247d8b005002d04fb813f64742c411a00b1c000bc1fcf1d34b012003980400, +6b00f46d83009e36835b00f46d5469836d6b3d1fee02fa6f7ddb2390abf56dfca3fe043be14ed81f7412180200f003000a3002c4c432e110300ad00040800460, +12170496c02180132a01140496c022d002501058028f001c404160094c0270e89640fea5873604020496c02680131704150496c027d012173d590246871e1a8d, +f46d47009e2601f400f46df3f8c9c567155ff76d4d009e769e5600f46d3aebc9009e361fee025300bb00373e77f76d56007d9bfadde002ad170496c02000870e, +5abb40a97b720100a8007ddb0b80a75ddeec021cf9c90500cb40ed0235009e86835b36ed026d7083009ee61fee02c86901f9c98524f46d3e6d44009e5621ed02, +b48525d001b0050207028009b04f3ca15802bfb13b7102c8138e0b72883d80de420b08d527970130416009180170e859d52ef0ec36b832402e40df9602e06953, +807c20009800cdc596c002c016080027002640e566d41604ee1402c009201f0802607e378525b03328849f00f28100602e5872ff039600cdc009201f08002640, +515b105402f3005b807c2000041e29813be9cab0530800270702c00920ae94dc0c673b85007002c802d019402dcc520920009c00f2810070134a5b580205005b, +c78d36b82b1d77dd4927599f5cea8a2717cae5c945d1adf5c8f5b8e0c929d6270027009e00d4f274eb0402c009201f0802382d25f74e7a2020009c00f2810070, +105402718e4e20002000a00057a6515b2590a10be128806ec54a20009c00494e97a3907b7261553230054125800e8cc50281ba001a7d72755a5748ba004fdde0, +e80602000ab031190990773a810080028002c054466d4150dc2e00a000ba8100c022f584d21695c002000aa01b0800289c466d4150091c9ca000ba81008002c0, +a50dee49574c9f5cf0d2adf57ca80b300b40ab0d2ed0aa0b8002d8084f286da1e3ee4ea000ba8100c0a0f084d216958002000aa01b080028b50541253027ea04, +3019272e443190960b490cac6449d709170200e1d04e44852ce43050579e8309d3c507d4007008001f80a7010418fefc862707f0d7079edcea8a27b7db9f5c7c, +4e8716fd57290c55cf20cdb954400a6cf6a405542800a21c22c4b18d4d9c30779902d84248801626eb0408850254c08005000128d0719c83058c0b0de0193911, +5a94c143a78c1c377c0cd9722104326f6de090c75d071cb9e050c85d060e7fdc642e00020e8bdc456c54824b524e7488a52d60758a4d01afa53caf92d30a956b, +61d407071c067cce668328379681f21e438671e41663c668078d2a982b5e2ac08c9d322dccbc9143c6531cde120230271d6001d4e326957161d82c8259020fc7, +824088c1c991852e4041d1c20a1859c81a8004430b2718071c00570b0f08d2ce6e000558a9fc340c01a6160e40b590000b2350071080d44221885af8c0d36350, +e0455492eb02a3404c3842e04550382a3000128e1648d1001fc716e2c88109010498cb00e302e005e38c41726363a05a8e32384d2540c4a8e06802d13cc1612b, +804003340098e04881174058089050000a30019015408803009cab70b00007541c02402a0e004ca10003005d0e08a9040b1e7d04722170bedc432000bafe9127, +e0444649269d4400644e0220f8e51f773fdd411401481140c9c64c7510254051801f2742270433034120a04e4026c813440209da64004e3900d809c04c404a01, +410b5d881c44018018744f633105b482cd3727ea130040295ca9009c3fd35cb332cc315f6821105c29abbc32cb2dbbfc2520c9259b7c32ca1c03de2b10265b4a, +4e70f405a5df7f314c01060205daa4006e8177b130071340538101048254814d4155d5e420c0885453505d1db5546b8971aaf4523f35e5d41400731c85940049, +97dd7f285944ad1653052018dd40e4a5a2d81c40de33079211502808010e8861e004a662544258680510524010605005024008001c38cc4168130282f5450514, +598893f204700189a69b326a24a715902c3c238543462aba7a90178141818c32176129da90177129580168a121cc3991ac81282984e73605f8c82d2b0024e1c9, +17ba061d98587829cc8d32d87001bccdbd8da0cd3610d6b8a00304c12f04c1368ccb4018ce0d37deea90630cbdb9f6fa810a34ca00618e37853aa163216f3091, +4640074093a11b6158e878a7294142342617767f8412e249d6535a6d0158a002281036268a1d806f0c8032130045185858a869015a00dd6d68b158508df4d021, +8c2b8319d2e08634c230fc0d36bcc10d9d6e4c2c704271101ba0975e144c16aaeefac2fc9466a7683da27366e245b5b746e6e17636fe11ff6121529a0280edad, +8208d86b4af05407f00014c037910e2620283d48cc2e8201d11c82090bc90489002f505ef92821021b00b0b19ea00d4f0780e8118f1ec483d0210d029c8829be, +383cee0db39b48041b7440c016405005043516028cdc01c0a0961708e884dd01e142764399a10713d9b1a0daac153ef1030331bc85d80e8280142ec414b35bc4, +67b93ccc410720e01a610a9681031c0ad418c824d8219a2d348a560070ec5125c1e68d0a21193100048d3a7ca0f524481809161772361a2e01b08ed36d31005d, +44dc58be49540391c03380200a7548e0a10c7a23011de4704442e6c2f803104c2237393480e00863100c41800a74431d044478c31d060846c11ce01006c0f900, +58011194f94e4e7aee401b32f8329a743684210f652003080c75b00ce3d2604964264150043c946178c52c6ed10395bc24339941188302197470c012ca900710, +81ce1c6018dc50ce4319dcb038ae191070c06fa6729b729054e19dca04e3248d7248674b7eb9451e37e110ce7196f39c49101c900e6324c372928b2c431823e3, +1c940e3430824b418b0be91b1a894bc70207788704a2a16fd18a5e94801a4de0d09493b42526f53618c2429329ca8b1e0c479ccb18749d3b3930329f034ce01c, +196d7214042828aa2d717268836640409c6445e7508736e8e94687191cc1a9ab7d5e060e15adaa4a9d070c4337a14a398c1cfab7b73a880120b9daa0619216b5, +de6006027aed7f6da1d606046cf8e6e2962e25823f01ba37836b08a7ceb3b200f938347c1304719db2010e93ec2738c5495da70890e0d4563dd7778633e03205, +eddee880c935f4cfda59c722739f613c1514b3b19d01099c6228032e537b21c21ad810b8024254af492268f30d6d804301065370aa2ccb30a8eb47e760562dd2, +2d11c83f264183173a610b97490421455dc81d17b0e43427343203c4eb36f55add65022719063178ce40d8b3d2200a4e015aa632d6bda51ba46120831c58f0db, +f8c20bc9090c462886c90c58e3b60e8a57a7410e2e4484271be6b04ab39b63111eeb14c024c1c382620771379107014016003a7c07981c8061a3902150cb0ce6, +2502e01719218412754d7e728b2191bcd710d7561e27b36341be44a82600905058e2274163490008b10dc06097cb3d0084b71813322aa34d00072fc4115684b0, +0284a19c2e7b57864ca4080b11043f266e11000cb0703b1a36c867465f54591396330771218c2022c22d53b420f9144173dbd01ec18b85f88f081e17c27879c8, +0cc18cc3d9dd4fcd004e207a224d6c347acea40680a91712b102a31dbd100a5420dd1d385b2bd10b0008f197175cc820c6fdd9739f350d44c90bbe17800e1871, +d89db29fed6c8da49c90456c18f1d8017efe957072406f0026fb040159fd165e24084ee056b896e15241a58e800a79700662d5003882ab27a8b320066ddd9d2c, +e1c853f5a3033ef061770271ea83d73a1d6f00101cc461de03a0cafe0600107b6e2cf492d35dea53bb17920478036077cd85d0fad800909e6e79700edee9de0c, +d6fad0d60275466818d477c26f486b3b01eae006af8da41bf1854841e5f88e6d7c065f36b1c63dde3062238ce80b8e1374bd901204bc83c2dc15baa019df371c, +8e096ef08159c77644123e500b0c0a4a68dc190a51691e0c50acbcd6492feb0032bf10d63ca7b5248d53c77a417bb890b4f6cc8864a278ef8d3bf1f5e37a5091, +ef6d9685b4bd05a7c96f48f0202cdbaf7966a9e9187019b682dc55a016177490d95bf31a47003700fc24eddd5b4848eb35104dd9871700235cdb778386fc4312, +01f1c171884098e9b52e604d04f8690877201140f809bcd22fbe012c4e830c93da01108639a401083c16708378c64bf53d03989f48ef720335432260720346c8, +0382b713001c381ffce50f003a7003f2884868bf5cdda7195ffce4affef95110702100bcaf2e0180618203021c3ff989024c840e7018c3f053ad1295f363562f, +0a1004bf11bc2ecb1ca004f56340f61308a9ae2a0320003d959080c0f853153a381884fc0380ed0b14c031088102c40102487b3fe80b3f00904000e40300e583, +98c8010e10c2448803c0341883352040c1fdfbc0220cc1e810f8411ce08743c06cbefe8b403aa083820c31406e58c1060e34971714413a00080114c48542d8c0, +3c97358c40382041bf3844844540430f306cc385a083f8aa48c00554be287840bff8323f01c801dfee834253f13f5511b4c02c0482447042022489c2ff53202b, +3f52fc3f00e82d4f98d0010a78844ce42c4429e444364842031fcc427a68442241d4414824003a602c031acc426868040217cc4360394419cb38c12c64052e8c, +422446583c1cd78084035f0485491046023c7c453d0480633880431de0032e947cbe529c8831b803431dc082486845359d73bf4d9c0859f47c311d40303a5c3f, +dc011eb80477dc45c73228aa8a0a017b0a68c651d4465589aa2820e00c01d801c61d0496c371ab7d6ea4447064874ac07c44689c4269f4a80d20903c1d208666, +467e9cc292bc0c8e87bc475ae0c229785c08c5c91b396048bd7b64844c38c88b3150483760c810704c8429f8c27294c04398d881390c893a69fc2d8f022a3730, +a274ca29844a39984c4a0494c8f50b023e3d3483b19a032c01e00114e8049cfc20c79cdcc949ac443d1e48bf5b64c1299724803b40441304f4c81de0864d10c9, +2380bc1cc6b3e4cb031bf0431ea086541c74c59c9c881248584b1ea0854018cb4ae53bb57744cb103c0002fa484a150ce3c027cc46ad0cbf03324c4a386884ec, +01321808481085c216e02e39f80f01e87000ce848d66a28d4c38ec01201042fe5cc38bc78c4bbea47883bf7cb11ee0808fc2344b3634c71234b801c0c4075f30, +6858084c001a4f58333344883500b806cd76a38102b835b04b384e3a63b805c0508bdf5431665888ca1e88bd7f80044c422022a230cd7944ab204220913f5c88, +80059149cffddc1d4f00784f552b0414f0a44eeb041a006804804278ce0190ce88eedcb37e5bb6e600a84ecf919eed5c513542709723093b327f9340002084fa, +891375cf25dbcdbc0a3d922339845963504f0b5a92fee44ea00945b49ad1d085060583f3d4cf7cabf5ce55034ff1443482fb34d07c1b9a04ff04506513040800, +21c53922053b1342355208b5a089f04fce89b8d0fc1cd202a0f151f60cd2a7f80380f9accd85b00451ecd44ea0098a9326204e293a04e524a20d456c4d5a80cd, +fb014a804d0aa053812ef839365d03c93cbbd0384c53df43508b1cc84e2bc54d82f6f10170804d1009423d1408202bdcb3d0f144cfa4bb8452159b350f65d293, +32501187880180511382052da34fdd7c79847f909fb250548d53780a51989bf21f8032ae800402100022b8800404508b8406100d50c8b07a3be5cfb0db53a781, +8d11051200020280000764458044480100e3f8817f80189c9020076455933651689303388de3bb830b7ec0184020000a251185f08b0072c8600130108051e081, +48d681058052600117f00b5701104d027aa085404a087140108d7a989d7070d1c71f20868178846c4ce2a816c88cb8b2108765350e33894bd53fc0075d050201, +899035861781878d1789d3904d861799108d2c858b4760863c20909a7f78046089f08174f5a9119085007bc1879881935709080516c8d66d50108052380c0008, +07c2049fa1cf256b158020403ba0a5dabd0cead907fad1a70e9285f6fbd485b018cf5518cf12429202b1f0591d5b5552788505d1303b980815a03900bd20a080, +705b1db0592a885732aded5becb122b30e1ada85285adc5c6a896f5812acedd9593730a98c3a20722a7883316a2d649a1d9a45b8a1bac1009a511dced2a35aab, +b885605a01c854c8474803c5b5b02c127803aeb1472108bc8878c830a270dbe054e359b15d88495dc88850b0da0e7284006eed59edf9a1893f508baa153b4e13, +e95d8850f04e50b31022eeb95b839d8886a790b1d6ed207121808378a502d1f8880db79d83658009007bc808a2a88339c50500cc65b1cd05bd9da683891fc8bb, +db220e88d83b10aa0335c82b324aba122d520001028137109a083b0a803648d328fe725b101801322a4020defaadb8ba108d4d73d12dba801debdd5ea7798421, +1dc7fd1e0118828c90a5b0d25bced68d16200411002180d72439980dba4acd08fb4dd35f1abaee71cd27936a0947d03203b8ea9f66f2a9f8e19dac30c0833468, +ea81cf38bae285c85961339ab4333a1d5bd01b027c88572995fd8719b80bb7718013eeeaae171b02025218887fc881bb5a73d1acdba7b51c180417955c3db3b2, +5002fe60e3005880022640e371008b0059bc0c1df83201209230df13dd31d82dd9587b619890e137479007d170393aeae6287b240208180862b3f80134003e11, +bcdf2383ee823f223943e58538072e60eae311c2962a0b87637f4811bcdbba38fe60d1482636d240c2d78928855b13002011e3d1469eb737a11907ebe433397a, +6c2a910140e36d489800362b020111002771808922788900f251650060e5eed9100d73a8b2ec8d61b12238e37f70845d13020014d8a714784004209687948861, +02dff27104507811073b4d674ac3e6827a9d1dfed48454536a9f22800234de0467d493013bd00c534a50ce7196cd153e708453108d6f5e881144c8b04a3051b8, +0cc081038e62cd8d60560493561d17a00be646489103e88b1a47d084011b89ca43508b2298b3dc74d8d78c3800004063498f2c821c09e64f131a0338a88316e0, +12416947780393363302d17304664cc0801160c87b9a03c9961124003880d3018a049830022440e3a83058033878037d30fea8df6a0131a846e344a068f9d89d, +6e55340602e821a2e723b06b68ceebb8b7866bdc2422af1df3e8272059b62e0234013082f1ec6860aac16a1caa1f6c763402fe1c89bc086613013882373602db, +61d70580a46bcfb7afd66b56cd370cb2f8ead191eba4cb04a3cf01bbf1dcb49718508b236822113308661f30691840e307341630b53e8092bf2d682a0869f9f8, +96386b4758811411001e24f019e96ebfedbdaeedee11002462a35ddd11e5179d286d223aedd4a6edecf00cedd61ded23b03d820ceb6ce9f91eec7c33a2719ebd, +bee1d8ce0ae75eed1e28dd34eb346ee573586fdd0e33cf965d88499808b868043335591ddd63bac9468807c0feeaf0ce1b32d7ce8892e58a4e9838025860dc10, +05fd3e7109876f15f11e7042598d10afe86eb63e82f6dbb4828433eb8168847701480225caf0904b4aecf2d6ce52ce3aedd9f1edff6edd1bf269846938ecefde, +d033025afe877e902784e0d383d8382d6feddcda0aefcf0b06ffea1cdf71d0162af0a246eefbbe0488009f3ad456712107d7e2ebf46fe09e37ef21bb6f55d06f, +a7c038073d2520020120ee8094c80837947bf3169081396751029c159f11b80b81f11b83168881f67f88855b3673002838069848027e180885bb18802abf7233, +e20048091840f5499e8c738f54024e00ff870348091470730910b0f43dcff42d0254023a0062064848090c70733a88f3bf3d37742e00e20820be8094b8a14127, +3698f333ff8746c848890a72eabaaa0c0498500295f58777039a8d16806939684809202801d662e8831f54026640737b7d48890c2b813360dcf355bfd17ff087, +9786944003592fc17336088e7b8ff45ba3bef56b48093070c002501f83025c82bd25b8ec5be786949468bf4687f33100689f25a8737f108702c6068f36d7f331, +617fc08594f8b29194308e1290458e4798468e07597fe885f55b178694108a129628010a7cb125685c822df787634809869430b93627bf1fe0f0c82550de5b67, +94808512e0ca3928584b26083c7f108587534889f240b93c31908317630294f64073564889ec18f94cc839c90352787805bb752f17244c9847c7d72803c95b02, +074e7f308494c88a1941ca4e378fafa586f44826d8f45b27888494408691d74801a32cc1b317787f44bff54b4889252b30b395e749d06302402680777fe88494, +7519f8fc28bef53572407394112413e2488939e3f518f87c811f64023fbaf53a7fd08394901e5e87a48d32b04726b0758494209f997703791298bea5af915b0f, +dc977b29a0fdd149b802da9f1d5ebf011d5eb701dccf777fdca70134e702dadf0f03da67f433a801f433a001dcaf885b26088c5b3703da17c00838e1f519f8c1, +019a1362ed4fdd85fd0a4a7ce007fe80db077f5640731fa0b9f521a0fd534bfc805d0f83d707ff18f0e70a7fb08b3d0a6802da1f9ac43f7d7ccf87892660787f, +4ac01cb863eeab32c0cc1f9000da0707514219e8804772023f5001b4cfe0919f44253eec07feb69dfe5c963f7801b4cf01b46fe9243ee80701e407fe08c9ada3, +02da401e686899c37ffca1cda52332d03b01e004e49ebb68406d802fbfe50738aefd018212208fc270cd9cc048f3078acb78a92e9e91163290c0c9e60f3c00ed, +4744008019a8036c7302b6ae1fe403dab9953270e9c6201fda5ffdb80c720035acc909cc3f7ff0ea90d2026a0a1c180102a07d34070084930c943027f0196e1d, +33b8156ca066480323e0016a018ac1840d980124f804501a0ba0a014a482c38b02438fcbb103da07b98d7440e640fb70603fb065ed2feab5e0dfa5a31f600617, +be1d21488ec4648a009e9b4ce80f1812e9fb09802720fec4d00a41a10e230493bc664f20df318214ba32214804c5801118c10cf084b6490964c01e3d818df00f, +fa032290120cc034da1c65fa414fc011a5e1d6258194109d9420812653020486000486c800cd3981f34d8194f0a02653cb50ce1bc87fc0107fc090f1f9032c70, +7071b9692748b4210fa4613fac8650e003cdd0010d847e40392e87079521ca6101316403c6100af8e017428102d30ffc30180489456b736ccc8002000a9c357f, +0ee5a4018318ecb8f40fad0697b30681e372db2025f0c3bec84386580fa1c00f23a03d64115c0e1c7c0022968374c81075100e19223984021be08650000d4044, +2b310ac0bb7e00f37e80f2044903f88910e94be4300a049e0aa0b47e00f20489f104c97cea4bdc30003fb122d20388784495d50f1c9e20515c34480909e0273a, +097c9106f425c028b9373007be435e6440c86902208031b8a00ec081510013a210050e8d00c87d252801f16578593201a4bd7e300b52c203048903f889f5300a, +b0694b2ddf2d824440a9fb513e16812846da2290048567773860202c825260d228c0f816012a306966102065e007d8a32fb299af48823e8a1825cf550c829131, +d6810177602d49818ee4c53c359e6263a4804604c98bcac963c3edb9c9371a730153c5e47e1be37ac0358b02b66e11fc2dacc8019ec65d7ec0e0921bea590841, +23e34a1a5a6e3d0140f42c022ba0168ab002ee402f83095209724a2e3eba32146eb6d53134b001cddada772b6d4b863a9a2b0a289e22604502b308d48068905a, +056313898de809c0e9242fce1001001edd35b51a64cd490457db6fa8232f2e993d3611af351f49886970194c8002cae98f3a26d5942dc6052e01b004389ae239, +034ba1393920516d00fb63b2503e107000b52005524ddda88e7efc8ebce0347ad241f2ae119971b22916de6283bb8f1ffb84f6f0387d350cb1b6a150505c9b57, +291897cc22206fad5b0402c054098039dc81400013a640ce1881f8f8077cca3e1da471294946b370079024b388d4120427614d53c0e32d8224649de175e9a05a, +74201a8ac1895b3632201fbf042e28025152b0f9e523014037ae5d037b6086120384c3052413bca117abb24fc648389164270101a5a40d10ab826c11187005aa, +915f1208d6a4f8880d24681301000e18405499915da99d5e307504412b130054a139522b10c43700b01ca7a108ba41e13a883128653067213b6021100333630c, +1099563311b425b9bca5f450543d6eec5a205b762f72a907a111e17cdc5909001a710323c18c60838d388191e0da84881c35e472746fd6496f8cac7c28826590, +37098586192b1bc10512e6c21c09e012956a67605a0283898121300474c048e88222e804c3840024920e0480317025b9436486c0b99c08dbb4032301c2b94b4e, +73660a07a50713aca9075ea66a10001dc003c2e1c5580196543d9840325d990ba880ee530482402d13c10554a131f062006006bc571568559dac02a9061bc48e, +04e00830811e1003659301ba4384392b01d81f744533c8cbc30c29a3d863ce8ac7fe8122505d2b6c2c8ea72bb1262bf04c4d05005c40450900425404726067c6, +9c7cd14c1cce9fa081f50038478d0b2383af047fb6a36f36b17ed8cd88836ec00913980089b09b7c600d7293e77cb6b63001b2602c81471360cb8fea95734300, +280150a0a59091047607cd1938cf4a011a63e534397db304adec703a1ad16941d02139f38dddaa9cdcc89b7c116e1c4ed11c4e1e732cc90e38d18d58689c4d20, +ffd20c524d68323c6af21cdfe3027a5d0596a7946903ea310ec4b3e79480842901211004702713c8dbeee439bdb30450d30dd84edcb904c2996bec97e0da22b4, +013c205fcb266b92aa7b821e2c00ef120913a840ab72016c190889201f8c4fbab08139200960c2a13283656801db33bebdb264ba00cd505545500074e1db240b, +61c2131010a9136f151276028f8378422a9041ef6676ea9c04dd2204e009540108308106aaa5064b5b0c0013780243202d2d81e1884dad19cdd8320092801378, +7b9428e76c9c67b18a45d467f4cd27a001b5913a2d66e7fce655aca11eb1863ed31aded0c5a93fdd554227c80c3d3c9a52a1ce5085cace3b364e28f01efaa603, +10048e00c5b497d2b88889c0110c930148a21294023c121663a7a7b40f28c0058766862a91190a32191a7e94e8ea1ca2e91ca23364867e87887e1928ea169428, +237049236922e5a424a50304000a1401901e4800804837e548c9c716c9a34da00249c00a14d2430ad18510487b0e14906811e0a313c1b7fd031664264e795614, +01054a4c71e92a25c01e750cb97496d27421c8524e3a009aba49cbe610b0a5aaa5024c8090b684513a06fea449156907fda82415a44dc09204400a140122204a, +72536f9a2d974d0495ca025026b5539b50808f4e4b44ea3ceab9353fdd10b80210a002b7745d7687982080e33905a840473d521630873264a59d86f1b8d11814, +ac25020611b6ea143fe1a865003d5be09dff127756813fc381734a7334e93de5673895a0e3740848600a24814b8a4e75404d8b271769a741f8a5996985845301, +95b9618297eacadcb7c252ea8414002c15005bc065218297260d8bba150e5e486c9312d01eb16d5889600188860b16c78a0a13b68037fc074cd0a766c1054453, +ff00116c0394ba54997a847e101730892b836d5307a8425511e437a5aa529f5d1fd65d01e20252130253c7a502851a670235a653b50c4f551cf979315c20f020, +a0c793095cd260e948e5782b27c253e8a9e0fa2504a7dcfd74922413f0b0f0c086089ac1303100b598038f00267081888ec116c0344bcb656b2421fba941d5a3, +d89277c01e7101952e4bb3ba15844b0b4e2bcf8ca938345913c1b392d5d0fa4bcc2a418fe7ef5498ed2ca4c1520054d557e2d5c13a3b8fa73c1b2b15a0029095, +e7b0536572228885c974b4b7c61f1e865c8bdacdab32856002280c116cccb0252ad67007e4c05aea2a25500b2b737e52c105d456d0d305f28508f059d8f28f5b, +41161131f4157009011154cda40000563a3bb4417cb3af5c302172cdbdbe81f8d401b56004a68e3694259b041a70011116843e72c80ce3b51a6942a7088ebc8f, +bd00c4db342236c130c10b2c1db9461d7cb93b2aec5ce35a17c8ad52e04e7a01c1a21e1f0005db4760f9eb9281b06166045f4034ac82a55358023b3be486d340, +6303002d583a3f765ca7833a7e81d981b22de01e5fc78e65c00fb06ffed50508c6b5dd1067f9637e461d4900bebc212540043d4034c8902d22482f706afaeb40, +7052c316111500772903edc30b084544b0493c9375cc40e7568d20a832140e16734d007c01d3d9060d40be70650709961b09005c4088b8d748498085700c4495, +4f6b73f610267d38cfac9170b3ccb9355dee8efac45d030e00a4e621b89f548c797ff6a64a80da78bdecf956c400bbb26c9f3d35d7f10b441626a059c1c833fd, +11017b6cbd6a29fb4129633864663cc1b6d7deda19b6741ab33b60ad56b591aa736b2954d4e6ca7c95da534b21af478657a814d937ed873f0080d3da2616fa69, +e82930503da60ec35cdbee18b7cb66765c6a489145fa9461f7363acc08c3a9002d488efe8661343939223862e9340e81dc74dcbd645cdecb3ad5f2396629d746, +151e02407027552406b989dcb247602061429210b80045eb8030f0409e0ebac44dcde80e5ac7d90ad3d28228be096e95166f9f235c3804107900ce6948bd5bb6, +b725402954f54b57e007e717cb6d523268b69be6d4f4cee19ca7d046034ecd910a8a1981b63460c925d7e46281f90515274b44b60802c0026ccb082dd2cc6c1a, +62c05af2d36462066d3bbec216408409c199085ab63b7859e9968f43a00490ac1ddf9b041db243f603eb0bb0c284a20bcc30906a40eed6541576b5b82a6eb761, +a2f8f41e125eb22b5e244a78a3a8e2d56166b5a1c4f3871a6032dd8049323a8ee200cc4932f1852d6c9002400cacaa2d445da512319409c3dc601bc894645700, +6502c0677128243366ca8e07753bc83a4a907d2b281d94b3b1c501384928685db5600bc34c6c5cbafb30bb03e1105400cd768f6622076c4a59ffa591e1395c56, +b9da44c81770dc81114c5f7070820ac17d1205120302c88006a980f9b89fb284129b527e40cf1800089b243479d22c58600ce4043419a58ee061e8aee2e9ad02, +6ff37dbeac6210e15717bddf6a4219c2917e0901fb3d04db85be690801485f6b79dfcc117e1101f92801f6d5bedcf722d1772c0502ea8b0c1a4506a080f36d3e, +cf2ff51507ac80fd308002bf2a25717f9c047f2b10e82903f2e10f12a0ffbadffa92034ec07ecd417ef101fd35c00898bffe372ec15f32105ff49b7d910137e0, +83818038c818f957053b1800f4e090f0e0ee1b804f110966b09288c14e62063bd802675f71400b5e94394ef092100729febf213800df01a46e1f08e02a30c007, +8c015c0508d0c24920c252981cf00233b000274c0e52b03941f05982c048c90c43180c146130708428ac82d9af38a00700c60339981d3861011361194c831f70, +51c8852fb1197084860b5b6460c95062110b003310fa0c8188f9c33148c44a98096600641982286059e40a7fef0020868f21c8026a41fc6638f9fe00d0630644, +8148cb058cca272291003803f0ce1000a008445a2c60545020044c9a3dfb0786666eaa5815c305430033439003d442098f6f00260397f80c862008186213028a, +9c0166bb77d4b19e0c4104500bd9182617c03582dbedc81501306b478099c1c521e8006a21f60a800d5cb333000806823415a12da90323ccc6837807445a13a5, +85b91b91402d19b270852f5c280487641330d7c9a91af151a842f014d053bb3d54b9a54f5c15e89a27e140a9a4f33187e7340c81f8fcb7384d0ac4b8945dc75e, +12267c6377bc9c5c0b0032c192915a25100da4b775bdb1d844cee9e4340a81333bf244b821cae61f89e6c3412986fc3889cc150ac1acbcc81815b8310e2207dc, +e10d2b47a87dbb959adb272742c8fdc97cf2004439e6de109926c8f6d693576e90698710719137d9b666ca28d380d9e100984c2d8f327e6a2e7e02c81941d904, +3a8360e9f0a742c09c71d955fd72719b8e00083875f92f23010d14947d333418bb6ce62100a0cb30551d0260c8dc5a625c808b39a42450a9110d5296c8ff6dd9, +38038ae30dbc18350a003570633a1e63caf2569003e42730b993329310c583c4b0959377721c7b0ffb38038caf1018cd27b3060bc15bc84f5555d54fce4c72ad, +5b96caee46281c89ddbe5c743ce49e326f45728e5a6159aacefad37b915df3ba9c19fb0f0a411518230935ae79f131d362100d8442d005c800088808610215a7, +8c107991166468c8c96296d8f1aa06ec399e28328309cd9971372a995a2a82704037c5ac74c06dd26900773ecfe2d9e8dfb930c3c85b3b6fbebc1bf74d0539ca, +ae191ba8738580349156b97ce886c648d0b306545621b000863ecb662116d201df22b3d36ca09f1b13d4404b2c048feaafad210e2ebb7107b51fc226c9c7b4ec, +0174b4131c097599d202800dc8e86930e269900174f45328b48bead130810df0612d0c8469f0017430170e00c46b09d9506b2da1ce4d831229b503f01195338a, +e3a48dc8e9619b6c4095618b0d08ae7b11826860d2762221221a21a006260d64268df111826b60d242d00d4c1a98d6068ef68255da48cf3f0d68e37f300d1a80, +3be52c0f3527b893d211041266bd8a0fe65a65a86044ca6c618025af3cd261a6034644c490493399021757921dc3756499933621a7072e10603cf1e9d7e1a725, +adeb68aa8df490e9c02328cd959ad848544f8719bcd9aa0156067e9a6fbc2822485b6bcba320939e9f1a46d044ea0605da0f756cd44bc4496de0d4280220b269, +5c686cedd5ce809de5256c25c7cefa2beac08450d23e70751fb307a2b2745b0890e96cdea975cd8eb31a6b11a38aaff5ac1f75773593edc76b5c8110f001b520, +7694d99d6aacbdd65d1702afa1d4fc7a63d23a5f4f9d10e94bd7f62b5f871be082b2a633a8fa213bd899960f420005d401479c74fbc921cdda342a24503fafd9, +da7e10e8d6753aaecddf5e4750d6d7f3d6b47cb95a339a8aa95c235da8d98cc372a19d3621d06bbee04158136ba74108f2faa9ffc1c25936b60e33187ba93ee9, +6820be0564434aaf7ba016e0c0d0e8d700306903f01f0c02efb08142dd7b9cf5983d2bc3be1db03500d1da513f386a9d2ed8e6a9d975ca3ef553601d67a0dfd4, +d4ed4dc4146e339b0418e6b3dddbc5a6255775dbfc4d6e2f801b149eb47d3b70dd6f60ab6de30a8323c64fe15ab7b7a2792d46e0adc7b2167125ac961ed77a3c, +eadb370e764fee2ff5679840b015418c72421cd81d9a5b67b8205ab7ecd9b169c578b2b5f64018042f500b6fc036c18130c3560c021706c18faf5377a5d46f5b, +e6ce8d2b8c28d4e66cc3b03810ba578d1b3a87d318048f40039a97ed4a968d0582263946c6ca1b3875d80a86a3775b6249c434e5764dba496da961584e0ed6e3, +8a2b132a87a87f4b857483e6008b37ad6a1f5a032379315618db6b0626c481f60d823e10ad0517eb1ccf212a407200a51c91746782486b44162054dec01a003d, +608203671e022082a11b4f43f054ddc2af5d88c396fbbedff7a8cd6b490e14aa108001f2f83a2a78150af80f9203a2670bf57b58d31bfcbdcd41301eedf4fc16, +538a985ba960234192e52457ef6aa1a68d2db20192801b909c0068039e1ad40c210eac1aea38159c200740d62030026a220a2b400c6420984b5def65548cb475, +a6c3bb87b7c10ced20ddb8ad1ecb01b728103ff862e60018e798905bd6e5d5f7c99a6ddb8f14ce92d110ca386e0e7f351ee8dfdb6e10b4009d6611df63c3e100, +cd7d23221b34a8cd86500b6b808f45728018157b34071c611678ca1c40032d20044f44902b9e426e1b36007ae640e81b808ffee3ac390e7e630eec70761cb6d4, +71a016c5e9803da2f93e88b4d8c0053c979114203a40c76fe08d33d32db60f10a00371e71f088276b00e3dee51251e4cc27656150074607473e007d1813a2708, +1be955f5cddf9b385377eb5add40839b43ca64e3e962edcd07010c215e0b6fe62f58d182cb652f84e9d8e47e59d42ac80e05015a0d5b676003585a10d083486b, +eba0809c4606761acbdff95bdbe652244e2d41a12f8fd21cf25cd3ca47873c7fc8e19eba346cc6d1e61b2b6b27cdad5521cfed56f11ed66cb7df02408f3b69f2, +4070f99e1650d35fd0bdebf10f87096ee06938bc957b3c412f46cf4dcb112d21e280066103e4837e7120e4b08155c53a3e00c20501920b5b32e7d574407e0600, +68402db88118621f1bfe83ec0072b8e5494f340240867bd4c5d801602608f06ba793e642b8e102e45d4b956a6b2993bde9a7cdb8d00ecdd64c1d7084828057d8, +03f461ca0a3f41e0af362081b28e17a001732e3d018015782136e7f0f606170470d55ba220d0026ad6df73600da40138f03d41f0ae777aebaaba19300305c80e, +2000404002600cc5a809a11001e084395041051801ff40c2b70e4ea40068f50f52400a20060778035018001e635b49000a0300090301208004d4821c9872bb19, +0398edc11db75300b5b7f6ccbed901c0014a3b3c38eda97d05040062608cfb402b8ab589d0c16727d5920006d5ca1c2001244c87da2e01c8d32616009c785604, +01130bf0fae02e9c00000cb181600afa67df07407eff07a78a4b03e11418003c907621c1db29c220e3123060eea29d000e6bb8f31be38edcbb0c003ac644e8ed, +d800c80a04e5402d884047938f96e0d51951a34782f003052940077721f00882ce99827570170a8c17809929700777a1884a2dd404f878703553700ff8428097, +008ebc942f65592aab463ec69f1a2125f885bee3b94220d841205870610bc6ff1e26e081d341e3ff1f629e025c5014381b0881e01bbcf818e081a4810724d079, +72e5434196bf032d0b5b79c06ee10123734e3c403eae7c39f080915bf2ad60cc4fe1cacf82312f161e9f0bd40232f9f1900f04bde0c52f1d39f7081f2fe5578d, +17c02ec9d690a91b0248015c3587048031f0f83beae4d1b219b0150d800137c01c8b0305bc8166a2814209572ea56449c70768026120b08c3be6de9a8cc027f1, +7a3790eabb8dae2eaca0d7229820029cfe7186fa1fafeb0fff980ff44fe0f49ee063475e43af362927fa43995218661e7c5a39c92f75e5d01b6008789413b038, +df8240700c1242209841b57f05cea0dad5fe1328836a7f0a47600caafd25400630a8f687801854fb393c87e8000e2080de08803ed80239a2277983bbc8faadd0, +1854fc705ff1c97df31282309803fd9ef79462e10f046fb07b5400efebbdb5903dba4705ea9eddbb1edc8b7b5440eecd001da403b74705de40076682da5b7be7, +60e71380438002e0450d2400083000c6880021801e7c99600800a30800aa00224601022004230018a74600a8434f509e765ff16f0126d823c53ff7155fdd57fc, +18401ec881ec400f98f04140010ae00fd68700346700c84f3a508ce750f59f190d2afe2f00052280f87fc01a287d0860006a80059e0335a80104300410001828, +f12fe034247e3639033699f84d0894e240e17151720d10c0c0160491fa3ee43fa00b16820230330b0701f98150d88704e003b48f01f401dad03e02b007681f02, +e8009d601cfc82edc1843d800d34c14222d039f2833380cfeb201cec66fe0099250102b48192986c11b6064a020360031a800a699082a90112722e1bb8eaac00, +0808fec37f7b8c804cf47ea1000954000e1c9e79480432c0fd6040f493fe81b084cd7f863b7f1a068199b8fc4b22f3870887ec7c08d0082431004ec13f88048e, +ff5a06f70f0180fff8fcdf81f48f0d5800dfd3e0fcc7c246600140c05d648c00408036d1d92702320b101fb8122838240d8033492303e207dd4fef1782de0700, +023f40204e13f126edf63f05b0ff4bc3995840818ce1bd2b000bc30ec004900342008409f80060c0334c063bff2e21dfaefb4f63d0ffc8850000f96f21400664, +bb7f601f4802f1019c3f20f00f8007a4184000203024d0558013c88160eebfcb31c118bc9a362101cb0033172e3b73e13e00b3330fe830fb8255830c08000b90, +2c7010d102b94015816f0700e001ac40963b40200240014307fe84088009f407801344812d900040072405ec9636c100803b2000e430fb4b147025590117022c, +0f2f08efbcc089a04790040003080013b0cb2e652000c295de00d800068ca15204dac007820d680353033791810010700b4803cd4074a099e10bdc0211007480, +00f8046f1d7240e6f0078c3528c1ec436da556a90409804b2b461054700421410ec1441026f00370cd2240ff0f21b9033000464072605be157c10b1081ec8300, +d426e6008fe40f28a4993308874b071ae00fb86896c127c039e0051043c83798812d20d24207da80240f3f60fff907003bd20043af0580241a05d1300ce0fc63, +c6941a0420fc682c1100fe0081071078379203fea21184a84824b0288aa0d8e07430df01048880dac12420d272348497a0c1b5e40f507e963000012720d22211, +180eb0e9d2b30f7c660001be8f8a2122e10a008111a01e041ed47dd2c035868ec059bacc024115a07a10a50104ecb88ca76a104b03046480f0c116401fe407e3, +a365109020089b1ae1809df09a01044c1df6a02aa905c809083c0001f38f20dca84808dd00d6041081208c358083eec2cd201ca48900812b0038000d8824aa10, +15c6a0db8dbe37b24140400bfa03e695ea0b6ea20c4801fc03ea8021886b8882e808e1b3b50305381fa807859f3f801cf080500ac9ba3fa0b56b96300add20a4, +4034e8046e08816902e4f01b08fe806180d1a194f083488000819ce72d4c1110012a0aad4271b8c40059fe8072a01e24be2803ec2a01001090a0202726836cc2, +18a80761006e3036808f090498c23f20cfb0300c0ddd80d9010983357465d211fe805b00a56a3f1a032a019820104069ea1ad4964b27d97921700cffa09a27ae, +2c05ea411c2023d1d2210e3c9240e02fb066bbcc160238e82de70fc804d402d3c3df503464330281978dcdb07d7ad0080464b43f2017a807040d77c2d9802f0c, +5e2e83d444aba80d280416c36a07051007903c0401dde70f30e1802f260772e2d2d011fa032481c583558f0aaacd3ea312c3898620e40134d54a093800f40804, +608013d144706c22034e830280067001e003eac18be80f400ff803ea415eec0fb036604d04817ce7378e35181081a3fb00b221807b1d144452806b4610986cfe, +13c7c60ba807878c85b93f200ca8075f07059e3f800ca80710046c9d3fe00ca8d1f20c63c4ca0726e70f7003ea412c40856478b147040186928cac7f410a2b0a, +7a90eff9037e31828f41a0cef903908097b7366036b828405a2e42c7a61c2408143dfe001b6b859110087dfe002ba01ec2075068ea00244839c042980376425b, +f1db8134264313a03fa005a807e79f48a23f0006a80741b881933f6006a8075b01eac1e8d006a807e001ea41aee00fc80fc85408422ced0fd02d1402eac1b2ea, +1834f4128790a20ae60f4800eac1f66636902b340016c38880361098f9032680fe800da00d3c0d2f071d9b0fa00d3c6b647cfe8011a00dfc1ef478fe800e6031, +8007ea4114c60f680f9807ea41afcd0fc01ea8078da47fc03f201fa80777223f861fc0232104440fe6003b00ce3904b904a4266bb01ed41e91824817cf888f19, +7244b57d91dbf21769171f03702a4d897be20afc8091256ce01860173f2e760ea9cb6cf00807023f82aa4c8d03005c25ea41a1c80f8806d407ea4192ca0f5007, +08812dc7139004e60a8c0a8ea2668109dcf3c29642a0fd20620c008e00258f5e606842cfcc23ed81c3c30ab04e20c6ee01d1201b7835caa349282a052ef00362, +4669e668340b2c8a61824220713a1a7700742708a06e1a1ab0de0a3b06e03b63ae0a002080c9c60f680ca8e4d089cbc096c00cb803aaa0210204203b11117299, +d141649b333419de245dcbd35b55c281300848e63f99cbcc668a3e7af10e685ee469f200cb600eb8cf2b991602a81158915e3cea02ac44203b866b5801408fa4, +c80ff0b05618a725f2e20c40820c8196c6b5a36be41a52b448146a60c82965e8eb3282b411d94a3afc47c646a6d00f906b881a630331006c018340b6ac2b5786, +2e741d7109f9490080e3c83a7a43c7f174510768ce02001a8bc731a4881c27c79d96bb91764b3d74be6ab6d01100a01b731b1702b8b16a236df404d6c6e5862f, +841e1782c4f14bd9c042b62281ad256de278d482fc0015262987ed601df3c18b46e68612483530810e01b2ce0f3801ceabba87dc914a644d380410223fe00548, +91f4c721250f30b8b8d4768d37222308125855180eb509000042726f4c14640b3fc0910bb0bea58900074037e21e9d06f409bef010a089fc0a704737606f8c82, +8e93008016331de706461b4d260070033c95a488474639d1103087fa0017cf24d16bb4942e0324e820c2b769201bc7f282f051eaba21b4015aac85c061cc3726, +844be13e08fcfa804000640053a0f9d415e704000062810180068015bf0c00b8d5200ac8012c401ce8822437ba030ee0de01045000e28b280c62408a50af5438, +c04125e4067f1044869c627198c63c0a800aca2171301cfc20103d32a0abf01f021c1a1a47c2f33093001c2a8b914233800ab825f80b6e0362a0f0c020ea861f, +eb3fab5ef6484c4344d2e3e903fcad0081732c8629247347db8744a0acea033ce0e2188f507adc1b490484b93ec014c884f26144a138e807004beb03dc3c3191, +282c03ec802aa40c401e9346d848aac20f52956425798c072a2b062ee803121752044626004800b86a18a681a00f98058b721c2e98401168d380215dc3a40d3d, +d0268d8896609bf9005004a2aa5052f7200028252181094136263dc9301a34c780358064f16a94c9b2a46b4611909afa0b7c80c4e171643d286112016c9153b8, +05808854606b1131d9264b49224034500a220bfd20488f8fe3e72085ce00cc213e40b20b5bda49df827312b3fbe9b882b718b9d0959c02d407fa0044209bdc26, +2ea27f0019002969011c89cba00059047806f09c894002390c681f1601a6f01fcf3138016c46df8245e0acf9077a22073d3460d5f39e0480928e8212a2736552, +caa110a7bc814c89160190e51f80056c292d04b68eaef2486c894a159bf286c035090e3207f849a66ca50c354e8011407fc41e5904189e978c91922abc0c1488, +c7511033f4e6801f8003c2244920c6ca749f7f0013b029595780c523082660041c1dde8a46627258117084fe8150c0a6d2da782aff11d063877211087d543b9b, +c10e28266303114842c0a684345e00ae80c0d2ac2cabfe01d487bdb105f82be904c83a6ec7a67c20fc3912881400096298b129570d14a078a0be110018017827, +32041a3313832e00e09a610454163ea04aae9a58030cbd3282798017e2458497f880262fc072ed1682a80ad0831140616807da402080251cf32a61f88c81800f, +69042e223e80ceab7a0c2ea1cb5e9235e075abc754336d325e1270282ee11d3e4bb360a1a1e47449c5bcc2ce01d0a27e2d694b7be46ce82ca825b782a0062994, +04d4824620331131e804164397850f800c40821a012d880fe18d2c1f638365b19c870f488dde4bf2063e8034526b10804ec27c5100f82e9dc7a0c9bb927c2805, +518700c002c020a81d153b0903bb0a31cc03d402ad52670396acc722cc7e8ebd1270903c5c8ece12055392e18d0000fb353686c4424ff414f03398a011887afa, +c9cef272dc30059723c4ce32403232dfe7d8cbb4206c1132e4031e816c1211500070040ea191409cc31150675e8cdd453e00c0ca08e801f8c9abb2007104020f, +4720697804408d1e4c98e011702d0580181e3e204c0cb0682acd003d06f470044853121b7f264224c714cc408d1b4214c511e038089abf454da38308053282ea, +231c083f204a3bc59ac3142022f0463a4c9840aa0c3302321a0128b3756922a633f34c3e60790c5b2436e0023e6005e81fe0036000b5e0c8b3b31c03824c26f3, +54593291cc7f600f5306c0339d863da0590b12180aeb4c3d4c010012b0255bcd841f3e8001100dd8676e097c50f2780479d9f40151c5f7886ba95e1e8145937b, +613521011df2c580cd4c7d7acd1b6f857368583b328a92b2510068905ac0cc4c942cd311d8321333da064b457be1c9ec321997d181d1dc1ed007064d5c73957b, +4ef4966313268004983a8c4d24031f500f300608cc44732269d7c4ecb407b8606800d8742771cd68172b269de40af6003b4b51ae31c06404045e074840700927, +6c4a0400e4ec2e643d220161ee1f30021c092c4ed5240600f4104e8018f2a7a2600a4a4dba0b1800ec613c0933e74db3875985d20000044e520df045cb547176, +8ab8c281614d22815a80aa1200b038ab2ef898486027fa07e069ea80a29242eca99c08d4ae3020ae2312987ffe811b80c70033b438e12fc98091f3b1d4872402, +8f4412909afe01050713c2e2bc24da48801809002380fcc438ed0048af7d18fea00fa74000e041b07efa736c4a78670f28a8195e5a317b44242647f3384982df, +d01f28841202c113c5b2059801e24e65bcc073ed241f2ccea644f022eb247c0c079e412a68083a03f8073c843d62edfc519a125593ac53f440ed5c3be10190b3, +f2f3daf6806c300140f7f107b401bb134b2780b0ad6082499dd133f143064ccf6380b8f37db875d03c213f3b65f37c2b900484227f20246a68803c370a5a0726, +c42ee54e4d8b435b8524cd3ccf9083bce0bae26b0e0fe873e36428283189885fb777f3f228ec544cc31649e09a9104323d260184680f101e113c8181bcf3f004, +4092333d001fd0684831574cc58312908b810bf4005d332913d7ec54c296b372cf7355393f4bb3cf4ff2b334ab3ddb4fbe4fa86dfb1400883ec3cfef538a609b, +e103750b69e3247d417d07115400183f3023aa4ff533f90c0f3807baadd6656853eff4482601b24e0694f1b863e080c2194aa0dda85d04806e08e725cc28d08e, +1ccf53f9c4207e01f48060402d38415105c2394a80171a08803e21ca3943c470ee5b3f430e01b43be5c4ecd71c4d12cbb04f0bd203e2cdb00fcc6166ac306bcb, +0040b984092a811b50570d071531ecbe8e4613b49431e8800416203d201510647803a8a017948fa1398242f3c67fc496e5ff0c200f2cfef229ea079504b2089e, +28ff9c37d95012cb9d0e35780a9c16eaa349008be30af4003313944d00a804160408cca807504b30e805f650a7410f980ce86294ae55430062ff1cde022c86a3, +7703000c018ca9c0880e3d44c38c940ab00f027d4515d1c524a833ece33d782d7b504c54080de76ae7e61b45548bfa41d83fa1b51a34085d8c00073a886ce0d4, +04005acbee601bfdb0ebb2584b1765b5b3317a4603d1e7a1fd539eacc766ca04c91a5483b004329316ae97cde13a42d70580861749bd0422e435f5002f403428, +3091ab23d404500b843f22ca7fad6e491270938ed0230bff039adb32e251f8c38580cd04124e0d24831506c9605a988c76d18960130d444346398e7980ab3a5a, +001aed13f5c029725ad81801e012184fe851de984b40c2f0014069f4000b2084c1283a425f80da28c5d011d2034c80140e5220cfd40352802e81d14120852869, +526d222df4483081328e4f92f9d40874644a44e6a8d47051a81f06823c801f1036c80bd3c24008269421c537590312004594e1d103f8b169c9e5cd8381291942, +4c803f6042ef9478b89dd20f6aa0040021000720a78465a84acb873cc01bb00ccb030219aa143ca8a5cc03ae194c4098f45ff33d7ac396f454280fc8e5c216a8, +d1477b1695ba85e0a52cc6c9ff5e8d81510983d84b3a104c4ad2f60668804ba1673e0d5e84b981640800885267cb74541960276f8c4b00ce1126d0209d863ce0, +85a439360def25134645cc03ee5085204b690ec8032e8a0582084008e02e60bd1249a3142f752f4339b208c6b1359cb5b92d522e6fa0558a6a8a2d1080fd410c, +8409acd3e8533915299b085a80eea07624135880f280abf1e134369001f409d6b86cae93d445b30e3850354e00c8048c5ea8c4a774cba1f508117248c6e3ed1c, +0bf28060d43e8509f41a174b87ce3f817a71962ec305406fb21d6d1b34811ba25469559a7280d266a57f8de1e04e158e5798a463545a08545c1847ae200f301b, +1a236ad460698c582a7ba49372212805ede1c2964b8057421348e82ed4ad65402069c02e9da5ea45a03412335005004d53bf72a30850f33734810c433fdd5af8, +52d2c3ff1447c50343c97b6cea3852c98e260d8812e26948d004ec9401950548bc2235eecaa58375e012d85ad826bcb21c9475b0444f54988713937598046018, +120bd9d2534ad4c54bb36cb074d572544bc27a0c21455259192f4bc9033f054aea339452cdb00c98a0f0461334f1c142d187f0c8384921a9c6a57a3022622bff, +405e4a2f7fd4eec0a9090f4807d482544bccf2a3604d380106d539946f931ea304544f3c20a9aac76841b94bc08135d94e95517b546b9335f440756b36011309, +5e82281db7288b3574449d6be2d03963cf738408009cc635806b4090c93ea34cdc522488136078f0082c4eb51438021cfc2dd54b44546b5b01081178c6ee6069, +189fd84f0160599df4e804501a3cc0156b74ac38a9a0c51246836dc4d9c20c37164c8a170544d5466d1392132620d5825477223c40b7bc2e5039bb8b7f640e78, +58075680d55dbd74c06e4a048035601545c4049603a526016012980b1200214232c023e904041e4c8cb5c30d521ce0cacb2c11a35a151fe61e528dcd315aed1c, +33d6d8800ea036fe3bb250d4c3d5f315500b305501c012407040823c01dda73294f198e42a398415a63133a95e16d6811a3cc0654a2e37d52acb5ed21ee90422, +064203790c688456388320010f7032cd5851d62f40657524d89ffad5bd8867051fe1633c01be071315cec94a6b8334e07bf5f0181106569391ded113487bbad2, +ab3570896e3e010346b3351e451bb5a8e8010ca21e9808e838ffd28c40127051a94713a7db2efa2c301d4f5449ac5570abb04b0044152be6b8549ce10af000ad, +74eaa0045615b80049a0833023862d2cb01b4bc218cd00804e9b25c3bb291fba2322812a633203d0c003b60054527a3013e8d22682026020e713001e3e017ae3, +78404da5ae59cb131530452033b5a100d5d527c51f8187ad80a60d3d3522aa175300d6c413a089f0933c4835e56655599a1f099b7f000f080fe848bdb7a935a3, +151f6549b9b52e1530053f731898007aa603ed0e56c92de6d8e70e08959ecfd6cada200f903c3e813e81814675ec8d5c5740472042690968585550c75286d2bc, +5bef4d9860139022087dee803acdff8c0fa20db8c1f60114633c0100fe01ba6eeec076f5c8f8013601bee70e5817c3d2d827d3350fe00b4100bc57b3806bf82d, +2719d1517c485356556b3689ad71511f800bee003c721ae52c1d0098a600953f001ae50aee005ae0a1820c10a1ba0304410282519d2ce2204a3d644fd90361b8, +839f43b91808ee80720b07b6d103016612ee8048e0348000b01d2fd8b6a4310814b05b6cd57e2d14cd69b80328c99c20a98dabc2062853abd00b161468ce6c36, +ccf582ad4ffdcf4c0118c68ba55dd82442562a76ec10004407ee003b402de00e886fb8d47f0042fd14c80a265398c01240c7910b79539820a3216cb104344997, +03abcc62cf9a4be0337691dd0a4821e0aa2796193d64db86aa173616261005a2631d331b56840bb00d3884887dc370da6e024e6f2daf468b83847d351a975020, +8305e3c296518073e632240018ad96e0f744b1bb6059a115814b93879d1df8192ad252961dadc746f17e3c19ed0e7002e0084ebf7e351a1b2fe85779a5d8b544, +b155468712b67a6889984b83d97723b92099b5613dd71cb6ee94e3e0248f5900d4d606d4381ddcd317026ba0dfc0d4b02272d14660ce28668a4b1f32a414d468, +1bf9d982cd7b190502da3ac7acd19da5604c49b3d42c96450d2618054c146c0e4a2bc04a1bc7ad6fd8dcb59d2d1fec80f28d57034a5157c38c4e58cf5177cbb5, +e0023b80173848fdba34da1869a1a535f16a460123229f9da0b56d4ca4839671cd9ec567ff597d763bc01af048759c7aa48262a0653e07024e871689c7121f49, +c339433f6d9eea586d95d3415c5a085653c9b660c37bc94298627f36c60578c914503ded0056402da286041653007b44c414870c3751008d52f9d55dbc62d125, +ae612d84094a0126dae020b260036c5ac402b2966024096a37b8031ca67a21055a679bdab68114a05a85611782b6b1bcf6d2c40432135816f7c67bc963655a7b, +c3549a6c758cd381868327a01d390e8646a496a26d5d4415261b3b608ecd08286b8b4294b5b10c0f7163990e36c9615a7551584c245360b4d10ed8037cda34d6, +149b5075daf875d5a3270d0f64343be042b2d14b4d480be08c69d68863930a99f3d3b6a1af5564875ee8daee00aa1569d431ae4f7bf674a89364388280687681, +d134960dc9f60e4814b888ec8012608d62b62506c54698e0567622a00c2e898f817b95471b095e0c3d92530098a1049a0bed034a764a242a28d0e4426e363a9a, +6f559cba8cbfb56fe0aa5cc3fd1688f0bc1500e85b008019401a1018c9db00c0c9160fc809b4db855afec4a0899086145bb265b635943008364aa5ee40bccd6e, +7e80e956beb06e817037daec56c95b08dc1fc1db03b275e1391269850882367fe3531908ea007a2093567f2b6ef343c9c9041700e8042a88d7b800772118703b, +801f802f440584a208019475747181e800c693af838b2591aa03a4813526371d0c188e6002548026ad05122f2e1db273bf2d6c7171ad52fd0f240815487bea80, +1f40b665621d55988006e0899243518f33497736a0d53e0372ab972737a04964995575272a5700b0270b0006005105928662ad52ab2df4cc3a208a2cec86dc80, +5182a45eda068ad555c3c3856f43dccedd694b70d5665b973401e861c910360a25edca54400baa03286e6503c27697ecc4cd62f5d8703371a052bd70c54ba34c, +15d85a5a82bef51f4115606b54816b4654402915005481b6c13a00be927117a3a320b61665257495741b235320aa9a70100018dd4f772258185d530d96d1e1eb, +382131dbeee0db3d374543795bdff2d244151869ea004736c68304a82c8b5b8f57b8a00e28323f576e2caea00e70b0481a804ed570d81503a803328114e1c175, +77bbdd61d7f91c2f6566d9b8ec12ba7162ad75210d34373082a0697655596d5768a0bda95e54812cddfb0857ed0e984b1e88d3436d5d68cf231c99d9216d5c07, +61025580a4aa03d0f308815457d0952e8078098df5b2e305d31500a65a2377df962fbb634f074d46bad159da37c2b9a95b23824cba63ad131747e5a47a89754b, +1c3a80809a27115e62039415096205ea78d74bdec87c8d83554fcacbb9b683c80e0000f6d2f09464d032e00b5701d5b3ad8004783b7349b4d49ca0c7850906ac, +ab37e99807388eb2cb2a5631d37853d48b54f80cea101fd096328ead779e5b2f29053a5d2bb57374d6404611376e54c7a2c10447afdcc094baedb6ac58214a20, +0211d020a049c17486e1c37931155c21d27f800e60186b59e2463d97a10d7c0988e8005d402d580505547d49988015b8b90200a4ddcce1e85788187b8d88a117, +cbe20ae8809fb11ec8775c3a26dffef69e939cf001f8a5e806082001482810877a599f542e0ddae27c9d063ae013500be81e415e20a28ea4447963a45e8d9711, +c87b595f506f24c0f33d4c8f5a576074c5151022445ab100f312ec257defdab0c6ddd7613d78cd4a530dd157006805445c7607dcd7f2cd626b05d89a50c09f65, +0396561dc7cf1852b81eba2cdd7720a01e0d0082d2ee400f970bd8ba1c4e021265c045619bba5fd25c86e105a07da7ae1508b5c0fa2d4a1d7d9901efa5151063, +06538a56059d3acc55e8d9e54600700505002a0867095d5dd9ca3870df7275ab810e10029223dfa660403901de62b2f201e9a1d9a25c0180ac4107575441b682, +6025b80966829f60018062c08448828dc70abb246b21504f78059e02364a00360046929e5e70aa8637fc347fe38c1f563477f7ed6e5798f888d888cd4a615fb2, +1f456d9b08bc9a13adcccd447a055e0d7c5b4c8d6e74045c1e1481cc64d348b36c7c77de15669e95809a083480b1695e298902bb2a6003a024d884609570e057, +0a8c6d39d6db42f8df71d67a83a9601c2934d85dfc776136bacdf951996501c1835d2dbe6d2098034896a80036293351887081ad05d84a7a56007805cc0c1658, +6c89053a086a1200e1fb2d1fe6006f35cc57bd6c8c6001e9da50a366f3c902dee0823940a5ad7e31c87c9b0ac7778c6f0873da52f8a9837d1f305eced2056004, +b075e68001b3061dab220a98a61f2416006c11615db55880df021f743d828439a34e16607d0dc20010a2494013b8571b7698d79794cd6805580312074f824a5c, +00648107071dd00596cea6b860d5bf131c76d5aeda0d8d162116d876e680f84dd443f3322ffe91f6a04508c41c87cb614a0b5c42f28805166105806cd895a10c, +8086ea251668a15a8407c737a294e1078009640151e573300e3025cac73ce01504d25b0364838a223960319205468e84e2f6e373600cf409144298660ec00d06, +2917a02986a532e1e6a99101bd751729a776510dc215f0d4a5338eda49584ba1d2d567f1a697b8a40516d0cfd43229878282247d055861ef5a7d760d850568b8, +b4f1e7fd23c547012c43781cebc74a8c182d1fe00498de8a2c298924f792b00d7c94aa8004e604a8657d1c2a0ab90258a033ed1f1607ff0139207e5861b6881b, +40f56d4e575019096253c7e1073488591c3a269d08004e1aecd7abc97e6984095b2a55c685ab629bb047546243f850092878a388e19c750e201148e864019a83, +0cf841688191460eb63396c7e0803b801495482559c1d82f4b8f76ea7d0512ba2702181588b062ce61e4807a8052b554b025e1a7b564164010161f94ae077416, +2db2f65e4aae9380a07dc838c9cb30fc580eb0170b3bb6aa6c4e00a005fcb34cbbcbcbbd393a9ad9f5c581400e00720b05201e78b114f68c304b07e3d3588d75, +2c7f905a400b42fb2d8f6d93fd782ba826a805d6413900cf233c9e192b4b7010a8d6351c7899cbb5175a20e185642f0d4db7ddf2e55d55aa2e855598603a4e8e, +6d930d5900108d95e1e4808c263d968e362ac86301a0160000c079bb07fb7818d8ecad616ce3834e6bd6bd71aa60dde01b23e232741ba637d4025ac036717961, +35b7b732b64a0b0a0a007cc9c90a9dc8092264ecd7ccc560f06e59df5b36f66d459e8fe5b1e4180e904c98707db51479390014f53f9dc6cbd5d6490e2578cb07, +860bc0b505d2bae438162639b505523501c65997302509d66bb0e310213b2681963c6a816d470ea8b69d607d8f69574b428d7c2b6cc6fe8178718b8000408049, +ec86599447027811f3e6c3fdae4606b15ff0e00756719c2a23e4d28b935423dc5b9c560619fc5d8b9808e052fe40a4b523f92e20bdaec2a718df657d1b80b762, +a8c5057282b3f716013d1169df18f2f20120fdf55e6e01ed48a44d19fd07e4806ddf7f2dff8d6c0f28fee45f762ac34cfe39ee803d7938e02e90033080b3144f, +1e962d393e59afe09d008b69cb49a243c22793ba9a88208bc377fd552388ace5991b71cf20e8469b6d819c270e780704bb181aff89a3f007181dea63a1626654, +48f900b636aeb00db493c8ba38a01ac80c6803c237b5851a16cb2532a8657dd1e5f2810006a0bca26334f4ecdd9533d50c88cb60f6fd2f1c01925c4b429b4803, +0449e4932fa5371e8458935ce0228a03ca0c4980c9af0ababacc086cd989b95ba07dc805d6c138c0ee4104302a2c0a1100f4b81e53987bdb48177b24172830e2, +64ff33fb4c1b7f6623d89b195b8c034a3ec1d4bd37643698a942b34fb9906dc50ec0617d50b451399270b8667281b22ae1698ff53d42e6e166b89475898e2f81, +b93660b1e5e2003242f7a5354b8cc809a966de88afb8ebaa5aac5001406a4e49453e73072b34f37da2b899b79d38a08c0664260e969dd1f2df01675e68a16657, +9974b12b7501142698376446447cc5a350c339569d9a87e6563a57b567d69b7f9cf742984017e00a480332badf822504c5089bc1d8388b1040091d45b95aee93, +598dcfb2da0eb8840bbb2c3a99559e2aef77571531fddd59d9e737163e6a9da5258f5d40f78903683727822c2935d13bd8706bd498f9d5700eb88041d49579d5, +033f0500edd96988175059e28029a61ed0ed2486d5579860c6e8977577cd82de9d38c0429b9179cb5dd23c80cdd805f265b052ec82b6f490ed6a898daf360675, +1f5aaaf55629ed0d3541a950c819b01586b895c15de7949f936b0d5f49525ee0792071665c3827f08059317d6e89e080f23eb52601d872e20318808a144b8b03, +4782ea456aee7755982180022023799b5d52e102382080dd82109a79e6ef7580c1cb759a6f245ea038a0c81360b156ed574b0026c89f0702dbcacb2081b80bd3, +161e1a26e8055ccb074fa7010e2898c2ca74e83994c5d28c0e9b4168ff786fb60fbd342b0188678300cda35ec556aad99a59bf74a0492a38373679ed30a187d3, +3c783b9630ba63465bef544bb16cdbe85098bc4e0b5e08242d3aa38b822fec056e2e87a0e1f48ee16ccea19fe8c7998320df810388ab1b5a8a7838ad2c3d925e, +a66f702d4a185f809126bb1d1e604f9e614760c0eb57ed579de5874ccd55a433091ee682b3656678386b821a255465860aaa9c732098c017d99509031a093680, +b1e4637c01a8e81f2da30803faa04b6728e7cd5a575fc3076973156f2e678167bc3638201badc74e0a4a67d8d31ef1059cb55cd967b50326ac830308bb6395f6, +7da69368d02b6cc976089e0580635a7cf59b6da55f1b747538c0d05c659f59ebd26095cdf805984269e9d9d08b245ed66aa3da2cd66ee1a580036e00b520f805, +fa9c06cf4d346821488bc21643209c2bb9b8356466aee00da0635e62a1e1df42279a88f8064080056698000435951737cb073840d50c5b4aa48738940774a66a, +c85f829a1a08a9757fbbe3426afc152225a8c101c0edb35de31d8ee9e2b337e5601de079c566ca5516d285ec530782379963a0ab0306ca5dc38cb45181846d4a, +da11458398574714955fb6064e95e784b8e868f1f77440a90b4cbbe394435e628796426f8cb3d7fb1972160080812ac3c6858f9942bde8a717b6b7f66d9cff67, +2de80de87d17dbd7e7ca92d1e20b7f011f6082f16f962f023244dfb1f907257a439b6b60dceda6ae657e7ec366e3373e0918c881ff8137008c69f9a53d6f5f9e, +195ef5488481c946a2b887067d198f8ec13780fa6d9db7dfdbead8972f1406aee04828bb1ab8ccab0c06729e37208a0d07a82ccd6234802f2118e850fde6c1d9, +c0d25c48eba925b5f9b21678de00253346a04f5d08aaceb724f1d3ab110678a5c4025e00861943616c3deb043327e0057099c13907ba836080500b7e81f28917, +e06d3053f6b700b844215106dc9254c260e9384c4d5274c6bde1041809c06a4e89e50d702003fc06fe8932a07db10ccab02ec30c207d6960e65d4e6b829a3a0b, +222e43876eb51600937addde61e0c20488f81f19639f585fd31f20a8dd62edd161578b381d0e3fc16bf2ce3a5970e946306b02f75feb8ea5090e88f965bbe695, +cee4c645c12eb1a13b5c5e016018105cf97ad54fcc77b446a0ee9e2b4282ae9437c09e7a0d6cb89aeeb394a944c9878c808bfa30f5a35fdebe6901e0b526a821, +19b6b6c686095ac8f58c9834fc8cad5dbac8e699baac868ee6a6abac7cb1e6581c20307302039b9dfa9a1106b04537408e979f9e082aeb18cc235a7ad06c615a, +248818e8a5dd00ff318d80c62e9e0907e0456157431e1dd20fe0c5ea5ac1e59555005e80183a1a04525ea329e5c898fdf8395e38af501c4281c00d4006345c56, +fa6c0ea0e1023720153ac8968f9de6c96aedd73d7eb2558748bac19aa6f6996d2c4b9862400b72037003560f47e2cfae866393af43e222b0580090b387b8831a, +9dc6b4ed5f9d8a6703a5e2998881bacc5b58a77e68ff01a06da89685ee24c3667d87463ba0310620b2f180d9f1825e9cacac2b4bc9238a8c3b7db46102057bc2, +e5a88108599bf110ed8569cb696f5655a0856ab53749f5360e1a164e1bab1763803139d186b5176d484301c0185807dd7a4d5efc1282255d5ab5db69e5b5e645, +27f28002e4186012b5b4bde8b5e38efe3ae6a2bb6dc9ba62eadaee1c5b5b6d3b4d77da6e1b8c01300021358f54b44fedc90964db18c879dcb6a520633b0aea98, +9b09d00319107eee09240f98e39be87b8bb20396f4590f1aeb282db08bf641defa9ef62dc889b538d8a86e680004ee3c87851bdc4db68186dd00e7392320074e, +993efb80109983eeea31651b2620ba5d4d9081b4a70d20c9453d2ca1bc02ba64a5839cbf5cc759d3806c56b9bb0333c0d322d06e607bc989172a1b7f38f6503d, +939b0e681f90815e8057cea63ea339e4f36601e0e60e00ce8ada80293bb98c976e26a0cb1206191089c83a2c8a2808e86039aec7a248a5bbca928f5129078236, +89ed86b7fdd02a63dcd445fe2d6deec7cbc0fb226a03b4eac46e57e6e7f8bba188da008d795ae099f6bae9806b261940edde1a0180a6fbcfba0d287c5798863b, +d83e98c9801480ad1b3f1ab75bc2b5ba46402d70596102d0077b2419c016db00b702ae9bf39e2d0999f56e65f5c6589e44829281b2aa0dd8ede8bbb1662b84b6, +feb00b690b3bd24ec88eb79513c6b6f8a30d50e09c6d53db1a7b70be669481026cf508c1d6b5f5373fec125bc0667d0bb7a7968e76bcfaaf4906b6cd36003972, +a27f684220e9d1d516b2b7ed2ff5dbeefe0699eced7789fc5b71d6bea56d471b6540f468033e54ec67727bf76ea005002bed701bf5b8bd07ccd6e09aadc281b5, +13ee77fbfe6ea2c92eee4b36631908bd701dbf50e85201bfc93ebfe1ed09936bfbf2d6d730ecc6682c5a0c867e6182f84a6560db69030cd2d8a7ca722754a6ed, +c607386dcc45c1d8d2c6c3949ca51be96ffab1b88d71993a7ed908c681800d50f88509fe6a4af80f40656103fee9447837aaab40030a9065e6b7fbdf26c01782, +bf1826600650183655a2c03f7d1cb5700e81c668a0e683ad56cd0c48eddebe31b9d35e58b629a056258c24ec116640f86d7f3ca2fbe6e2b1508da0db1d987088, +380db07240e1091656f8392d28f8534fbc40baca8d7af6ebd17098400d870b569809c71b690ea78b624d9a0160860d6819607e0180e2916920090d5b96550180, +005c63ce7017e515bc79e5639a01a14850537f0b2bc68d52ed445c39997c3d849b8175900d688d7a257089e3592be50bc6a44ae1bbf4f8b2a60e58e08ff0d939, +1d52b8d3cb567751267006c83a3640b1a0bb480360031219b6c11998b5a4715d265cdc9561b45ad27426c837488e2b187ded1167e01a6403675f0564627b5d89, +c4e459e50409b78e5d591dba777c11e700667ffb5362bb68b5472cc76534368006d71c2f5f8371a3eb1b123c68c6f56c1980d602e84c57a092236301401a677d, +72d68ba20a9203182f3bf2f09528c848b0621c049d789e230d203cc296676074e29f1027c286208136a008a8485181c662543c11af43b902662d433c25a5c2e9, +814520d7e957dd9a8f72a43c29171bfe07d2010f4f8824589908182dfded1a9c02b857a38337fb1fb5865858070246a08c1464610494b47ed5ba4a1bcfc57580, +9f3cf60dca0782794faa1c11e898d1c4140014292a5f0470cb5b82d3c81b980b745df821a53c2c17285fcae781a508e60008b019dfe66e099b9c2957f0941a05, +3c0a004faec145406860019a0794e1c242e2205ca60dfc417025e983b4c027ef07443b4182028002c025ec4a6840199c4f860d2e4e60b5b2c01528ca633e18b1, +2d67cd61ce050003e034e233a872f548d83c3697cd6773c73c074f79c00cc7724528ad3c4898074cc973c9e16525ef255a046c81b31c1a381738cbaf1968a0ac, +77e8a60109691a10ff29ce579ce4bc3b792448cd55c479a0414ea95900c0801b80b96001e099d4f26873e49c2c67caddca991f074f35c8c820197d0ad45c2edf, +37d373598cd9e50a5803e80efc5c7b703c0dc5d9d689fa1f610df86b5698f63c31ae6e3cb0d4d1f28476d345e9d710f1f9d681600d0804520ba6019e491a8019, +d37325803d17d09b0696aa69a0cae075a106ea32c14500981a504ec0971d39bad97735512782ea45ab7c78f198ffe4149bf498fd3d005e80d6808d1cdaadcf33, +748bc2a1abd0571570f07c97f57dd023d1376c1a772050033442fd739ab422dcdd025dd70096179d774ef87c178269803540300eb0f2f3cc0c10606b0991e082, +2d480d3088c1742c0086470d8807d674440f35c01d4811162922036ea27da0060845d49a05a04d080d28409e01ae400d5df2b625f7b77ec24b26a09906a21e0e, +400db0c3eb316a605ce0616c8079e47f266aa08638d35db59901b5801ac84cf000942b055a6032d2cb65bb74ab7b842e0dc006ce520260d54d0d2807d6f42d47, +0d4805d6f496480dc93661d5b36ca7412b5b00f8d4c1073675a060a91ad51fb831754dbdc9820914d4edb7f2410d787ca206f00c14db7bc9c1bc9ba7aeb29767, +cec1dd9b7becbb9dab1e42a1ea5c5df86055cf8b5bc38ca0862317b933563286d385a040c9b4e273f2e22e7d10454fb548c48cae4583a006c04d91c6dd74d9a8, +06e83a23bd409d1fe09cf8f5034900b00c500baa81f16412eb886e6f585823dd4a33e9a01b4d9b79837e2d52175b491480076ae046a206ec08bc10a21826a806, +c21893428d740ca2221e80991b70000188bbf90b4c99e3d823d8221a8048696ff66553a4bb74fa3b5c5d1acd092e66c7bd4a799e6bc12bd309ba596b5d7f3403, +80b5187bca8cf193b708764a899d73c91b8087685942a6842840d67523bd493513663c0e8885860ebd18c59c59e5cb1836c21135d219f46f647e4ae22225f4d0, +76fdd528c2c3ad73a0027172f893a5f6bd96cbb0017823fd3964f517cbed95da31cb926e0882a033248609ac812fb675a739f5bf5fe146bdf1ea5137b3ae0118, +40872c28ea633a80f09a67e726fe646bf685205f5b8cb2f64bf632a069f7949e60636e8b62a4e8d9c7bc1fe5b3020348549908da5b1fcd5dbca2400589170351, +0db8651ef5d3bd4ca200c906ae417fa039e0963180b1f4037798001a5807fd81878a168073975b3e03d234307d3c19d3980390a06b0038494cbf744600d20273, +b80c0d00e5dd275fe0b2de155050e3812c1bb0d8cc392efb359df1490372e17a183f632048037681936b864675f7dc4bcc0409599d35603a8709b28102c31fe8, +6d8c08ea48619fda58da9b761cca5a76df3cdae980a49d7f1dbacaaf5f5ec4d7a1a2676f1fac77e7520160766fd60080c987020d25cc90efd5d975afe666079f, +64eef89d9b40dcd73ab6880c6070e75f48e8b201aecab599d14cd8ed03d6c11a016c9fdb459bf1fd1aa664fbdddb0fd675ad5d60efda2782abf61be66a3791d2, +77357384360058200c708ba27da0af9ce1df80b2f04f6f0db8cf876b080001c02c943cb20195250ddd7277652009ada2e5e47b4fe1451581e2c55dc571dc5775, +a1bda91e517c872b926d40464b03f0ebb97831c0885f20d6e2d39e3440d04cc630e2f71095550cb006e0d38f903c200ce0c5d806849f3480ae78427fe354d630, +3dd8100b0cf803332d270db854c216b8869d6681604db6810a79403e696a81f8b00480d0bdbf061eade305001e1e26309af56ff0c5b98dc11e99951e925f03ab, +6d143216da12d269000d5007265ab139557e7770e5efea8181ad4594f70530885d145f20bea95eac33a8ccb6a11aa0e0a85eaa811ba26d153f635c6e8c57fdf4, +e0061c51f143f3fa55bbe6852f913627deaba1daaf50b2ddf2b496d74b2f344c989783e380957028df45919d0ee8300295438437979141952451e4425b169725, +0320efed1b26e806f8056aa30520a2416b69e709f67f000d060d28bc0bce24a3d583adf348ba81c986c688905e3be8acd180616642e50698220508c9631be8a5, +66f006db67dee8c72566896ba61bb88866813c8a8626abb0b76e8c0e7a837eef43a1e70ad0807058ad0591bd35e263098025fab1cebfbb81209e8cc316860bd0, +e07e7ed9adc78e7ab36b9840ddfed782781a4c7891e0d0e95d8c712d2bc304861b3835c29935f52f684d07591a4ab5c0f8f81216c0cb878ff60db99086e8cd5c, +d6c41b503dd100008743300c0a1b4710f3efd0142610ebbb06d180aaf5a9dfe9dea3e700bbd21bb8aa37b869dc71fb6a3da8dfa80500a85e0080a70f787d7a55, +c3b0a7033e0059e206fc5fbbe05b970c63b57ea7b75bc8cba8802ed4b86098a6b5ad654e52331db92d03ce0b86a9547600e038f653086083ddac47eaa77a9618, +918509be814cb3c9c016b00f16fafbf3c61e9f5732eed100019a63e4d28a332590e37e3e90f33f6d1a40801e20e5ca6092020e39cce07fe0127aeb2dee7cfa51, +8de9d9e488b779724511697707120591f7c14043addc5fdee5241bd85a0edc2d10b8e00cc870c360ce807856c8656ba65c03805bc083e50ab0ed13c805b582a0, +5f9a89f6011c3087caefbb0712a00cf8d639036832bc9b6763ce1a8f3d1270c0b1001cd0baed83e08f33604f9f50c1010fd65d1244fe0602913de877123c3e97, +42d8dcd44c1e8359260a107060db390368093265fba0c16f581623ee8a017f7122d95b1c7e6142294fdc398db602774e00013faff893957ace807dd375657d0b, +7497e50cf004d674d67495e50c6003c105d6f49ce70c20055005d6f4d0e70c386b3bf1d77492ea0cdf6938038c0f30dd41cca8a040c18312e100678e86000c00, +43604b53f35ff33973a00026100752210c01294da961008e39f3d59640ea167e053b15806d8c2687bf043b859f3300d847c96f035ba233e047e80cd804d6f4d8, +82cff7d1067d3fbfd4fe0ce0a49d0e2395a88584a27f9179028db3e22a981dc6073eae65238d4770080714e185a0ab0be9c0203497d30f26d8cdb7e5ce80ebdb, +bd882d708069a3da80b828dcff6e8c1b2d620238d9810f100c7f5dc75106e29b4787a423174d0424b23001f221449a7f886f9a327c69cee0caf074c301122a1c, +1a8b7ffdf945a9c07c2b94a4245a7f0a220348dccf80476972a2734fdc532ea5c8f0226f582d5a8bb80d45e8a5cc27dc25dca07f07d8c756f002b280bd229418, +cff87ca2a3d20ff8f4f3334d0dc2d387d9925a62356add0df075c0f469073c03f9e5d58ff4e9b18adbc9220f188b41987c1a522297e892af569c8a259636301c, +f32eb60bde3f042b1e16fd7080b285212ff49f23443fb60829ee1c04807bff09ce70102a7ac9f7a2614039d9222480268dadc5f0f0f3a587d92583dfcf3f0941, +fe961a0090d5e8009e002780b6402f38026ca921800a480269029e80532a9628e407af63fd36005b022e300324e89ca03860c3d7881308320afe65803b2b1480, +d941ce58083601761382dfcfaf5e6f8dc0034edfcf3733d0f9b98d999f0ed0bd8e25e26e9f226289da5f27388022a06d40e827fa8d7ea49f08200ec0569c8027, +1ce3ef1f347eb4dfb382e22785ca89ab081f7ca95d0822fe7d873e3fc22facb2f9dd1bf928e1e7f89b08d0ad522ba1d3d2e4f3e18f7080644b7a08f9190e439f, +f5afb234637fe0149f8808646182714070a0e087fd117ed894a1b8d42afc79971c7e8e5f7a18cf865fc6fe31a2ec272308f97f8c886522c8ccf0f82782bc9f88, +1ea1f97146d51f77cf0fdefe013340955f7729fefffd9a8d7e3f2720078087b4e94d239cebf353ff30fd71c53ad9aede433bfecc25e0df70e60acc8031403458, +fd85f68b31e0a77b1f57148ffc1f2cfc4d7195cd80954db773421507420e7320b9146903c2b97f3e084439c61100cc01662da7755c19b02b2444e1081f610335, +d3944ed4cd0722ca55124809e9cdf7f3c8ed730271408380decf382c7da7c10c34fb0ff8ed14c6f66cd6cef7f3d3944e1bc6b6ef771acc00f7fc833ffb0ff8e3, +7ed63f7b5fba0480cb873240c70e5bfae9bdfb439ac1f5b62f032c32edb1316a7878f3d786a563fe600cfc8f79dcd6108b8e2b280384cd9ceca0fe1c001ece01, +e97fe00ff8177e36a5d121e3e0f3d98cb17f8e7fed5ffbf107340874c044faf31700d08107a27a3972e70aca009cbfa0a27a3907c67674e073007878f3e3860a, +f4894fa0bf2698007420df29035081b365314865cd8f0580ff647440516d0d82a181f8026016b2880091c30161ae0cb04b0a968dc26f620d09fe400776944a1b, +843e0030073a60a080281f08ca808c7e60795d8983f263012e86091d50545b83228bcba0668c2c727bca80867e846600cb59e5008f241de01d50545b8360397c, +70e8d00145f5f7e032384b0f808a1ca082751700d481b386d62058360a3d0b7146cb8061420714d516a032a0cc48c6fb90af0b4702444e0758031c3a744051ed, +043a4eaf1ca55104180814012880bf53201053bf9d7ae00b600ff876c081036032e00f50150782320017462506580782d6c142800c980b18274565dac0235107, +fbf332a040afc7d403eafa9c401dd8f35007aa2bda6d2028f82903024a775b00a00c88025204064007afc0202762c58100096f205004e2219400096f2050048e, +823220cc0a5bd481d4027520be69d606c7264e11032ed01b6cd60682326006ae2e28030cde9c60e2e0f8acc76ef930032d3e6cb9e579cd32010c42c4800bca00, +ab9a0ce83f730273fad7611dc098d68148536336275807f607b20833e2e75d078509d681a7405f5b742d03186ce85ef335071700d601140bf846c4800bca80cd, +fc082734d601612bba6d1d48351e6048012902128f890971c313ba6d1d100bd4d7608275e0a763dc9022f4b5394200305c0bc9c52d1f4d1d0d2658079e02eac8, +1d780aaea375a06d00635a07f6fad7613b691d887af4b57581f97e2020039481d781a700294522fe079e8285fcff8e8e58079a88b2f78d59275807502cc60c26, +5f645e877620753b1d100bd401290212e00ebed0d6017a631b631d98ef070232ad596b1d40b18a9bd88155455f5b0784f22eb47520d5a08e580764f67f800cf0, +00bc2e01601d887a5a077aae89a02902d9688a0000af6bbcc2eb1aafd6812a6b91896e5b07e4a30a259ac3ebb2204026f2ec8372ea50a8bfa2c55832e0630cb0, +d6814b731dd88bd696405732c00d500ba38eda81ddf4886e29a08eccb5ecbd40b81e33d7608275e090e2ed0812c8807ca83cfb7d579a488b188ea60800f0ba70, +b576602f6207f8792b0bc57dbc750cfa0326091ab27f60a69a24a2c2627be5cfd4b0ec9f0a6eea82402c50072a3382eeb0651d9040a8a375015976202003ccba, +45696fa82bfc20878049a2b7d026f4064abd2286dc5ef9f340a82375600cc633d85a4c81c6681d90018ed7935404491d411dd85a244d1de73240b8361b56e0d7, +0d2658079e02eac875407a7056050073164913265007e00fc90012402d5007b68ee60801801de0e7b81b7d34752033b9c46830afa375a0894e1d9022f87698a0, +0aefe31bcceb681d17875173a92376c0ea481d105c59acd581c76c22706f01341e5d3629d5a08ed6071eb389c0bd85203591da81a5833a5a5c0bc95b7c4ceaa4, +10b64a1967353e03006807960eea681d803a32d7b2775855f8c35c8309d681a70077a0391300d401040075a0ca7095c791d481cc445f9b236822ecabc5681d40, +0312fc1c5c007807f8066a230660a4195ca3dbd681ab7a0cc95ca3dbd68190c3b6c95c8309d601148184ce5c83094a0c078231c0bdafc7d463bd5498601d9065, +24ee274085af2e9a037adab0051e7835989770d7237720182670074ab377c03e2057c5d4d4dcba177500fe5007e00f782375606b91346102ec834d03042622a8, +823120d3abc7e081b068055d6a897007056a230620ed19031462ddc581600c68c5500798c431400a7c228801e28a33e03160144872dc81584edac080648bff81, +b32a0d90f0682cde72fe0e116003163cc69d148101c877dc07f803517e0b2d1f2828447977ba7a89008007c05a98201ea17a8907aa8cb6551a42bd8109dc01f2, +d4691803b25d984079a0831849a78e4e0129e20355b26002068231c060cf09e408c6803de0db894e9c6cc6803f20561c2e107ec600ac01ecc7c12b30108131e0, +06b893e4012042c4a9bd71b55de531404e8d2ed64cbb4336581832bc9f566b8e36b515b816564eae00e401a29671c930e880152b2a705a151e8831bc1a79408a, +8868c600096098907d6294a041d0231e24cbdab2d00dbe0d01401ea820640cf901727748c908bc2e9a2200c0eb1aafe48ee4011345c65836f0b1968d722b82a2, +6e6e0c79c044f9dd00227e37858bf82d0c104a157c01401ee0c690070878d05588c2bc3832da86798a1b2899f8eceb0a9280c1399958e2aa019809bd82dc772a, +34d3ee904dca33c5a6e7d21098705b8c9f5605007980a81d1e90223a60c52ad012789007620caf467920131603a6d74a01d1a07aa107d00e1e08c68f2b1003dc, +fe4922086094d8ae1a8022400a90028095145d5698d4a30350af187e98801ef88f47d67202796068e930a507b8aac9bebb71ea804c5ded108040bd1adc1d4e01, +79e081f05a98f09c0120c26b2151f435250c0e062a588ce482a0c16a61b960c28e866721bd413318847f0254f8eae219897f58db3b7b5d9f9abb0dd01e46f642, +600862bbee005a7f40ffacd8009c24cd06646dea184999d326fb3a5f009007860362efb0851ee0aa95078686666d20101e3051d42b09deed401ea820fa9ac548, +3a92072a880c29134b1e3051daf554e3ea481e00220eca59fbd7411e2077b16c725116b88681742569ee2479a08210316e03b4875f62feef6dcfa7cb7d97bfe6, +99ec93537a4039290cd06d9b66bbd145a90d2840b8f281401f2d6c9330036e46177be0c69007087883ec57386c23d5ab039897b0256c53408e2f520406801713, +0178c9da609fbc66f35fe165269b2b6e323c0000e2cac2a1d8b365a943f2dde180b8b220ff8b6453049e3b0d4d4d1d7412f4dcf4556d5d9685eb81be79201003, +425a9ad82e3d855b882b0b4c1c3ce0052459d1e6cb302d05c89eec27025935fb805217037af41caaba02291c2a1c3a5d827be0d4b80c0f80ee0160460cc06661, +8d5d189186a79b3a80885c74867d8109854958695500c007c00734083d1c26d817ee20ee072e5600583a1b08c2805b5ea7b71ebb0796aa5d8ea9036d860bc200, +5e7c1ca7db05007c812c8264e5dbedd2ffe4fc99aa1500f003a45c20deaf07ec7820e26823172e0800a82bd866f04017ca84f06d9c55f6d712d64c02b24e42d8, +e2e5b6f01518bfc27c60a2cf6b47872d808fb11e43bc0be9ff5ed6e41e20a9c22c1cba5fbc64bda3e18e2180030020ae0dbf21705f305670803475c531dea635, +4f67f65a828cda5dbd7c08031ceb11ba5bc2321809326a778730a074837c07f516f6036b0bfddbcb3f4380f8e6d3b3f9a2bb9d863020d3f381fd9363fb5f826d, +e01e02001fa089a866ab52aa177d208b7ec55f7f99709d1df201bec0e5d36c0be430a725c8a8ddf57118b8200cc8f38103d6809620a376d72f1f800f3e7d7829, +1d22dc81200cd0e278366f98ea451f1812b74eb88700a0048070d4a2640017051260e160b8aa177d1448dc3ae11e02002a08f5240090014c5ef20155be6dd007, +3e2b32a2fd8f8ef7f0e9524360c086006fa1b9823060f053366200c8ba30008e828fc9075aa284ab89a0ea242b20475c0117b2c98801d2bac3966a40c2a85ef4, +812000d2281070020780c7e40094004a4df60183c03c30222033c5a0bec16664698c5f211eb5d63560dc1e33a13dee8181200c50ed476807810ed544da078cfb, +e78e0008058881790408c01c88f9313b0c0408205b48140c17b83f73200648144f17b83f73005b49882c1070026400d8240248140c04058464200148140c0405, +50c7396dd35cdb464c180c482d7302c44377368e766f8097cb0730a0550d5b100c759ccf1977c55d1908c080413f6c41fa4ac15c85e4ee2281066456f08204ac, +9658030a907e60a48c1f40d61702c56244cd410c68f881ba8002a41f2830c08090f58500199925d6beab177ea02ee307e10780193080731b51954648ca35a000, +5e6ced94ea851fa87de8075a223000d1005997469637e2a2dda17ae107ea327e01190d0cf8182bc9f00092720d2840fa07ea327e00595f080103568195ba7ae1, +039637e2a27df007e107ea32a1b47bc00c28dd5618fea47a88b8681fb4c28100ba4c28ed1e140b3700fb9dae0e68f881888bf6212d1a08c0cb84d2ee01197183, +669380861fa8cbf840a0a181000c280398ea9091f1ad0c2868a85ef881ba8c1f00de0103b6ba4a720934a8b11c0a107fb2429a1fa8cb8452501a30e0c35c6104, +0230000ca88d1800f881ba8c1fd054060324d44ad245a95eb11c0a107f20a2012ee307a63a3c20a8d7e93051aa177ea002c41fc0d2c0806781a94eb118dfca80, +b526685c08c680360406400b02032472180086070c40025200440f30200aa88d90d1c0002aa03662490403ae80da88010e0cd0026a23068081070ce0b0d47c61, +ab0ddc76c00016a05b44886d09caaa78001ca00dd482c000c0001ea00d6478c007c080d004ec84776000d46129a236ff09f207421f20682ee0cfa62c2c0b5c02, +ec5401060242001220051808c0005811076fb22104e681bb22af5cf82104861df8010d6f2020041404a215070f9821042b04004faf1ca5210df40780b30280bf, +45009105ed449a5d2ef8027e63825cf3f25b5f4e991bc5151481016889be800efcfb7520f802e481b39b81000c4837d9f0464530007d1662aa28070242802877, +66a78ec8d569f80260b98ead52061390e9201f2c81237cce17014416b41369d6a7e10ba8370972cd194c409a9d3a225796f03983e53ab64a816b61e584109040, +be80865e21e8ecf855fab57f20dc1c08fc024601b0e03e115ffb0772d52b9cd7005447213675eba4b0e03e1155fab57f829bbd7cf8026401eeeea6198340b173, +9382826f9922ee130a0a54c03ed85dee5cedc74d8335b84f4db14087cececc50e82c3d3a3b2242712087b84f28f52fa02f00d156083a3bfe831ce23ea920e082, +fe40bd92ff41d72f132042aed9423b3b7288cececcf06eeef72157e5a1b3e30fa05cef13c61401f46ee8ecb283fbe4290488e844b598fb042042ae71a72388fb, +8010a87f1c3c948681801038392bca819f2fa00b48113a9d06022521456000e64e3abbece03e7198f80284b37fabb3cbb3cb0eee130b7620a06efeb73abbeca4, +d2840bbe805d9620bf255b3502802381ea6c048e4fe4a57e80363015fa0264c7724e07afcef902ae2c7500c06020200420047a80bb00cc87100002ee82046020, +f0895d9bd38144315e2722ecbe01c043e53b18000400fb6012c510983a0c014a75ebc460736f560d0680700c91be1fdfe9b5cf014000780fd77c11c001e086e0, +004c88561f42190008316607f56400104e82ee355f0470004000b8edb9822fc0016000b82178fa017baee00b98e4938207000f010114006e04c06d633623c01b, +741c48c04e390624aeeed87c2d23a86f19000480784efeec0000b25088d9413dc0e925c8355f0470016000905a07022f8001e08640493599040013c2b7514f06, +022fa05f0cb04648dd82016000905a076e09d9851a9d29c8b578ddc5861a31134b69a811b3c6fd9c2b5fcb08ea1b1d276340c258fde9d2528c7dc344f16dc2b3, +01e0864049f70d20ad3b96bb8f35068042f9a161df10555eb5b8fb58630018006d4ef70d8ec3b729f1f5020c4682dc8e3ec0522007000280049000607cbd8074, +3a2e8e3506800140b0600018004e0777b39474fef7020e017647f302b6e060e4f6f717cac2b2302e303cb38d5e6da478b4b835ee97b3820422ef32e1c1caa046, +d6180064f5900d5d83447980e136822ef5640048bb751c112bf5640028001e087551f5640090d5cb50060001807c68f51900048055a5d58702f15a2e811b423d, +18000480cc65cb640018004e872d748a640090d5116ab7600160c69b1de442f5e777dd3a514f068006000120d5e8d6e6e6ff012f00832b3d1a000480cc656888, +38920e42b67cf002b078ddc5a2c35dcc3c2b3af4772d854aace8e866190e51258940465a360a8af08ec5aa806ccf8a8e23e52105660fcf8a936ed281c00bf8e1, +1535986043a134067b297da7a10bf83530004c8802cdb729eca5f4fb6b856000c00030210a34fea490bc7a1020e18c01752c5b555e36da80bab17e8c3fe1f7c1, +00024088f06d488e188e8262d72a3807001080c62ce1902261380c488b578d1b00981869ff5b2bea0366dfb50ace01a02ec0e90db054e56580026074f06d5ce5, +2e00b9d41e23e521ffb7b5d418790782f813ee61001800f4001ab384a3dc554ea0122c5e356e00403f2139120e1f62d9abe01c00060013858443465a3644955d, +01126fe89629364e4a25268e948794ce95793d3b1800100072d14be0815083578bad9306526a2151615c9a08be5d6c8d813c69d38901a0d4c50408c92746e9a1, +10175bf976cf96a589f89d348908269cb974ec6d83c5d66f8c07788204a354c8422430f6c426e8cc4f06013a26afbd2142d6b4c6567d489917955a043296fa39, +15e0970d13a0b30d0bf0fe759ccfd9399cacf6bf1f61b8a0010001a05418f748813ae208e768b283d5e0558509cf082e5b3949789d886820065c068052677e16, +6406000540603cffb01d068002c0846093925ab8870180004030b35eb5141300c97e22c81d0680040013c2fcffc18988068001608218000adbc16bfe446ae11e, +5961aecab24f019a1f4b8ffb44543930664dfe0161ae0b680c6803fe6c819beba000f021e4ff92693465093766af87010013029219001480c556648d2518000a, +830140004835ee8df0e906a029123ad63cb30d9d82db300360aff7770ae02630cf16b8b96e2a8972f5a4181029ff36e036e0cfc603f080bf806f22f8302f0c87, +0410a877a7e3e2588e2bf43e79202257ee1320a2134500d94f8008b9c69d8e20985e9382fb249db800401e0060a7810b0f015400268801c00120ed966402806a, +aef28d353abbc5d139a369b84f441579d963cd4ef979ff81ee135145c4f879d93ad493fba46ce509b94fac9356bfb39b26f8075e0daf453de33e993a3a51cd17, +29ea311f80d0899fa99ee028528006a0e75a6fc822e98b9a8b7db07c2c41ca89c218d8a0d69f25c2f87719114881412680d53a6cd6f706d02db84f4495a601d3, +4500f325025200482ee002626fe85ef398bc7d17ab8c671e814e554fb04787e20044b7f4b84fcc9bee93a700c41f08b807862533e13e811b1e08b80076a61efb, +20d49301a00160b53ffbdb6b04b001c0002802a4002900e8a15409388606cbfe01a00160b5128ed76b04b001c020d4938c006eea823afbdb29038ea1c1b23f00, +431404e5b121e88d0002fe61222888df8c080e024210001e0000404401c080063ad61800008206ac29c00958a0f6a8f206cb3e01b8028200120eb34cb50b3886, +2c040fc123c80814485bf6fc491001432c6224c861e54e812e04d0f0218b99880470f1e1c1820713c8d021412412ff4544078887040d22540e02274fa8241952, +843a0220848b60235c80152b91d05b0104c5ab178056ae5c2c8415c02f6e0801c08320a48a6da910b328a49464cd0e00d709105001304237c14484fefce3c203, +073c20119acabfe4d59e5815b7da46419e091a405a840f38cd198755b60fb8c4b8ab87c26319010b1cc140749f5abd1b450081180380d092a86d734262479050, +6a044ce8611763b406700d1ae4beec674ae67bee894789f3d93300e10425c1c8f84c6cd8adb6d6cccab66a27c9b45e1b057fb10d6c4b076ec4b26eedba4035c2, +1900d4ad47d744346830f80d7402f86311061b5b2882100473000848a01961d010449c590170c00ce05f9d402040030a0348c7d516eb40a7e1460b65b841c650, +d3e23f04cc844a8e1b5b248222330c1676d8238177842187e33f0e4df4d8003afee043908c00484261228a9830284d8b87031628871c6fc8cc840c420c5ce79f, +40c1202a644654a5471e70c8f9e500116426d8e79a58b640b1458211a0c0602c953cb2e9631b739c30b80b999e4d2497061d6578895004003b6a45d0872db8f1, +a51a852a04039430529500870c27ea78252d2ee6da433035fc27802761feb305ce9500b811461b652aa188c671c9fd03989b790f614090849acd6d31ca8300ec, +230849c002837240863bae81e6a22bc70038633180ca9b6e0b554a078390803351a01b76b460c7967aa4c4ea461978d010e40b2504098363875a0f4178dc430c, +ae1c6190cbb11c735acd81c61b771428dc88b7046b66a3aa968ef80b0783610c313050bd092facef2f130cfef16ebc0475e05beeb95b2ee2d7ad44818ca5151c, +f0061c74a4f1861b156eacf1e61d6e80a2c3e010037f04412fd02edf1b7323fec484ccb3c5b4105411f3cc0dcb2189bfbcb000b072cb2fd34ce22f240caa41b1, +b0c1e00d7c33c08b46191b1bfdf000132a3c883764256b753d7518ea4e10f1ae000c3cf6f41b2dc4203401020c22c134a8c642139dafd19128a98a2d41c030d6, +9a73fb42f0ba1fc4b18221775fbdeb06832168be9ced6784cb714608af570e0d372c0c9ea07979ab8d8eb1e5194014729ef3ae198c5c7293ac81432ef9be1e57, +26e239b9694ee8d7dd0cbff104d50f00dea613e00700fb04f30ccc099ab801b220c3f514c0c09516e6f88d9186192dcc143f00051830f88060059a73c83ceb2a, +4cbca78307d45ffb7f451921f61eb23f9f24fed2c0fc2590070956fdef6ef3db940f09e8cbc6fadaede1d1f7c267031a0009a2899e4802803e4c30017fd83b95, +b88a2532e9544ef404f1890100011fa01e3ca216121516c91670014421fa2f851fb6e4647736fc87037dbf785005ac6593862e4e00067961345132149a8f39e8, +e66ed3473ca4615c47d155008f5a3885b10c4012921cdf40881d125fa13958b95ac0b237ac41741494ad2982e48a931c3f0190c0fb0250000ffa4a9141893ce3, +2844791c819500b4b25301040a8236004922f03e16310e412800f8880050a016df2006c691eface3104114e8ae02f04021f1139a330b005c735c43d5065001de, +9628ab655d72b9cb24ca5c691358024028876889e621ed911104811f314011fe7943a21a06561660a352a049f0e9ce029101b4a005d17a48811aa16184ab30f9, +11141ce8f3c1180169608381c615c11342fe69d0dfac690ec60138d380858421907216b81c129b3014c31be65086164452a012b731c70e7e5efe32981ea14300, +4e23be1000c50b0da72f81f80b004c89b00cf61ee80933a5dde25256c114008e4c3e0921556425357a17e000fa60204de8423b4486c045f06089f2a0f0a025dc, +0391d4e4fc862a4753598436952322020236ca294176fa4a9024693a4b8414b1653197ceaf4987e074805b8af8a627a9ef5356505deab3002c5c85d30a40c1a5, +042408420aa725505193d364e11c2d5a74024d0160407d069b79087aae82500116d437c5ef2842881a42f0d4ae60fc47d494ea494f018d3acc823f563a150ed9, +c61898291ef2d85838ffca1d0014f7ae1933fd36b8762188c25b01f840167b7a61126a393b8d81252903a3c66ab56fa5c36681458b5d4b4c008518080016f196, +710019800d54d512e04a165c019d2b6696a4aa724a441c544fd2240aa08097bc5b9c3d460e7768b1e65601200d58c588219e0160805b4dead6260002900900f8, +e902e06010c6ef223300e88743b85b94abe322dcabc50a2088b2694255888ef065c0960d964866d4d5306f73b2008a071108b20c1835825b0894d157b008c900, +4565288fa6c5041960a026432e9864fe4ce2d6921f483284223808dece342e3f62043622b0bd25c818b0b785ad7f67ccc52e3fcca4e29826289c2da8b66f9ad6, +eae69067b2f9b1cf848135a9a5fe05b0ad0c73a8da43f0eb4b83e08224293998b95cad268b97bcaaee5a99333bd13277558c91ac66baac11af7b628a9e4470d9, +2d3500ec2a805ca000865895bef6abcc5ad1816564a0dc06a904a1ad7f363daec033b3a083fd62d115a739d0e13f03d8bd161bdc32f47f637f468806b881dfac, +d80090941f3dbd0155726015000730b4fc1dcd4a641170688ca614fe63b129c90fc200765d2980451974b781fb22f60396d4fdc7436878288cc53941b3a56b3b, +77fbdb0058787ab881556d6c7f2cce28b44733da83f746111b46881bb30c89c896c591bd8b38efdd682187e95d5924af7dfde3fa51b67d892321d66fafe530aa, +088470008f5898469c396e14431dcc70fd3772e727700110df8d497db70fe250eb6d801c5cc10206b9e4ee101cb614d18dabc83b6501389c9564314ba411a311, +c1fe9bb1d736c16c44d447dbf6999f2b2712490418a642acc0d4095209beda5acc9968cf6fc0aa1a624118cfee4e06847a86a81b28ca01f67ac7d200827c0e0e, +4fd3f53c74cc23e3f0f249b44817cbf1840172371b400718fba443e0523e86351adcc0e930b8610c9e299f4c55e32e77c4ebaa5ab28b6b8b8ee97026105aa8e6, +3919969301207b2a4c895c32bfab64c964a9dc1daa6f195dd794e28c3bed6dbf1700dad57e76de70b291e2b00380ee66c096fdc2c2cd3841e58cb8fa81b5fe90, +9ebbe93f4fce091b7104e77cfc7ac2ea4e9e9eb1d89abf04acf8f7f3803f7086f540c64066e44d1650075cfe0f2c640172f86fddcbe9644b9bd2f974263cf309, +5ddbc91941c046f122049708a65daead10987475995a5c605efe619beead5f684d05a0513d154be005594cb550ebf5c5c1e87980d1e500ea726192ca448ef7c1, +e33d5ee489081a84fc58a30040e22d5e5a1609c02af4076b457dc0f98c1f0290904119d8411a381e5cb9018019241e196d3d5fc9609f079a69605f45df877d4c, +a4c317f295eb8921024280c0a1fcc3153e950119088e156e3e4ae0241e1cc14140b61142148ec814f49da04404c37661ecc3c0b41eb7fcd5d6007c003d70c515, +0312424660d15b2eab510e08b0021732ac0e1bb0410bb09ac51812e29a1da27f1f6ac31f424618f6b65abf0c0008800c87e4511ee4b8a11d4ce89a305c081a32, +1bcca1ee848005f10a8031b051b18d015a08a0141fce422ab5bc62ac309a1b78f8422aea1fbded828eab210d248adf15282e9ed98c4128466004554198879008, +5cc12398e35f4948811c345219546373233455e1a54cb1ddb1a22b5655c4998c0801782338aa8a618af0212954e2eb49ca411984011920a3e11691582f7cde13, +c143b1411ae8d318df35243d665facb414d964b52273c123c1c0a0a344ae81aa19ac0132f6101feacd6307ced713ea53c9aebd2394b9199d01e0a33eaa443ba2, +05d0c5a761427aa11c1b1b90412920c4c83ecc0fb7f9c918e8880020702117b4ec13d0998119f8912300844b198c81c2ac5d4119b4c81f40a00d19cc81ba8880, +8540ec094b5ff0df1b428880ff7018f311b448c9e51a5841414a24890035702107823dcdbd2cda9ec5004003a087aa647c9af8d5013bbc579b1c78cb0088c072, +6603ece1155cc0836792250870a10a8c114403680f1fb6409ac71dd115c040d29acd99fdc5086ae94c93ffc523e1055b56fb09a07fc5df6f56ee255ba05f3c4a, +ae385697d584840408802b381643120c408bf882992861475d185a701ed61514fc952bb0206cd6c5c008640b6ec6e65dfdc188218cc6910d8c40758cc05de0d2, +08402b9464974185870084c28c21c2fb5cb90ab12c82cf80d1922d910a260497028d8c427f080239f56d9d44b4426620512033588b008c42c00ba8043698a02e, +4851a80ee3a18deefd01e89ce52768686c0a39c11b74d2e7002a94cc32d44423000c01ac905c010995078bad56296884c0df9c86157083347f8a870000836e8e, +642ecbdb11e981f2f896485e99c998e48585ee15420d00098c20846b5220716254660c3a0955e6e6274e8ce843a6cc7b7e6d417944c6a9418800297085150cc3, +f8120070871cdc014765c86908d4a9b31800c12820440994ae02df34000cc881c11c50ce0810008c18d82238928137ce040017089156b441a6fd74477162265d, +8919b4a40fb680372985108c62e46bada0c706696aa59a80d4cdc8011e3caa0920342aa20e8009f0b0c1a03a8b7c4102a99dc2c82490801c9dda2979c545a0ee, +b9f8d1b162a10914eda01cb4819678e3c12904ebb7116b7a01592a13f0eaabba9c8d1bb40242984044aabec1aada53cd1e5ac1228ca6b4a802a143a18de898c0, +9257b9dac10ca4abebfcd0abbbce40bc79b02b18b8ab0cc49dab0bc480569a4080b85a2a6995ab0eb0d6c746e9821dc8f01400d8410c8842e53f58c11dd82a41, +400c0802429c00052f6d5fc6aed69ab4d48374dd6000088144003cc06a75284110ec97c10500046890410ac42a3fc028401de8531cdd819009fc46b9a2c04ab6, +d0b640e2118400e844c2df04240418c0de09b04bb68a408b98c2410b4ce31d8c5c4ab6a2006f1182480be4aa0f46d2093f10c41c24aca41cc0a812249dabc4ec, +94cd1c582d2fa0078002c0a11fc9411d04284db62640464219c298999bd77a5a44b1d484ae1d02c28c5640250ac0201cc1a11c50ce09300282c9128281a8ea3e, +e1acd48a569e406bd582c28ebc9fc93ce4ad1bc011dffaadc9432c1052851cb321e845da4a84db3265445b11040149c4802100d88faad5388bb510f45569950a, +f1aa8a00906eacc4b44833a08c840c800242a000bb55813533f0955678e3190c08a4ecfa20670840025754816b190600ae96011be80e0a20088033b0400eb581, +9c4190f42d3fcd2e4f1528d1bb99c67f0bd062c28a0e0a1cac241cb04118e44140ee5ac39bc20619f5764aee66c39bd2b02eb31080d7aa446df2f242ee2ec383, +026a8241ee86026acf5a306a6241ee9260c61155812aa0a6480a3006a95882ff2da0e63556c1293c502442a400b35501026ac2040088e91c45a500fafe4315e8, +110f400aa09612671900083c811840cbf05d908a8dfdf03b11e0011c80400e3f04001cdcc5358140530f5c480acc586e29d1810104410f6e8e63158c18ef8ed2, +50f14ea400870e07b119e81515cfd87edf3c829005289d950fe73755f17abcf18cc62919671807155dc8f06954811d8c18f143108278f8f00813cfb013638190, +0641c4ac936d3221b278f271010020fcd968632cc9004c723269e506155f32260a685076a4c05848e241eee6ef6bc59d016a4a621588016a2023840a646dee96, +05aa072b873233474b862883c7fc0927f3430cb30ab8f2032ae7b22f5b3241048f472807d729ab8469285332210717262a03802a0b172b576772708c856c9a32, +e00715cf71fe1d19e11a8080aa592d2199fa19b4c4411d045a0008bc3308d8b0f3e936471518c0dd2f1ff32c2b33338f20732abb0a21ebf2f32d95477209f258, +941e94813efbd98e081081888401083878d66b498804c033c303ff0da99c061550a98083025372d07090ff680650e5c46e36b7721c13042c00a815313bc90345, +5267e98e02c0152002004d63f3356092b4e162c28c2d573d4eef343a33df04ec94cc4d9f8c04d040a815e4414d13442604d400648cc5a2ee28863fa70040efa8, +12985f1aee4f3d446f3f6734413c420608a824b840cb3e8bdced048834498f083362c274b270f42b530f58500f7534a3e934366303026935f5434ff59f6217f3, +72203cf6e7a5b5465d70b63307174297def265db842d65763621c85721dc868d05063641f458542bc8a745ff839ff625f3103dae619fb50a3861123a7d32511b, +625f58353776726f003741f407f3058032e406d67c26c75f308333685b6233eff394ebb1275090b3354bf3f34bc7f4403cc7b5498b4123d9ab0547e7c1dd8634, +9bb672cf557d6bf7005f87867b2bf644422ff73fe0945a03019550d9d2502136da43b8745af936941cf4001994f44a73dc6d0588b43c9fe96eb8e9353473b414, +778c3c8489df3242662bf667f7cf7117270b87c5f76a60d2b67143f4435065856e23c40bd0e37ef488741388086ea3b72b1510c64743400346370715ec006a62, +3f4c813b34684cb173c514ec036ae2ee788cbbca8cdff7808a677590fb7717bddf466197f8765937383d5ef1e3a2b588d3fcf35e67205071833541ac42fa01b8, +ca81fcaadafcde73b862c857a3d48aeccd8e81e3d1619a4f4655983b00991b53141dba00f5e6f594028040318140883c0c40962f74ef42c0200ce4b85a18c2fb, +99976b3973e8ad1cec0d800b8095a84fb82075bbc0376d3a060b6c0aa41f066300ac004678b98549b700f1c18085e1c8c3837c397ee75f679cd80d1503d41438, +6ae2d11468c28308eb90d2a182939f02412ba026283879081738392ca026bb4de2933efd80e8c400026a8696ceee13afab5f1e0c48da94e3385de4f891e0bc01, +2adddfa88475e5a54069fe831c648058ba9793936742ba133bfb7c998993774242b933979d4c390b14a402b7429693976707b6e3b79d35c77bb2540642c4000f, +d67f04a5365d8f0c0c38f2947f81c26fc78a8190410c74a581939fc1b50fc5a24e1e080c74650cf09dc6141cc2bc8f45f91c3c880cac16c6454e0120a0263038, +87bc4114bf0144c5b70169d1d3008c7ca97847cb007c7b0f1894811908894a97ccae3ed391818080cae7d2210818c110d7a4411bbc6f19d41c3b16680d1da440, +c0384180031b2fbc47d96fbb9f9242661428b8610cc00cf48603742307731fd1cc0436c6ffe5a8e10e0ccc37a0962ca038f90f283c6939fc49ce72ade8c8002d, +3d4f9532e06ffb6ddd1344de2f3d4647711c60a82000f4d756e1237526f498b576ff43b939396b2eb8274194424df03d7ddf6706e33a370068f952d477470cec, +f3a3c383d040da0948413b5c7bf19772007119c16a8de16963c60046df12fbc9792400ccfec5f9a9f663db9956ca0076e62f29d7471f29444c1c50312161dbd2, +d5499b3b1681c9009d682f3d6aa136810c24b180ad3193ec59cbd2bfa7b757477fccd5fdc5270b8b3774bf449400ca875f7f0940235748810009c048f38f43f5, +166c80ff40590cd854739002ade0daa1a07da88325e1a5c0972cfc9ef1632e011a80df0119d81d6e413316d31e02008d184c5f28042c68fd59a164883600000b, +e43e1e5808d018429c135f015116c1fde48409dd85c2a6ed4b4068c2504d587cfbab2e4eef884801054ab3a5175c4845034c10f3f17ff9ef7ffc2bfc8911cc57, +eac192e54207ef0f789adf1a2081b52102ef4cfbe88119430622c32d82d83be3490a10010f812f714095502f57503250d1e67a8ceb192622a8011908000100b6, +06e3181654c5b5724603ea4304e2693d392c5240a0bc16ead4204967031e023d4c890c3381cc850ebdcbf0ddc0faf710c536d61e5b55b883a3eb0b4290ade83f, +ee2f05cec1c367156bf1795c5c003003b238061f87c0ec8010c694fe304ade5f7afe8114b801d7ae01e12efc4181375581af87f9660095b0160fa22833003449, +25dfc1df2014ebc2434348106089272bc20d180e37c08b482a006443e6f2a510581e6c8c1e180b3663803890331c05084d9c2e330c510b35b0e05840358ec1f3, +285dced0b80d001aa242550499241d0df25d14a007fbb01f90871eba014a810301300eaf843e191714e80703e31278860d18084a310eb942f1d4a19ff81c6e68, +e1627c3b81186640e9a985b2a308139a175262dca9015d8e4028f1a9a099252382dba08106000de40038908331028128240ae48337a52ba2c0f1fe0af0bb7d47, +0008684a3b690dd40804400129f0049a3406e8c0ceeb793ef00049a0f108096f65868d0355fac3478aa2342b3cd2ed8b068d205c02c650cacdf0d88a9f5dc185, +ead821dc76a805317b91fd01a00180035070edee427e1b000c4810394069458135cd8f6f45ad7c5588700011c087b2002768602c96c51ff0ac36102db4c2aee3, +1a73005b188cad9163dfc4028207d38815a1f80860c5d2e38021b876dd8e201c6ffeedb519731aa2a0174947148831987803402920c6001ba544c6c812f9d743, +161b99e3cf708e74d001cd210a1ca54805c711c16762c0f5c9c0c0883b3920457c06065c0fd8880f13e4189dd07f583c61ac2df38127324635920a0f767310c2, +6d07ff94d4d2e3787dac71db6e34daa560ac83d5422aca4e4dcae361890247608e742b0a300142f3c70e211ce90005e94114a00284e6422c807c20041df0a2fe, +96fc381479c40030e1b7fb90fb11cc19f2c269488ec72103077292c36d088a05d809378005e1008e76c66d2720cd210052e342138a7d2c2ff711ac704668666b, +78268b0405ecc140c241e5038fdc03beecd02758193b06006ff054488532fc1b8e9c2ff8909dbd968b4881bd13236f24042cce7cf93aa3c002df4409349501e0, +f19c01946004b8d61148c015d8126e20656092c5701019f680a2900dda876189508741083ce001726300e8000f28929ad33e1e4161e12bf5d90127645354c8d8, +06455d09319007b0704c7849f18b846044038c07728c0d3380001f5436d040584c1ab8c08a8b67f22020f11c9319c601335507d8409c2003492b03f66c6ba9b4, +fce63208c9e884664eb023fe0af3f1076c696af1a0aa15bf0ad882913116b41d8c3cc0537983cd010bc4882c3828ce301f28100c060a0f78de34024794420788, +890c0d46f848c2f8a27f000560986490804a8a79c6005b9a0016bc29bd200650f0b01082b2e40a50488b3e08e89c811f08807d9019d6040a2edb00e80163e63d, +9c866c0500084c66e28107610338c8bf4580bdc496f8405b42647f44a558f12d1fd32e1b20151407dd820287e0414cc85b9e8014d0957a0010c6c23868214fe8, +48199925135b418106dc2734d328bee5634e03143079988f7cfd9203058009d0041f50c0a0404dc2250a803c29a018206143e90fa930083b4110a0c17d5a32e8, +c00a989a702005489320a80398302f5150329de47cc47c40f896d3886ca48063fccccca00e108856c7e500c028daf209c56f4d7ccb1f90332bf0207c40664807, +9781df6436506005dfd2079c29ab073784f00360023a80060f105372600dc44d94a80348905ebe2506ec490a600b3fc09a4e93837c4d88123a1fb030cd2546d1, +ba3e5b2c13273a51194bef2e0cc987664e02342b1f40f5f364636a959025fa78860a969d0bf90f32517638cc28f80bf1387fe6124145b2f990bd1f0921c7423a, +900e46033a9097e6e478e940704d4400de2745f0711812f0e70cf0f41f02a7224f201f34ce64b13934603507c00f1847211003622066341e31fe98d4e62a8626, +7d9202ce014200023a7820511305ac0e07703c7400234c5766d62700709eeaf338ccb376dab1e41983e209cd8ee7398c92a4030245e80984460cfc80ddc9789a, +84208032d6c1c1fb5eff2c0329401d2013827ac6fff02d3f1704200057609a4db0385ff3e32150493d8153a93609c23a25a3ce1c004160dd7b671d50811cf22d, +1a886450424d980a34a29f00172e6320a7e0a97c0313f457e0771a9ec0261818fc8386c3a121be1ebf1d9627508e36a3c78ec8134805e633074f40bff4c8a742, +89ba01675042cfe621ee851f9915a0880768d448a23a2bda1b8e952c51cb90a4e8bec47c0fb38416d040204e051a9754606f0841eaa243f385040f2208789a20, +40826e4f14802ed820325e4bc5449141dc0186540848a2278882eba0406dc9d784405c54a16960600fe15bea80843900c85013d46809bda213a0030e93a65051, +4f206b1a06010009954736118210b04824c85a831405f82008e0820cca34490c06c4004449015d545eb9d3936e8934108e27e033498c2320401d10a1924e0890, +02382083d2bdb110a33891029ce800184338e02937937faae909c8c2d7320ad0c386625e171d02a07d0428ef5bb624c52a03608a474d6131b0e3b7fc492aaf90, +2408de67e89d8b34603c15fa02cadd52d2a2f76903946308a38954483f42f002a4580f6cdd137002091818ef14a985d36125882130ec54a80a0e4627dd41b4cb, +cf3b8f42ef531e3d2a7ed2342028799ea308c26af9081c6096a965b52cc3f889b55ef92b7d0a8111038ce04b04665736407ba9d006a05770c067ea0089882443, +803e8c29a684c31c4b22e482e0324d04ca2ca45618205a556c0e4ea01c3c888d204b6529113cc1cb388400d805d8c5b084e70d324b4ec07aac08f07620008884, +26ea3e4208148a2b4ec07c3149b2445e37a030a857573d22a4b3aa61ee004cadbdb139b76357cd8b06ce803e5b8bde28100dc009c08963e3480ab581964c5f90, +2a590c16ac41b2b5933b4225b0a22cb28805e0833e611d988f15dc16da825b48f023e03b1151285df6568f8973b23856782708000a0409db38815ee02b3add6b, +b8001e0898449f1173028a606090836af9201d40518a40be045401249a3c35806de36dbc87015004ace8f3901e3d537347b000349544d8d4c92806c8fa1060c9, +7b09ca4c6600fd267bbdaffa35bf26cbbe2204f95a5fe9ebf5669c7b8daff0758b1d22ea6d8ada1782faf0a32ec1f181810000013fe02128f25acc9826e10d30, +82f971548c4a5fa88a022408a700b5a06cb4d5055b52089e830aee826d6ca9602a65b10c03a28262149bba5942d1c352a9840ff01f854d1002b46482b2b95932, +581c5f892af20f9a422a0261043d86118b60c62c82f2b008928864d083cd718a22a809e5f5d4948785a09aab726a468300d0c0b779b1f6a64da4318da001d810, +b498b8dfa7163201d0e213e49a3198802c98c094600294810253f20850c62308d06ff851b7a0263ca22880c933797dc205181c07b7e84e31e1309eecaff83e8e, +6113f41890020090647b7e1341b0047df8537510bb5402134082fb842b2fdcfd3b1eb8cb763f32339a0b006802fff1429ca0094c9026d811c7eb693cad3c6882, +bee037f882cf6305f2901708c22f180b208011c20065fc82141c1f61a52d788a313b017631056ac104bf611320104ee0c03c004b12c16dd0e2a7e50d01000f78, +20836075d1a3df83037551fb024019780b326821ca80831090201c831d910cc8510ce48b318025baa047c620b014831d00038f490cfe463187015f8984c00026, +ed2fb54f00c420feba152100cab4a962682930dd2eea54b1f6d58bde5160baaca2b85a02a7dfa429de0300a7c094f04318a0966030631857491e9a8b8b11e425, +cb9d053d611674a500f40258820b96150e464338a809fd1402d9c1be1ec9fe1097eb8a1060237379012639063b019132b484a20c63907f8c4a4a7726041d0d28, +a4aa3803fcc007141513bc0f8af0f7729a74f96b0ec042f1e84aa452e9525dfeee57e9d81db5920ef1ebd12dba4877e9cc058decd7816b7483881b7bccbf4492, +688af29208ce00a9892b7b252fb3e0ba3dc10c9603e242aadac50fe34b72b52d10cc87ab6b77e92b0f98e53dc01102000e944540392d84c04ae9965f0b8019b8, +39ac2ed31d00614b008da03d080061c0836c21bcf4848d12c24d02bd3281002ca5d63d30aa94c12421008c2aa77b60672900afa023485e9f6a02cf50005c812f, +fb1e96af4388be916004a762f91e85e55886e50b566a5f010a8022a80a05a01191771160b4e06b2dddeb7b936e015804ecbdbdb017f7f2de229cadaa7b776d6f, +47d07c1d41a5d3bd23d00bf897731480b41400290a000a801d82af6e02be9020be7421f8b687e07b8ce57b2b2201ac0801ab88be0b21fafa97112c89e89b7d19, +5e123c807bef09e641f65505bbaf00ffa1009c02f150004c50005241f74505b04ebfa480f2a602ac988902400a0682034a01ff2d05c7d7140238f71260fd5a00, +08006280d19af04226815408001660203832bfbaaea020001e9c83792fd80dc20caec138f806ebe006bbe0186c8369b0825f700986c12978af770a059be016cc, +107c1b0110b824970d060231e294024007fd9065adac1dd13813c07b6cad00b843429208c5a0bdcea039791efd4a5968b16b38c7d54a0c921000bd4026ec1a1b, +c17ec01249653fb41242e082a2c22e7192035dee04e3060eb40f58308ce440975c84547011fdc91fa702ac4a897ec02a50a077774185ea07b72816469817c85d, +2c4481940c4c501470501f36c87af80bfcb80418ad1607975b04803ce0a720c15493aa4c080034203708a1e510291de343e8aa5851a37b5d4f1ce01001400ef4, +c7e8781d9763767c63723c8ebfb1394ef00f06c7e2d81b87b845eee06eec83793c070e0233c611b5a80accb8d85c0251cc0187508b2d8b1c32815e18c5cb2100, +86c80b392253e4892be486cc901f7242fd714146c8075920f7382013e4816c907e8c8fff713d06c83916c2faf8ebd8e31dc7637a3c8fdd318edb313c7ec7f258, +c2597a880fc91104e2ccb819e05666f27e488ceb098c82efc1fb78257305255087554127b8b144c65fa5583311c0914a1502c805080056fc6c911d7245c6c8fc, +006a3a9b4a80088ccbdd9125f6a2048ed00450d3f150022f080203a3d71e1125ec01e5f962fe81128a003b68c946a045636a0df01359243a4ccb23f8a72c1203, +249e4a98c424802b680017f43b82e00015089571c0bcc3565ca642f3ab2dcbe5392801a0b5e01800883e6928551536b35b0c600ee48136c02607b0ee94400cb8, +9a53dc6a4e9095f9403ccd343f90269202b570e190a5681e408bbc02da6c7e64b2f8b91ef48410ae07955127e6bb0210304b2ae19b5c0168a001595098018003, +c39f8c339340ce6abecd29410034653a6303ec929cfb586a1fc8703e9171e735a53941f6accf1c9c1d339b6f737988b72dbb029941c53606336786e9330066b3, +d86c67657370462036c324f619736167358b93e7fc4050b39830c981bc028ef402a82833fb14ced085d4d142bc73734806706612ce793bab41628617c9247008, +1980d896f109289ab4874e0995c93c3f46254ae803adc914458f6c4e0e2c2f6164ceda39591cc0957f66235c9d4d465095b33f63cee31940fb59f686e6e31c9b, +172d41b2a28916da7874ac60cb6d0045f3c3d068662345951b3d6780d467b66c90bacd2ce80af485316466b5b0265de5e8ac40c4fa0749c09a6b008049463340, +526801499404ca0028558292f6017999016f022b16bdd42a81a4130194348a06f491ee0ba721097c3a3b5c81252b3ab59a99018c8f0e2f44c0425a804dc9e845, +592dfca82d9da391f04c92c0a861cf9f6bd274a46f11ba1202c4c8b19797b4d5628afbd30270b84cfb450924883f7da301a0052c52125002df700018404923af, +65799dca681150961450968b501228018c5e0165790f250104b4ea575d1364b59cf280092aa8a73a7749e0043c882dd0e9a8ca15307559ceb4e122d200469c10, +d10b204ffbac248010e663217a17f9920ab6ce3fb8121b3cda7fc4b2d38004f2809c484c092854d2ed725ba07de0ea24250177534c4b80a381c0a9fe0065f91a, +be35c105ff10044e589c31e49b5850c224031760896c810bfcda38730524b0bb3320081eb303e0208cbe5a5c5955f8ac8a22017e5096559800f234b3b1d6791a, +875b3e46123171817d9a8cc8845a0adb13a46c20e4026b2f3a40851e0d152e0094a72299cc2817e897b7e65e98cf63c7ba350c802dc057187ba80f0b128806ad, +36b64202edce6a3bd901903c2480c2b6029925111290765c3192e8b960373bf5c89b01c00502cb7791400bac7b5c0093ef322b80be61f3941642df9e56602183, +90801e95397ffba85de02f98aea9fd0fba8d10f8b64dc12957ea02d5e16923040b144bc73500ba40f68e0812a0d175af0b4536fa1896b5ad002987041c01401a, +ba510ba9eedc7f230db2b26043818d3d2060d965060febf95cb6b944395a6f6f493f5025bf4d86dafd79866c4cb1d1bd18dc316534b084bbfad10cc712d2c3a6, +b7b54d8c0f50d29e8d245fe01a21010394e5bd939719511623891648ca877b0821e669d00abd9c972f60777af6e413397173da1e33430f15ee1467a7adb21d57, +42e0025a74401c3df55189ebdb70051cf9b0efbfed8c718d26d94217981f47367c78bb6fefedc0a2019ea25d2583172035b71e4e9dbb2b79e60b8c232450025a, +1a3040a58f00f55361ac7001e0480e782ced7d362ec75c84f2c04fa440b382b1c90645e118a00cc3ac0095506e9345d97af4979629332c005f206c130042d3fb, +da3f3204c4472b771d52ae3c9058c0245570c6044513bea11f656b5e78f113ad10f93df34368d3ec64dfc60130c06b8b0006c0d0c4376c81dc030d4bc7151c2d, +3b4b96347e1a8e401a2a13db180053fc00429cc384718cd81635e64d9ccc13078927368038a538a7278b0b003ef06b3069581013f78e29c44508461c30f8ecea, +a7d8a0e9484dc8a1b07762374208036da64a8b3c5453a53064f11704a46db8258e40257810d31b214c5a45536a29aeb4575096db47407cd42c28cbcbee1f1c01, +63e0942f2b57ce2a378085c400683a02923ed19edc49b368931be9545ecb2179c839c82a172286462e59dab63c724bce813ff020a63423c7345022746120851e, +2dc575920f2ecb05e66b139dc2f938cfcf677b070f8144dfba2074b92ef054d4b07ca2d3753619249f0250b0208c86771ff330f9c81bf91d11758e5ee4038096, +47131d7b5330741a766c8e4dc34bd9428fc0061818862602e81cb76ce8c8f4940ddde604349e7a2a1b7f2a157a247120252ef22e9e13dc0e88c642be8d65ab4f, +b788650b7dc66d8100e001f232d3f100625b171ec80cb2495d7f65a137273c00143120e58ec0b5e6cf6d6bcb73200550610b90169f0c2d138e693b36169ad608, +311ef0983e794b6ec1081cec9d46d30fa0a4e74082780f5c1c0382942080743a83158e5e03af403fc5c0a5a909ef405a1201a7e7681abe259ab0d01dfade89e8, +114d7330028e95c4484a05b0debede93ece2f752c90391b0613102c8a045a00046181ae03d005ac8aa36051748c42500252e04706f492e3081db80425cf692b2, +172b67516f1f98bceaa2830cb01b23e0f502c106ccc0f8b8e3677b684e964754e036e04ae6831e6c7e1a8c801429a62a3602b592b1f395305034b820ada9b55f, +3eddf98a20583e8ff0e954290226f7a0d91cdbc862a6b30a208e00786669afb04f58055c3f13604b72624b3e9c5b21034647aa28c004c94e639396d91e0129f9, +6926df87658009ef6959322946a3d376a323241560dd373a52638a7148eed27d0c189a332c2b8dee555176d7877b7167bb4478668c2f337cad3adc7616839076, +64a19e4006804a337b52bc4d4e1d00f8d0c21ff6eff0d373ddd4093cfb81ea12eb4d92e1b61f978eb70f16c3d3db07298d64766f27c9a1bd199db440f4e99edf, +9f000b89be8a001355e9568f00848609401ebfdff2db6edbda124e86f47497ed0b39ea499d202cf5ae27e2153016ea7ad65791442f03160e2068fdc49781d572, +cd9378c4ce158a4081346d6f60f312c19e24e604d4611d425e2fefd19b431120fa091071582a9518bd809398fe0000fe5dfe8a42737f9689380200de83090056, +85d1a7004abfe9cb9bb92582a3c7f4d8c1b48dfefa41fa1f088014c07a53007682b6e14d0108e4b8f24422d8da951a531d01dc11021a584e95ebf2ad647e30be, +ade0313f845cbfeb884251603d5750030f280313e40bd8d4499d80ae925bfe833ccb00164203bf1d03f343bbe21c7fbe79915df7d0c03739c318b29dc9a183de, +f60580daeb7a6b9f084ad14882fd25203d4fa9f65fa0bc8d250d405135e00988f005a451184053142805c49e20187b1a9001d1910688b51ac5d41908420c4b0e, +4a3c65405da481e3107bb324eec554532485b9d7156a2010c4fe00b0fb5d0f29849006f0881a4004b16ff75f20e5200874a8814740ec0d40068c95af8a246980, +4a10f74063e62304e52752353006887d2ac43d1c60194029037b480da801627f04711f51fc1c4551c03351037180d81f7ed7c37bb4a12ed4a106f200b19700f9, +de3f50034680d83ff173457dd1a106bae00488bd8d80f96b2b0394430db01b35107b1860f2d1004ae640ca6fa86aa00a1a41dc9b01f875063580afd5001720f6, +b80419c00391640d3080d8af16b8cf69b48f10d600060dfbb1d7010000ee9ffda5797df6a2066e001b74fed6b7ea6920f95f540dfc00620f42adef06ea401b48, +b173d2b1af3ccabe0500fb3ea98a14131175b10600ca18f0d8e4affc6b111cf9a30830ef7dad1214f28d7c901c58fc887801b4cb0c4c1039c81a954fec7d0041, +3f2ab45fb1d1f727103f454000e4fedde87b6c8fa628c51a747fcfbf955a9e207f9fa31601672d19e6a0ef21be5b95fa8358035888db3b76612d7ed251042cc0, +ee87f9e0bf1a708bd48f246ce09e12016d66ff5d1ff3234af790ff00f0f97081d1ddbf8011813c5f1860ec27f47dcc6f0111c007d5bfe7f73f0f500a36a079fe, +582444c0b3f5ff6101c67df91f42c00617ffdd40f41ff327f787471001cfc0f8d8f9b7ebed7c6640c71f16a206fc069b7ddd9f944304a43f2d7fb09fb517f3f5, +80cc461af009807b5a7b455fe581f4b9069802d3dede77035006500a6d80ac9195e003c001065fa41a599601327e29e02bc3018810b4015421801f5c3000ea7b, +3b08443107e80150018a80cb77057e01da7f48cf166899a50fa4019140c3170470c350146d80d8f2b107153081d61eba43cdc315a401980036e0ae07c0450e94, +00684204d84d9edff71fe92707880e6e7d0080e477da557eb880315a1a500734077e01bcd5191075685178817c80d0571868edf1396ee01620dd92060c02389f, +1c40291c235c01119f9f2004ae8146dfc811e6a30a1e81bd80924282e006f07fa8042c08f22751e1ac8d010b00c0f6ef30fa617e91841b40430060847e3480e0, +78c3d882311a11f01ba0417080e7c6181411b094218303407003c787f4d8825f6ebba00bd813987f50146e40b94404b40bae09b2a01348079044b4826e45cd03, +0fee7a806041841056f7b8836d005a10a5f006200e44805dca35280bde817a0032c083e00a5283850114c51bb098817ffe07b2201be867e8154c836dc0e7b10c, +54817b9f4668ed9139bc017a201ac00fb832ec7a44e0d14719800ec68103c012a00200042a84a760bb5e16850e72025282f35f8790bda101c009b8606a300d42, +01df401f1814f27ad1356bc04ec86ca006980374e04468ed17f551147000b1863be0f291840ba1b5a0ba0007802668406120b557127e01c18102618c8606d403, +4209420007e80a437d88e02538bf6882c001e5121a800cb8ebe17f735f1910498806400387e04db8d203103e22704017003640ecb1004a216e40d1b3134a2268, +20421007106b43c008a19fe0121e7c3a01b7c0835018a2841a8103401c10f80dfa2104aea04bc81126067801005b79d0ca70f9f91162a1f2c03830efc00469e1, +173014aa8678c410e168200ed22c38e152ce1090092486a40a2e61d44729c4015886fd104fc8183639c401f8da10002ae80b12022e6130480884f9288603c047, +d006a87bd2e117c01f4151c801ca081a00b8871c5a7b6d9594821cb0eea0017481d9d1ae9778143da98616091ab00700d9717274004358bcf08f8c866da1c561, +053c082f204f36003007cc3ba0c910601b1049c8015de010612248f961829d1c0841abc39861012c855fc048c81da686dc7bdc615e661d1a02267ed6614f6806, +947697a06ac71e961984760fc168b726701d626255cd679769d81c0c01d094645d823897603ead8e0f4273d8fb756c908875de1131042c018880495185771902, +771c5b1c709f2c74cc6cf40561e8214d07f80fcb1d8f7819f519127ac7ddf111e3f3dbc53eece1ebde8b0856f08014080f629157dbad88464b43c00b901c0d79, +1ccf7af71064074916fb9d4437e21588c67691a19268e0d5e05d6c2c061bb31a1819a677001e8bc13941deb1053e228e9c44372312860a16d89d76e72a707709, +921cc052c07530c1225e47076098785b692cc59108e2f544dd6663865662d161e1b11f245b7f9701f1e02135a54c67434dd0242e78f45d4c2291d713ed740288, +1f00e5497986dedbc027b0e40d7f1dc8a3595187e4fd03427863226e1728da76e10f00408fd7e6fc07a01638de9282d432072010671df121963407f0142fde92, +2004f001c2e27dd29001ff9d7ecce269df09c8188813701e1dde6121048451ef5858ca00e00e0e8bb0011c8fdf23207ae51d11428024f0202620822726801091, +2fa6137f8982f70f2810ba6fec079ca06a21b87006d981bb608787193a52f0627e4a85e706543af61cfd066780e8fd85d40160c53142e83ddb3d047ede8d3800, +7e1e23445005025dc7d404bf40f1c3318094f418f4c60fc0ca406c7005424012871d004b20266c003f8677565ccd01c401a04c1d9019b07a907aafe24b56f7d4, +004007b2f105c400880034800b8007b805a80417e30d90742006143123000cd0ff4287900179c0d8a30f90743c005b80038004d000c800178c56c06872006403, +83475fe0fbf45baf4567c6e6763612451104da407f508d1104b06aafc50537204004388d2ac0ba237425045401490013d14830126401500032800ca002388d5d, +d60672c15d38a74100c0df986d1104d38d8163e068379e71d68dac1381f140fc5ee48d00c0dc08384537ea8dfd1c36407cd112f14204c1b347b445105c5b72a3, +3b91008445e594ce81683587cd0fafe3989520405a28037f005200edf28de813720541c03b00f32002747c6e4082f0307007d40456d013e210a0e6d53d774076, +00008400c1800e4120400c000104408a802830000003114030410020ae8000146b3b0432f06d7400847589400a0002e8289801c68beb8010232de0010f4424d4, +3d8e03dd6339d03dd03d7e03dd6338d036d03d6e03dd63376335d03d5e03dd63dd6334d03d4e03dd03dd6333d03d3e031e03dd6332d03d2e000c03dd6331d03d, +80030600ac503d4a05a41dbac001b043d03dfe03dd2332f03ed03dee03dd633f633dd03dde03dd63dd633cd03dce03dd03dd633bd03dbe039e03dd633ad03dae, +033ce433c043460326033ce432c043364316033ce431c043c82a6c8f21a4f7c8f4283d528fd623f600f1683c328fce236500eea03be001ac04b60009c953fc8e, +3ce43cc043d6033c033ce43bc043c603a6033ce43ac043b64396033ce439c043c04386033ce438c036c04376033ce437e435c04366033ce43ce434c04356033c, +40d2913c0200cba3d7431ec006c4900103660219b042b60e92909a01e085428200ec910000082942c04376901f6408893ec043f6033ce43fe43dc043e6033ce4, +28190f8092f500280028990e8092ed00dd0028190e8092e592d50028990d80928092cd0028190d807614039d2400900c783d668fdbe30f90f64143468fd363f5, +b90f8092ff0028f928390f8092f700280028b90e8092ef00df0028390e8092e792d70028b90d80928092cf0028390d800c8092c70028b90c990f8092fd002839, +0dd493dd403d190e190dd493d5403d993c194ad693cd403de426190c7c009ee4336439514362923800d7831ec0023c920a00862422a94886470692efda206942, +d493e7403db90ed40dd493df403d390e390dd493d7403db93db90cd493cf403d403d390cd493c740f5403d990fd493fd93ed403d190fd493d493e5403d990ed4, +92ac4204100cdc00b293cfe32579436a0e4492cae34f39491007289240003ac92059421692292400403de94df69132a5f7403db90fd493ff93ef403d390fd493, +34253869539e903895f38053b90f38953895e38053b90e380c3895d38053b90d990f3895c38053b953990e3895f180538053990d3895e180694732b0540200d1, +c05fb90dfc95e3c0c3c05fb90cfc95d395f1c05f990ffc95fc95e1c05f990efc54f6954fe55f990d9943020049e505c01ec00a0c95eea451a54e69bc9c9308c1, +5b195a12926fe5216507300cbc0069079c89b3234976004101720010e069f0018e933825416006cc4102927de408e956b90ffc956c2567e95f790efc95efc05f, +a1f72113cd01104002d7c03d049b153cc34343cabc7120dc408003c5bb1c03fe96e1e44d794872053c00b4a567f94dd65a4e30ada5f2380cf9109896724008a0, +51f001c7031090c89330900baf1444417401e06012bd63ca453a09c5f930de8517cc6b015e1618437a014e50f5367097bc9099561893c5880b0c0c7b10953254, +5a1c0be62d711b50e2bc6d024082c96028a01098558dff3300d007a45040c0b365fb3207f097c2df12010fd0419901fa4b12410e50fc906b91183940d7d1ff10, +047e402205040c7328922b091c91a6201bd9586f9b7fe002c87af10023e6036131b56136353290c2421f70360101895bfb252c4587fc00ea790d66acf060d601, +7d007a50d8284215351c469749b30d15753a04c602d5d4fcf6a013624cc09829f60051973791ebc34a3261e275c8c479c402600440018dd2980f92f9255243ef, +404a000e7896a100ba831f800824023909320028e203b801613e76402064615ee0dc06a701109096f166f60135819c0950014bac996da62d668f7113d1372611, +0530320416a9a6fec4f5f0073c845102fad37f008ac82ef6747d0107e364a05bfc019208105010aa02f47d438f1c4029294e9293040128420f1069de0169876d, +79073c9bd70320b06b916a82555053ab40ac7936fd005ec8625aab3906a01b6b970e9146e13fec9ad22d40c001606b920080226c201b106b816bfa3eb8e69907, +6e4a393fc0363030b426b001da66bc79ff176e1228fe80c726d0c36d8e233f80d526816288919bce0480c035f2033808a2181dc227b26d2287fc008a05ef626d, +b14f439bfb44c51100f407fb5cd34633a00c984f40d24b05ef844e0102afd00fd895c006704fde533fc06ec16e4a048c0172083dc46d5a66589bfec053a16fb2, +910840200901649a4000e2404a4000ec450000a2000100041003449a9ea5387008d0a70102ec402262fec41cb0012b402349f44410d84f7404995485063fc94f, +bee6016506a400489d3682d6895c729d04029840d5f9595e06d40cc746da357a40002c9db82501c0a4c947ee1089c05b4018e06904026480c9a5b7c206f8003e, +81d02473164d39d3eecfde0900f49d04008140dd79779e9cbc9d084120a007fe4b4450e426cef40634008c9a04c1396006050098039f47c55320c051fd008dc0, +0fd0a70902740020843a40ffb101304076e7e6b92ef19db602c81a3739983d50854d82c4d8844e097802004f53c4f92d9078e29d8ca7c5f1ef2408047e3f401d, +e17cfe9e0040f0b90f607b2203cc6750a7f0295a9293b327b9a7d5d27bd217c0003c800fe069fc6ba89da3656ec969c214a40443c10ff02a1008100412407730, +00cc9fe967fd895389100c023800f6c9f7b9691a9f3e80f80bf649009c9fd0a7dfe7ece903f469679f0501f7197dde96289fec00f649016875129f4de7f1d903, +f6001428b7545c627ba29f10a8f429800a001000f22742e020400824a07de402e7f0b9693a9d05e8de02016001fc9fdd026040d9f94d0202b2013c80ca32000c, +9f9a2669e96bd601d2a00c2802f080aa830e0084c0bb66820982ae9fd3671d00064a005c172ae8f6a7fec90d5ca03b440068049a420ea0eea00c28efd9813e9f, +0a80187a85769df81a8480bbe085d6a006a0c5a7128a7f7a8446a10ca8066084557d22048400d529074a7fb6a087242828025083e22503803c40fef983d20033, +db224a64f4054111850068e203c8026901774019500f2104329d9c660b30f4d0809a9f38e8077a84ca84c6a1ec001dca0d6a00b4a1212816679f460800035068, +8f0619f99aa148e290015a6cb018da50ba4321d01c004d50a11167281206e001940765472c1314a138f80037944a07cbd048b85509422180232a24c60aa0c81d, +e0738ea15d670b50214001e49c2901329656008a00017d9a7a4cae15538c052701aca8f8e1030002d0a2c01121fa4acd09493a8340c6c419c18a827d3ec0e951, +57daa3200003908fc00280011000d0b958000ed0a30ac0282816208e8a0311806e281b20034ca3dfa31e24d219422a9d020065273810026073220486000f708d, +7aa3030097238e9290220205e936da8eda8f1aa4f4a8019041ea8fd2a304404268a4498f8627fa280569d2010e288ff3a30e80400a018002c201fca8991001fc, +90104020890184a4a8a4362950ea477a00f0a4322908a000a9733a0030e94dca0d0002b4a43ba708294b0a0ee89cf9093080d2a97312002aa33aa701100ad000, +5da7a0d2a71d02980129c1a31995e2a138923a2700800c44100ca0828aa771087a8eee1049e736fa21000598a49e653968a4c98eb20123e98e0a350a0f88a3d9, +a9618a36f4698800e368f15896a2a37c01630055ca0fe0a53ca5b6e35cba96b206bca303c021400d49961e9d5c293b3a1d4095e2025729a6c0534a8f8ea3ece8, +0597496502e581e7d16ba178524c42c42413150a50f40021976b29a72994e9130001e2283090991e844e234089a78108ea985a9d6de50e9a06208e6205dda739, +8a9b4252c5061b306cda7a06551e936d132240b7f4007b5de4e60840d794014852cbd6e2b967bd9ef400d4c0c0209b6607b0a6880025c015d928b00123805f45, +8eeea35d29a719a840052ca659a9669a1bea95522a9e4622412240023ca5daa87e82afd9a8a49608a7c2004f919d2ea7fc033d002f509c5a07a41c6ec06fba85, +4aa8ec2819b002f47392a5e46863ba978a842aa87a0a7e8a9c829f0203832982e963aa8e02a8ede975297e0a0aeca77aa56a69674a867a9dbca70340224007c4, +02d323224006d4a8b6a85ba93a2a0a9003a4a869c78aba8f9aa0769d75c8894a2040008803976661801c1a012002440047293910a1eea3a2698d8538e0599a03, +3d0022430912048115666a5f30621d11f400e2d16bb1cffda5ea2ad78322c06ed9179458e4660b00702a33d99bd187aec0ef327a28026480372aa6c98e222c2f, +d643a36579322d95a8d06b11a80616a07d2a80a7a10848a728029c19b3e995a236f12e1810a845cd43a756a287450f9062731af4009446dd5f0f80043c083ed6, +6793aaae045d4eab0a3ec7b44556fa47038022803288aa3f7808c122604a5c67e54a2c069fc9a94aa9de0599eafce09914709c67088496157695649906dc0206, +f3de3973e2448545e9e88b5a052d5c70de00b0085c233c404f082882f679a9fdaac22aab8a32e09ae9463f86ef8398d8aae6aaff8f8ec2cdba128c06a06af4b1, +5878aa4951d9810151b985a944db0662d901564ca93f06872ab259ab62173e1cd1cfa90a0074abeb6ec3c122308cb2aaa98dcd9c76152ba967d06ef4c8b22ac3, +9198dd09bc1a233c723a40c866da6365d5af0642f76aaeb4b4ba54d5ab04c198c99163531cac0d6b6cc1a0ca250aa3b3aaaceab3c42da09995a20cc5a67a7f9c, +9b0712c70a6f3c4f45ac92aa6420ad222cb5ac6d226910b850e9ecab9fcf77803593ae2645f116360297d59b483a2d2bc34ac3da1f8d444c1024ebafea398521, +932858a1b67e6ed115e244e526b6966e40513c80954a7ff006d401cf6a82c0086158a449b6e82ddadcf30f00228105e18196a5b42204292bd9aa6191f6d8440f, +80115096bd423c40214a7280fd71053c010f02e19ae150aa781a8e0025c103143efc8dcc6adc3a07981dd0adc86631d0bbc10344010343d8680b3002f4698e00, +66d0adbaab18566648e1c970f4441356fdd0e9c9df34585814661342707ba6ae954c6785f8746ee2866564df18bea430669130a165192a46e747b615ae404059, +a97fa61db1a8fea9a4d38c1aa03bc1fec08c95bab21f82802f968b0563311768a2a0c1005008380d4eadbbd985508d2e56c49d84a75ca0a8a061716bb74121e0, +df985968969ac56605198459a644c68ac10ab3920756d297cc304aab6e165896c9ebb0d28ae2ab9d2172e8168a5354a21002670517ba85623a0d027ac10f2a19, +1802c48758dac1122f75b072c12150e9f98d1e1f552942b08a8108740403c0d496a0d513682e546825c36daa9c125a8059fe439d8567f134b9596a969a2567d1, +5a7f41b0752d105bc4a71681aec56bf96ac55ab356ad35ac9515a45aab56abf525206a915acc85a985c5a6519407a0d681d01fd095fc01f23e94e937dae51802, +0401bdc5c6de5b3c5b14c88718b1f68dc65f338eacc910b010845b04c1b8d581351a745b04c1b745b4456d595bd896b668578208143f87a3c6d68c816c0d571d, +9b09851024ae034049d353414041501c545e58c5e55e5d5cd853ce9462e545304c5109c19462c58240f80401a00c2505cbe9cf044f55571045beb56fad8dfe96, +d3c525415d5217f2d7193189a56402993e976104743d1542adbe57aecaaa1657ca5c9b82d13a00a875b55c04c1cb05ca607209461982ca45bfc06d8d5c094600, +26117461445827002e8085612d12c1166c14368571555658ccc51226113861ce1e5ed8eb221120619c0aef83d8457619cb6406e4c58d0408aa90655d4517d745, +6ed214804082000800889d9b6b06ba7944c08749047e9844d81d562ce461c682218936c6a8cd61752c3b41d24210bc619961c1ca85a286ad86812402c018b65f, +e9094a1573318be1e3a8625e492b862d86109862e9142a367510008462cc05294722c0b1e5a7f0e9f0294e415b10a8ec62b2ec0b568905634874172743f38845, +b51a19526bd416b57dae43ed4536cb128dcd01da581e8092268d09ae449135861cb08c3563382c34840c01b91c63c998bdd82f668909632db0b7582eb68be501, +fcd9efb309f9294f048f00769193f13ec0575c872634f8200370000fc223c0f0343e2408fd0257a0d3b59259b53ac827ed521bd53ab5522d47ad529bd432b54f, +431d7015013b08c11d42e2e19cce2f43030fc21fd022d1b566446f6d739003e8d652b20fc45ecbd6004ba8b5646d5b6b77a403d82d98cf23485a3441240897c0, +171a09400310000180172a0d78a1d080d880176a0d78a1d41e980015a00d78a1a000cf61cc30368dd51e8f88d9435000a0031800f34e01d025c05e18b665d9f1, +474ea00713c76323266071fc15b1139f4525c4b851730801ba0326d005e600cfa61a2a4f41da66552200d280f2c8f1700df0b63b0435f0db9074600340a5b363, +b5c1036d401d42ee6a8c71053940b2b319104a711aa108b4cb9b5a3b75b7b1c29880099226b18a8db710eb96153006423c6ed8ed5a514d845facaacd2d756b82, +e001d31e57e00518e1461fbad811e105f079fc1524662993ba9303d09d2a5c24e17e0b0a8c260fc0006e0b20e02608ae005a1bd9265f20828501a34726b0c7e5, +31988f2630ac680220101eee619103e4063c0838ee00a009a009ac16b85a0ec00e2030603eae21425f0ef008cc3b815f556089fb06107bdf828595065ae2ca01, +3e00b857e2ee002c014100b1170094b83607be1b89fb0f78f700b99ac00331e5a109cc183c2e995a0ea00bd63d9a407f8226004b10b9a7412d048f0b06fcb854, +9bd5a62a8401fb6d3fc0bc93efe400d6aea02d415004ecb7b9a9008013b0df56df2e01f34e850b96f0e2eeb74fc08cbb0d30e7ca0073ee0bae998b03c0b95e40, +5f802b9d063800b881ed4ae50e00a3eea3aefbc6b199ba041618905643e52a003c0849ee2ab309ace852a9ff400e200130efcc01fbed4335d038e8da01fbed0c, +9009ac42c56ebd190e90c2d53d780842c12620e57223cd019b4098fb7900bb089b928126000d490680718eeb3f800380fc10b97ce270a00976e506179d8d2650, +4a58034c5bf584c457b711043b0127605263735033645c73504df0a37436e02e37eeb68b03200995449ed35f70eb362f00addbd500f0eaf6e220049cc0b21b5c, +98020f02bdcbf1d6f13e86152f14850383f93cbcec29832bbad009143038405b491d7280b809c59b3880fe52f7f4bb272a5994ba90097c51a1670f0183fb26ac, +2015ef1e87030802f56f04efc9bb961cef96bbe72232d7cf0b5670021c8f6342e906ed7a11da2eb48eb6ca0e05b9cacd156f43850374025621e082b8e026cc2e, +e9a20434dda607bfad3dab3f13f6ae43e1007150ad71b5aeb31cbd088127f0fda473981b0cee0e8226a0dea18b3fdab12efbb1f3ce413eef30ef2ccaaf96bb3b, +c14d60deda329cc07a4cc9eb986c02f525a28327308ec0450dbd0cee6935bbb066b80af709e181c491cd4d59c381da9bfa81c4657376550b41bc45b272027c85, +f421fa424d78d534af5f311c50be396fa2eff1b109f404a7be8dcf2ae3f9229b00006ec526907f4409ccab0c4660e11470b315056e0e35c349f5123c045dce26, +b05a7018149bcbfac551d8943236060886b74810784c8e80d4eeaa8be466b93300c3ef81d91824285c06f205b04460c4f9a874ca0d819103d3170c02f926b57b, +ea5a189b42acb8cad1710e1e2583a65a39c05b68259fc06c88baf009506937800401d7cb83a8bc3e06f4cd7d22f0c222b899379bf60381fcef5e7a9fdb505532, +1204deaf3387f782f1462f66c01d7065db138cbb3d1a5bb0df5b00ab8b0300d5d90d409d86a2ab4ce64515e72ae81c4f449c40fe31ee8229740277010fe77152, +04abd22a97131816d404a2ea5f5176b0e14cbd8ed4260088030a0c4d0aabacba0dc05ef22ec985a4f04bf28880020dd559d5fbf229050e201bff00fdea1f30b8, +5ad401a29b8802cf00f2903762cf5854ac5608c10c0cf1b64ac076614e3a22488710840224cf0d10831b24c009efefc49ce7645ed1234f08d99c43c2297d6ed9, +48a39107a004cfc269f03de38d084a07004dc04ae2505c56de1ff30147c62c785bd0231ec90060f1c6aff2ac0380fc5b8506f6c272095ce8c40d40638e05d4af, +550bd54eb5b7705350819ba3b9c26b023981a181e3b639fd5237407bf46e2470d049f82da1230a242730b881dcb2b706e6f33c0b1742f6e82a519285399e8b9a, +8c915db542185760345c0d53c3d7703470330c0d3fc3cbb0b6702ecc0c3bc3ca177d702d9c0ce3c27402c487da1b08f70807c2ec47e28b105b83196364707f21, +eed80035403fdc0d23dd74c339403ebc3a2c1776c33d40ba00a43b163c007b083640cc580ee73b367e36401030e18226d800641957f600040308ba56db03f04c, +943b6a4137dc009401943b3041371c019c01943b4f45375c37fc5a7a7e1155374f371c02702bde4a6649372cac797e12bad88a0d9002702bc7008d6e372c9a0c, +63443173810cec627429c700ab5013274f85c49dc900800abb580400cb007af000800c6ca72971fdc0fc00013667c86f0303f371033017ca3b6301575003c003, +49b153fc0fd400c00357f150dc1573c5ecc43db1ad5303dc141f1135c07a6618c1142303477151ac0d300000c5423173c07ec113772cb68e48714d3ceda6c4d8, +c1583c15a7c4cf804b7157dc1783a25000c7c05dbc16d7c4f8c46e7137501707033ca23ab1540c009c142fc577715b5c5a9c154f155bb15d40544c16a7c4eb00, +0970f471c603402ab1aec08816661a5f75420940066cc6a6505c4121d00114667906997110e269c80fe06b858008509800078c01241c737161ac15a7bbe64609, +00003c0bc2311c92e05708100085590571da0587880eaa40258034f28dc801c1a785000350980510990d9f8bba900a88d43c0b9143772819a007160213406176, +03049b08812a40f2b00a0081f37119800ea03ba8029fee3f40617601d021900314852a708d1002f7226bc0b557f3c801146616c0435002d420a802450821e00f, +146663017f3c3e4c3e28c829d43f300984ef317f6400e4302a6099fd03052e9305826c03b001a387a4c33fa00432493c04fc7165743da802fc03d21e9324003c, +c8f9ce3f601c3249b9c84042fc323ef04cfc030c1f93a4f11cbf5446a3c72af03f700888c604c18b431e800328c8ecc585d9b906006c0931c800b245f20f3402, +2941aa52f3800b650200c53f60071466d63c1045659420ac0fb80185990680d5c3065014ab80cff202e122ab248120d200b1f60f9cb81503140040e80c2204ab, +6e61a611dcc97a5274009c2c28eb0a66662680980c079c01ac0260df3f4006141cdcc9e0429e3c00fb24cf9a615f6166932406b5c9368f56f293dc1cfc033f0c, +0450981dbfa565ab40a3cc0ac81aff806680d7ca06e000782cc901135098a9394cca7140a0cc0ab40ac468b050611614c635dec98b72a0bca3bc0a881fe34761, +fc27e1007f92b48c3fd00f14668f10ae72cd722cfbca0d95654261f6d4e820b9ca360089e02be36b324933806e992bc351b00289d43f000afc2a574661401d40, +8818c9deb2f2e60f800e1466c2af0e921b702cafcb94843f1980c12a9bcbdb32ac00d8e70fbc0385013840b45c19510e14662ef1b3fc279110b002ec863f600f, +1466905f6909100a3bb402058c3f100dd603c00111261da02ba08cf803e44061f3e4b183e0010942fe803a5098f54206653b3242d00a50698803859976f9600e, +ccc1e93f905714669496fc1ec86303cc3353cbcc4061d604505a860bdf291930a7eb0f100385d912c2ed50068c1eadc0ca4061865d3c98b5b814452b708df803, +358b1880306bcde2033f209334050ccdcb0050b3d66cebf80a14665240bf8c353c00b402748b3fc09314050ccd65cabf5dc25c2ef9038e194d85c1dc83544658, +801990d20409ba833c40deac4b30495701fd32db9cdaddcda883fe002550985936d7016240d6ec0ae00f6802855915b0dbfc342708cf0957a9785c98d1050f26, +c6c7248d013a08e32842e00a20cdfe00859918600698cec7c6ae00b6e20ff801146661800ef226dc3db802e3883f500c6682e82092733e712bc06cf803cb4061, +803b1f086b1a8334e71c30d3c915c31932936406e896c4b3bb33e56c91f8036a50fe8076c824113de6cebb732d183ba799f90373406196484106ac6932c0dd6c, +06e0014282a7f10aa032970185194762f46c3ecf01d7c32b00c8bc0614666ac08519f8c03deb0eaf00c5b3f76c315b01a10121c2f60c27c400bc020b73d0c724, +87231b74bb3cff300fd80085d91ba03d7c3f2304afc0ace90f5098b901d373ee73eefc3e4b39fe00fe009acb24b501ae76ff73cdf03e2b2de06bfec0d8c7249d, +131e7461b65a09d18e013180ee000b3c0f840085d91cb05b2d2468d0de337be109509835883a480c251e603abfcf66f3af903fc00214663a497000f9fc92bccf, +4c524da0839c9663d13240115d33f3c6f803112193740708278ccd09022c8038ca24d9013a08150dee3c7ac00220b3421f935407949642c2e7f3f5000b58cc83, +803b5098651178f472409f060ba450fd03f34061b6074cd133ca64332c6099f50f14667a00179d47603e5bd1a4433f900350987935450f97c0d8dc44933cfe40, +3ff00f1466efc3ca45d89020c402815f7fc0cf8006280c233545748ce6431766980085991f50f4d42e781ab0c0f1e00f900e14667d00170d4e3b00c0025f543f, +6c2366c5250915c4f3d10b050030715200ea39036423bc0bca2d1c003e8c1eb117c6f400e04b3307f802b44100304c330bec2133402db05ff04ab70ca0234210, +0778226c807385100002f43b29420e2819c04ef7d229942280091d2fa007f8c86c80a7110b8c238ad3dd00c7d38d70c88c05cc87ee5913137c3c151e4c00900c, +ee12f180c5715e9209700ec5745160fd6b00070015b562a33c308cc8031c4ff413001200bc03cb189f0722000de574ac16a2aa671600d4038802e2c70c305dbd, +171c7500200df4040b117fc589e55133ca61121eabfdb3519de14897f72b54a17011008c035e843b4700100d7429c6b4c5b485b152ff026917684636a7f70605, +802e573003f0b98303c5c66930034c014fd4cc853cd03ed8713441e76e448d542d44143650753cf0c6e20b84d4c7e251b5531d538f0619354bc6a92054471f46, +95e0e047b865484f6d75a67b10b3bf59d5956ea4ab128800fed2f1708c6402b42395006d35a33be80b009c006df5a11ba04ba5cd00df30a2aedef90fcc007fee, +34005b6ad6e2053ac6647dc33c22b300a7a98e9a5a4d2d7b3c212406000de0a8941325806d0b031494bab6600006a00949dba61db22d707b24110bf894c0e524, +79dc0ea28f35d18221907406d79aa9d93504c05b0300a535b6b567c9592300ba1e152142400b80006ea65da90ff25a575a9fd6fba86a4d5c0adbeea3a2b51e52, +34800030006f6d02000bec1d46a7178a0ba0728401840e2d9ab3b962a224684ad7356b8ddcd22c8ed6f445693d0824a56fd6b9b567ed4186f42408b4001ac05c, +7bd17fcbfd85616f42efce0f4102e06110da62d835c353901f914f68a0aeb39017e74c10180091b34c12081000900068d6db28570007dcb94003f000019000f8, +d00de2847d64ff2de7ce1a76905d62e72b1c083476067d611d63e3d81c76893df7fcb71000fe73863341807671cf28362236a30c62b3d8e74712b6893d36b718, +68839f8166db1607d00f81990d2e68d84b0b78b44a7063eb65b7d85576173d482d03a0d85976946dbb34658fd81af61bf6df7200e0d11ff668d71b7d2b4fd84d, +c11b700d8cc80000974500400168085c0696013e10001000700ecb017ea017802df006dec240e034701d6411ffc142908251404805ef4147c151601cb4076f41, +51a011d8080e819d76abad62bbd99ec1a5f6df3c3e84daa9cb1d361c606a77daa7760f81a55d37630058da6273a6bd69800034cd4533890d19206513cd95914a, +e06a0fdbd576b48db20d001cdb1c7219c10110217306cef6127684ec3711db2a00c1f6054b6c17db004f3fc078f5101800b00305007f0c600d6913664c921320, +24df30fa76ba0d007d219cdb044102d0bced6e13c97900bc36bacd6dafdbae763132b50d6dafdb98dbe676b92d61e7c82bdbe2f6b32d2d8c6d9bc82ac1b60d6e, +2fca10f7be7d71d76d6bd90b77a8ed70416fb7db55f6c49da91d71afd80e374436c2dd613bdc6ff2d5b6a62d20d83cf9dce176bd9d7003dc2800feb699926c07, +01c732d09d2b73cb23cb1d81ce0d2dd72bbfdc02f7cead2bad00c8cbaef2b1ccc5ad691bcb2477c0f7c94d2abbdc16b7350fa7fc716fdc123c9472c55d7237dc, +07b7da5d72ebdc26dc3f37cd5d72a7dd87b61b339109722b6fffdc9a76222231a1717bda10f31a90b9bc7447dd9ff6e4f2a90d0034ddadf298f602b0739fcbe9, +007e201e1cda0040eeaa0104000cda000b7b36590000f8d9c8044dc59ded6b2255180741c1ad0d0042c40cd965f69b1dcc0c3990dbdc76507349837697dc9636, +2e1000000335710000291000b002010001002410006002013001001f100010020400548097f262f98b0500404000800480015c1101000b20a2cd5c2000164b00, +5562542f188a00004d3777090088803180008006080070004c800040050800600034800000040800200002000580fd080e6cd401003f2000400d0400dc400080, +363dc7730077fcb93c1caf560e0073ec6d5c2dfcc674007473b7d21ab7dff1b799f1668c6693c6b701d4008b2c2a10000800d88000a007ba0bd8614d9800c00c, +fe8bb99238116f8d0330bc24c675cc6190603415b4c1a71bb7d277c7d900808db703ae803bdc37744e87b5fd2c9cc752040a80798ccfa4c7b418db71742c8013, +790f4187790d61129c063180e900823be0554f751c02d013403bd6e0879801d0005000d81dba40c94101c0ec657b37b4a35d4bc562f4051f769ecc7652d59c6b, +3080f867844b0405e0120101300537071f1130c03f60c0a9c6126e3f389212840086150034050e0e6999ded8e0120102c10b4e070c2431c3130781b182972e9c, +38f89388332824866838920287f7e1860237f13f000374bb58bb024a018710f053f002d8c5690003eefe092877f81b4e50200028007ace1a00b10b031cbb68f8, +3ff4875bbecc054c810e7e85e7449b6fa4334ee498d4027d053080a9374e1318d93102c002a08673dc0120028001b0bbbe86afbb373026e10150876fe1863820, +c67c68d5c3b835ce083e001ce2b7386cc7024014e428024006008021faca17cc07d8404db08b4b04d0e286f88ee08ba3140400fd410a6e13f0d99cbeb538cae0, +c0703504c607208fcc8e3319a07833ae31aec0f86c0446985c00248db7e3bc40e3787cdb8d63e3df040a4c7dc07c90c70be3d378357e8dfbf188be7dcd43901d, +8fe15bc083e00b8449d53db7404ea091108bdb1d0ef9187ed5dc8ab305b64066ef18eee3be16cc8791055bc00be41fbb546ea240ce8b63e33319d6387621faa2, +0fdb9ce1467b7e5498e458b816ce83b7b6b14d0b49623400ae127824018012a00200014800d9433e5c6985861b0008803b38243e864b732a16d4f86360872f09, +38400e903357e505bb614e013003d400956887050c900f7a7a5de2a0f851aece2e562104433929ce43b093f7e448c64f80aca202b000c2d51202020002880024, +8f2f009407adcbd326675e7e8a737975e5d013575e8a137460170e515c8e95cf00d80037800ee003b786e37e30390450506e8da30e62b9ab044fee93ebc14ddb, +814132c3e6be806cb850de3e88bebb1bf5f8b758d5ac16cae035b865c0925be37cdca76f76c095870569e6741cd346603eb4999c03c02f302ff038bd4fbfc013, +0b9d13041539f3f1663e8f03bc0f01cff943c08a7bd3a842c9c083c00b2459a1046806447e58bc003fe204f9428e85f79097e62779218e9aaec0f41b04861320, +1abc000266317500ae9cbb8624467e7e2c7d41371fa3b818c8478000e4d27400bd0681a17be28a2ee71c87f4c8532c193d04da3460c39b536a55e703b92f50c5, +60178a10354e8f50b5200012ca251e2390137c040180cf68f1f14e4040e90d02b88342600018bea24d8d1d85a02bbf584be81ae94460385188ab4d4d3050d58c, +81088130d01cbc00f0394282fc92ed9d8ebc007dc0bc031bf1a2cf01a3873030753de8b2002340cadde8510b50692f4097f108802ed8365670515c9b23a02000, +c7c30bc005cc3b4bd72b03f860a022e99001f34e0720511d504412c200ddf2029eed291a10457ded7704a5ce3be2f893077d6da45314c2c075c0bc7310784a29, +cbabb0eebc0098ebd7c80b400eef1032d723409f4e290c03a43b1fc0cc726e1c06d0e97bc80bc0047a4ca41c900303b330f04cbc0005949b87990e39447d09c2, +2d203035d8e4000381db03caf607f50097fa043030d4036a963b4400e02a6cbec02c314b5170a9b3090e00c9c1a54e0350eef014973a6046a02b0170052f000f, +ceabe71abfba6620439aab0700b8baaebacb35abff96c8e308f63f909db8eab00318a6058a5d7f9300014a71da11ac8308100258412040a190129c0240406b70, +95ce39a865743100f20f5803fd4ebceeba1e02500ac480240508802e9beb7400c3c038f20fbccbf0084dc90d309a2204c30a00ea1cb0198bac6fc5c5bab0eeab, +49b819bb7e1906ec62860014bbc09e04d0b0ef2d8044c4de42400c748bb5f509848130610201b10039447cfd23040971b6bc65c07e339706100318756ddd9d46, +178f9bdf11511dc1f7ec7e0dd0ee0c607c24004b81540db4b0d8f12ef5074dcd4ad233f7d25f940b40ca2eb0c7acf210187bc36eb29f96219640402a50b12fe1, +a14020a09566d766c6bca5a7510cc0024f9289408f31a16a516dc6517b8d4ead8008d88e82e8da2907e07bfa91d98099fb805a0c20a59875d1009ad49870ad35, +f576fd33386a0078c60010700af0eded0613aa6ddc5b22041a031c00dd4e04b45ad6a74cc76939a08e0f8c026dbbb20ed9ee10c0ed8869da7b1012b55303b025, +0053f3a81c4040247b11f03e00a8e771a23b109020785c74029cfb70fdb7ff0c5beea283310009ac9536c75bc2fc12804006a4028fbb17da014e078400ea8231, +8005bc02d0fbb2aeedee8d840091c431fbdbfeb7d3ee2d8973e50040c1c502a80246c0dfe3bb9fc71c0353bbd8de01249f721af80c4f8910610c9003b0fbe15e, +02ccbaa74a7125a3b9b73c1acdbbade36a0a85a856fc847e3b2c300b70ef7e3b9307f8ae728400e491cae3f16eb77bef0001a2c33110b6fbbce333b57bcae18d, +e332c8806b138d703d2003cf440bb08830977908fb448b76021f98c8170dfcdf7c3c204d98062d441ea638611bcd65042f1bda67f357144000475c410ba00fed, +0ec80025d1021c03af4535bc2dd2a28969781130fc1b35c3810c58662d80c6568140e7b400684324801acefcad0e62512d40c009db0d00c8f08b2642800c4839, +c900b1d6025486d404a0661cd1a225087cf0aad90b1fc3130c80262d006288f99f93d8f068c3f5900bf0435847297c093c50327a2003675384c60f5fc2ef2445, +fc1aef45e4f157422dc025f0204cf129ec35832e920c340744981326febe626ec65735723c10cf2380afb5008f3142c01a7fc3bb01a347323481411ebff0253c, +a1b177c002b27c2bbc01b4c911f077000ffc3fd0026c8b5733d20d7e9013b454bff0129d224f8178bb2c4f63fc00e0c740e830e704bc41cdc7cea56becdac41c, +891050f3554d998924d20294adeb109954305f07f469ca8023442de68af0011d6f54cb40a10c0416a07d7080ee900c2800900166fc1c40066fe3c2f10f81ca22, +9f14008e22eb3500b76006434204728a00a027100047411a004781700c0087d8a9700cc3186c49ca9844b436cf6eb4004804644079701a46abb50090cc2e6f11, +a00c2d381be04e0cd16bf4568c88d60627110800a8456024deaa0cd6447c850489eea00c881f280b852a00b00204f32b2e2f1c7ac0e80d00f42722802d110945, +7cb74468b3fc12f010f0772d275ed5109ac0d504bc0910f1d09940eaff00017f42f0d21f112d800b4b0ba001b4080b3d0fc1435f492f033e001efde72639b29a, +56bd36fed5a3f553f50ffa61c102c0a60ce2aa5953138d678477585a7d73c0029ffc4ef52b7153df1b5ed437353f3b522b8705649e062c40b4372ccf7c1cf5bd, +0362ff0fb000cc0895c6ad66627a88f3c1843d57c002e009d4f57d7d580f177fd54bc09c4c550313a49def7d6e7d4b3554ffd687f5d040723d54dcd53f04703a, +0b70e14ec09689c340d586e86a00a827c66f692f82a3f62cc4a0bd641f444de4f22ec8b8659f19cc89beac767d622f1a2fd94fd3c346636f631fd583769db852, +5fdc3703cfc7751f33e00625f7a181677d364fdc3fac03009e38c9c90c8c06c103aa9b2afe10fc3518c84066d33b002c3f7898b69127c37cfaa399c003403330, +6380f74c46535366646626bfe9bd7d3f25e3cf38f7ecfde8d54303dff7984fcbd97d374d600cf72dc0f3832713771cf7873d4f190b501ddd002c45cc3d6940dd, +cdae88380ba0ac951bc55b1810f36196cfb4c0f21b6e4d60799f4fbd162be754bde0823278f75a3df53d42c00c9016fff7f16d53e39e0ff8b654fc3d42b0dde3, +bdd41e8e6f2b200478300300bbeed90f02a47492c132501e907c2204cf8045c25a40a73e2174409c19ef82983c03788aa3c732502eb10098c330c090eee7fc00, +d4cca2eed99f062b00e593e2e6e57bf69c3eeb3d751f89afe47310191695c00cd1dfaf3241be254a7def48ddf7afb0c4ea00c0e36be542aff80157b0021cb6d6, +84f073e84f76e13cb73cc3f81030fabc652b80613fda3f1093f57d7e720dcbf9acd8f9fddc9bffd780d7571a0f41723100005e0ff0ffc00a405c3fdaef790ed1, +a83fea0f07b4b5a9fe7eeec9e3befe59a2fe2a53ea73fa4d00a2405edfb80d00ec1dd44c7e7de7af026cf66cad19050d2f6ab113807e73b00070c430fa7ca3a3, +b5323c0a12a71d02bb5058692c3a0828d100200d9cca2b800f006ce00210fbdc03b2c60a6009f00d6712943ba37c3d4029b0fab60caecfe98fb69d2ab37e02bf, +ef0300e67e798bfa41ee13043fe02aa30aa0f15442b00cfb5219f088480388c368c0b62f06b02a93fa610f2150f4252c4b06c3407f600af839880ed200b2afcb, +8085da65c4fae8b3f62e05334c013005210d7c512b80a056b9e102d00112a7a700c9b3021c839ebc014cce232e103ad2373908b6bfeeb7fbe66ed0c08ce3efd3, +08417f28495e0c13bf13e9941540f25ff34301383fcfaff3cfc5a246ca40ca5f3b21005c01da25cacda58f52ef04d2fe5380701c0390fc0f1327bdc408c4d030, +19c2a63f4c7cfd4601243ff3614ac4fce4003a400c30037400400141c01630030f6e3ffd4a3f1da02c01f50f1349c0d4ec0c23009c04473f43c0cfff7520fd5d, +0657a00244f0abbd453fd52ff483bf2101467fce9ff4d7fcbf1304801360043cf267fa3f46e506ee6f00b0fc69970cf024c47c88e331bfcaffba0ecb10d39b7e, +67df828ffe0210ae3a88ddf9d7239fbf7baa48a57d304509062ac0244ee9ff35a10c3ec03a6e739ca3fc03df7dee2a2405dc1fe4fcb6e5bf725f173ce73b4a44, +22fddbf16c4135c03a801048033002bdfe9520c473f04049d2c5f11f4c1ff009112ac0621fe3138eab00567cdd03fc1f070f07d4000194d978fa2ff1693e35f0, +029802b68ab7b2ee1fdbabea3fe33fa0e4efc70dba0a40e441e43f1795c3324b6580ea540dec1d572beabeb6affdefe9af03084135105cd0416c149f7b1c21fd, +049fff802840018cb34b0030690330024c010002110028f0f089025300a3000ac03f209082002540fa327c210a40002f009cc0b29f481d02a8009684b58f7aaa, +00b0c000400a1000d400704003500ab00a3000408004500a3a00009d40c004a0284003c0010d8040c204200a580b12c0a1000b000360846601fcc029c0021431, +b6c4362a0a40002f041c004dc1f194a57c9e681d20500a38107000acc201c0f1700e4454804029e0f03e005403e5d23f823af0fa29ca434b80c00410080c03f1, +2957f00f2c0311153000152addaca36b03a1000b50c4108ffe03a200053006f073c2000dc008107c7d10c8a83f3b0490f0694b530023802dc03f209082002140, +f65889bf33bdb717236c9974a003ca630c00ab8000a009c603681d20500a3804420088c03b1300a8b5271de880f2983d8000a0092080554c20500a38040c00ab, +a0b4a8004538ef12c56f07940d9e86359e7e00be5e03b649d5402074ec17f81043d6408337df0e003d041b4bfc9a51f7ac13760f8235c0c4caf10000e8c08ec0, +07940dac8a189c201138428e435cac60e3086dc91788a37ca37c1138321fd909d909e3086dc917881788a37c1138321f1318d909e3086dc9370a8e7b23e2f88c, +4874d7c07d825f72165c03f709d4630d709f403dd6408dc100600dd4186cc13540b55af7f8fb00ffba0336c038ff0329ea314b5fe839fa2d5c0378840af0008c, +02e6684dec852202e8fb030036a0e581459d53f62ff95fe971060c2dcc3b36007da9071b16b2d2b93542700d502506bf8f5b461d1c700b2205294057e7b2fe15, +a0405040002002c68f0be95eb9906aa0b300d763d2410e28a366d78880390a7b4b1018a46e2814faf93e49261de440713529c0020002c4fbf2c4d0e9850ea9d9, +75eab6de04fcc2021e3f91bf6664034332d840929402382daf19d980fb73ecaf0db0172940ac3feebfc040d6eb7f8280e6a3ef0f00d980198104c0aca700a83e, +59830d38ed578271c08e107788f9adfd78440a20eecf41d6d690f5fa4f5164034337004e1832bcb9dc0f07fefeb34be4500d1405d4cc35f0b750d884fa6da364, +f9400c15d6c08e1000900dfcc1dc827b401708c13c08fafe90f5fa6f640e00da03a16aac1462b8d66403f408425d1d640288010f82be3f002da7530ada00e290, +163c033d41b12a4c7044a40082668ccf92a20d2c040140e112365011040085c3103f4251b3710b5bfc47440a80212e290442063f80b35d407788f9ad7dee860d, +bffaff4018b4ec5f4e1c00bb954a2202f0f61b1e9b3e53fd33209f3c9933cc004d5d84660cf8c3c1c0bd6470fd3fb167fd90fe13fb7aa43dd0010380151004c0, +03fd60ffc10ddc4a6c030f200751b96d197003b08411bc135b0efb2c2880e528463ce8822629c066801f8de2067e29804d804888e23e134d234d802d8de2ae3b, +9bb864c00db031dc0337de65cc15a000a888080137c0c6701b5c6287050ad00d7042fc0541d136f03770e3fd0595db360f37004b18c13b01f41f578002ac9b75, +2ed47a17fcab42abb01c5bf00cf4041b6cd5407950d71b418c05434535e0db738c45f9f209631000cfb850369fb762036980026080988fbfc0ad44533c03c1c5, +50b40d1405a7516d462c33ee6a6e7a70dcc0ad4453d44568329d4d5d24f323040c00dbc003c841c40dc0124f6bfd6a76c00d78e6fa0342c0749fdf23714b4675, +f094a100b00de6e35d308c690673853fc037b10d20afdcc0dc8067be550c00dc4fdc8092d165cc0770031cc415c73ab54d6c03a0d3ad8a10d11f88aa071237f0, +812b36c058942f9f707cf8fb8c0b65833680bc7203ec07362d57102d29749bc2dc0002ebb301388415d5407900d50f00006351be7c129d0cef332e940d06aed8, +0902ef4c005008c051455411554415513b8e9c16fd4e44159fd91ca0005ac084c500c00d7c13dbc0000ee1c30d78e65bf503803770d0f86c4427434535501e40, +00ac82043008c40008035c0e28d01a70ca2200cab731900d0003d49c28001c600e0007280083400c8506c02a6c008d0028001c40948402cc0070c00c70620d02, +83000a000798b2080083400c000334008002ad0107c02a240c3823d98030c0e5000f50008e000a000a000f500087000c80298b0028df870030c0053008a00070, +80023008c40030c0ac8204d008e0007054804028606d6b0008036e0bab600244080c03f18231900de008a000c0800010057008c000f0000580f27d08a000f000, +3c40013802280030003c40011c023000a62c02a07c1f0228000dc0208002c001b00a09c0201003c00c7039a0406bc0018b0028dfc6403620053008a000708029, +90000c0228001c3028000c18001200ab000a00073400800083400c0003340087008d400a000b38004c00111523f0ce040c6403c280dbc22a20000402c340bc60, +0da846d5852f30b277998015de807cf189c5159c0096233c802110080c03f1c2c340bc600c6403c2548c0002a07c0702455481c030102f440044541155441551, +fe15df806ac45c9c0ba007a78d120e0b50110400e60064dc5921e61fd3238b2f0999df0c4874ccc0df806ad4e05bf95403a08c3700239432f802198239201978, +01241d42000eeceed7a7a36d3f4d0fe55f4303a6357bddb9400c88d784563971cdd348a400948336806ac41c8cb6fdf4e8812740c4fd06df03a644ccc55cf402, +984f380021fd1a770213ae247202a0fa54adb7012b7f02d4f65c3602c01fc0d590d979bbf00213c7519abaafa55cc1090504705d4b0397a6543b6f0d06f8d6e9, +c58513b569e692494b751984108403e4bb572f41f04d84034b06e140a1921de0094cb824cf09d0c956b42de6a7c10970d52bf91a1ae180c9816442710019f8ee, +a55e07d04379c00f8056120e6407e20078f8435007d0437957e1c0525dd227070f00e1007931391616e0bb66dcbe5b0789f98403858a8dc6e176eb71052740e6, +d9a626d6f0407fc01ac0adc00324f10600b782ca700527400f40a1ce159c006d033ecb091007702b442503c0c08c10840e5cd6a1144a420710950c00e2001612, +da720527401230aac0159c005719570614c0adfc03f700415f72401070052740ef035770021c309e045cc1099005a43b7005274017005111159c0061c0494c10, +7e3c09c238306b9e001c0130529c90f280479c008835686b9620bf447d978738825bd6be5c45becae9b0e757a803004101e5ce6fc0159c002bb8040157700214, +e22780464c0972c42304a8002ce109201f780288f809f0e3700234bf75cf3850b7f20fdc03ef03571f3c40126f9027004780247202e86a9e009d6e620d0f9800, +b7489f23bf747d0800f5c084fb3e1c1b9601a2c338c051996cdc227d8efca29a700298c4832e41700b412a1802f7c969404ee009d812a940ff8009c00f3c08e4, +d903403a98008571e4402d252593008f30370fef0439240873054b4033c0122e1e666f60a1ee8031410e48394bc0349084cbf1ec7d239ca70139308e9800edc0, +7789f99003a811c60139d0da1c112680deee0080318f32c314e4c0176502e8ec18bcfb04ef043950479800dac0b2ff186b999900d7c0848b39bcc79900dac084, +e02aac36cb7f8c7dfd750c213541926bfe5fc1fd5259d7fde4c02d66a3f5c008542640d2c6e00f00e06a26802fb0ec73f79003384539a016bcd6340726000b55, +0eb436488df47544df1c9800b43ce6438380318f326a5b39443990ae99007ec03dc196540e3c1528c703003930b2ec021a10e540e94260646a3071820d4221c3, +4fc0030039d0da107db9f9cd8109f092f0dc076d44464d2039f0dcff06048d39b964500ea805048d64dc5f711a98001e0c844b32a4ff3abd980070c03437ee1e, +32d2d7116102b000edbf63f97716cb781cdc6a358ac691c0faefdf05415139105f51b961ccc9c2bfce69600248883b3b18f328331c60cc6035e4c01c23720c07, +fb0440e862ea22e70a134fc49b06ec249c03e62f42500e74b2ec0249107c0656630280000f023930c15b062408e540be0cc60ce644248e9af62f42400efc0d7d, +407f60689003741df2c596640e5443ba1ae400f13b1c90037c51260053cfbb18e7f04e904324710e9ffb171b2be43ec14b3d824b598105bf00d2dca93c08e540, +3752067c1de4c0fd0089a08edc8c668e3863abe159ad24202365009d0402a4f8e41fdfd50860047831fb32e5802dd109449e0019e4004e8155420ea046e4c0fd, +410ee014e4006a648fb1012304e5805b468a510eb815e540a81139205f38452c03384539a0639003e014e4c01c831a91244215d6ed70400ec419141b8e493910, +209103a8113930c721e99003a811c69c42500ef418e3ae948553c462f43e0f35c51539801a9103f231e4006a540e88539c3ee4c0c8c20bb00e483ae480b8910b, +1017ba407f60689002583bafc596740e0439103ae840e0571bb03a603d7c0eef752e50ce171bb2c822c7a6700eb8412b03e214e1321c9003d874ec0739801a95, +2cbc002cb1648c55881bb9c0e9430e8c0ee01418b32f430ed0dae4f6cf0d4240b83a0090033805399da4730e44369c81e440feebf9d86c0503741d55420ea046, +19cefb76e90d00e415e4004e710e98bf90033805c60cc1810795032df5bf3800feaffefb1cca433d92e169940397ce08c01c831a9503b6c4984469440ee014e4, +80d7daa7ad03815f15c300a00eb0036d00d94011920bbcebe208297e1e503c080ea75025401430e1ec76186e25009e0e4a9d0b38286c540a0083b1299c036ed0, +f0036b3944570be0539485493c6e0f0ded033ec0578cbb1e6e60ae68415ae41be70418c752422a3c1897006daad56604c41594000cc86b312ed0303349034007, +47f310045cc13fb08c800f30030500b684be5e980d00ea007eca1597365e6147392270beea6701b6a0049f9c991306a0040401544010c004c56b5c6cdf150560, +0d6655fcff3fd00bd0011104f8003340a0911c0c0385d90000334000fc2e654085d900a00ec008f84dfa04ffff0f2403e003ccc001e08db815324903803a0023, +1400ae755645107000744004013ec00cc1ffff03b040613633700078236e933ed900d0011104f800040157f00fdc028503cc400180edd13c14660340074410e0, +0061b1d9ca53b318a73dbfbd96c715901a90000d67dde3efb8aef707698f6d749c4010700524c002c0d0c078cc01f04b1d1041800f30030905ff802a50980d00, +c8a2be3f00b0032320440d3b709fc4bd6b5971073bc0d5802999969143a7fdd9c169441491c8715d7795014c45d59443af64c00edc274ed1a3c1bf3a00b00380, +d96fd0c17539eb00d40d3b709f5cbff0bf14c877d67a48b78c47f56bcc1b9d84407442cd0109c0094a62e6acab0c3bf064c00e3cd467afcb3ad4ca7eb00380af, +98658aff0324002b802bc2a87d6e5a6b6e87d65a570442eb49095c7f7057e9c1fc065b123b70a27c19b003f7099fa8b6f3a320d4cf3d87226793bae9afd187ef, +e236e913a3873bc0a6e00ea0d5848037453394df1f4b9dccd1edda3b31b91d7f0e5b80ac4102f8876abd6c02fc42f3e80e382992392b27f858f7b003ad9644d7, +3aa403e51209f0359007281a297e1e203b6082ac0919031a836141ddb003fd0595db3ab062b051255732eb8e6fceb13db105ec80ea411060519100786afc7a39, +1a008f1904c001a4963c00044a65810bb0022cfbd020193d912e3abccb5c01094155e74ab99a370f240f0930032cfbf8dfb7481b4029bc039ef768acd6cb26f8, +0875ba5b7f1a8c00149ccdc108700f3c02f0030f429d5e1790008c261040be3343f125041aff0009151a90074898e8c2abc03660131ef512f83a4d16656eac3b, +e686b372dfc67c7933f0002cd1527542483a75fa085ed753f9c003b044d9710bb5819c06230055852d20e9d4e923f887135b000f00187fc5f2c083000f001897, +c10820a3603ee4402300c66eb55d2c5c01732742f00ea450141b29befcf2b9bbca9403d9013c60645bf7c0034db52e0016020f802623c0bb80a2f13685010f05, +56020f7811e9006a3ebf3f00c003a79603003c800e0d07fe0223c370e0eff3fbc103419b5f3602c019eb02fd01e1812cfa05ff155b523c006b73b33e65234079, +81429403be0ddb8a08a01bf22efb03e1a787b1acbccb77fec30a3c8016d4f81df85e4d553e1cc003e4010e85270202a4837c0f1145248206f15dcd548a47d0b1, +029008eac8cd0802e1898000c0159a0226d001c47c798043006a440ee4bf1e0186063940d75125e474e640680149f607c0035d0e3cd06a491064033d816141cd, +2304f08017810e5027de6aedaa9ab40a403d69e681af29c1fba63ec1035e043a003a346c9cacedeab9c0e9430e8c2cbc14e54076400e881b242c7488b4400ee0, +aff20076e421c02f8c00de60dd230f800f7811e8c0dbc2154078a010e5808e013458f7c0034fc5fe8161f1579c0623809510db8a1064033d4f9a392b3f020c1a, +d89187308de813bac103c0bb8c10c80390000f823cf017d04f8c1ef340223502b097f02fde88dba4572d78dc1fcb4a3c000dc0f44627d44c348fee000fe80a23, +000630aa43eadbf0b38ba7310fd02d2312a68bc07beb11bcbd034a387a3e0fc00f2010dc192b47ce502e8d00b526e603a9626e18239ec63cc33cd01c8c0032fd, +c5c50e7811ec00ab3e3da02eac03b7414b115720028c3f699a5c810800e550823c2308813a40d7b10040a9370f914ebd83f9600269150470367cd5720522c0f3, +01007c03ae22d3f24ec7b1d103f5414b470237543b0e844be040fbf00d00221a03b0c422602f6ae6d1033d01bf0f64900d1817cb3ff35703c9158800d5c04795, +42e45bcc3c2f7d5870b9741001c08f5dfe1000b8011b63fb4100203620142b1c0353fbe009388a1149121d3d10cfff3ddc06401a00f00d68208c03ec926a8410, +dc227d8e4e93459901e00140c845452256595c8c7360610511e22c3e661080159a08800af00d1040bc13e44039c00331aff500342216b1ef8800aa7ddd430f6c, +031c0fc07f65e5f68800e2be9202640c872cd6a3090420e50184f019d7833db021309a4000ef433e089f7162ad3b22402901855b5ade01401beb8e2ab03ea3b8, +e2049ae9dbdf059de7f6c0db23d82035b005e20086f764a10df4049d8d38b0daff0f880005a36490fa1165b14e6c14e43ac7131499037b87fbee8f71c54df0eb, +4db7d61c8800167efc3e366308dc2702553a87f9bbae733c3d6ef31b3f87663025adeb1c0fc09f2bc21588003dc07799c9690fa418e8c0db8067de8edb036f0f, +96640f2cf39b4239404f40dddc03c1c5a8a708d0aa633ed90d6c401e40e8d8035854740046058aa021013808ff0ac9ebe05e3a3e2ad13060dd930da80bf7805a, +d412ed6c5cab2cf280c350940cb1cc90bfe3a3120d031612f740f18366ecbd013ea741085086633e0c00f7805ac0b8f8021c21d62a86f382a063d803f7c96920, +51800040c845452254b3002541481a103a805a7c571bc054be69a095d8036b46eb7ab99f3612f9e55d5c410880e69f9a01211715892017c406ac0e580f40a845, +a80bf6407fb02599b36b43662b42900d800fec1da74108a0e91002c8281bfe70c84545226021f8009fc81bb03a603d4034d40c3e806d46e7800029be57a31208, +0024823a72338200b10120007085a68066590116151d8051801a9103f9af47b0a1410ed0755409399d39105a4092fd811313aa630f508a1203a1052409fb3899, +6c9456820f20109dabef1b7a6e0f644cd520bf019f78abb5bea1e7f640c6c446800e0d1b276bbbfa2e70fa9003230b2f4539901d9003e246090b1d026e930338, +0c3eb077bc1f034021809516e3afc2ab2f348feea00f405184006f40d0c226c08de813ba433ef04ce08ce502e57c34326c32009c03ba893d50731002982ab7bd, +50810d0442063f808e35e0483503e4c5d9404fe05ec23e3b66214097ab0d6d0a800f79c0f5a00f5892633e715787f0bb317ae803924808403e50c27b236e933e, +1227500afbc035120e3134301e7300fcc03eb0136803c44004816b9d5545250304d95c50a40f4cbbc31ed3ed00a00df40fd02d21c0c4e2f17352f32f434b9fa6, +0f7c7fa8c0c08ce2b0fecf2f6021a5600870aa23bad142b4ff9c8e10ec03f7548e94337097c70aeb239249fe06085b03d56e649cab5ff7d202b453bd01dd4511, +b0030f429bfff6feb45c0ff580ae0002d00181396b029f339fe3d5a437cf0842001072519108b748f540fb20213c002fb55c0108c00f3c081e05deca36bc0d5b, +5d7ec56f005eca62710520400f3f01cf68f04e900316f276504d990df5ad5fa53bf040647305d54315720f20b1035e04f0d9d9ca16b0034b18b691119c135cbf, +1106849c3023cb80c28c9c3265449e018c1c3769dc9cd101436603bdd1b9712547020510620860610303b1190880df400000a0056ba02206190e3a317701041c, +a6279b3c2dc6bc710d083868f2cc49339b3070e0942163f4a50d1b02abb8d1447440a49903c2cd1bdec8c903820e9a30d409c306449b326d786306849d3472e8, +4111397286b6246cd4818cd031760cd93a079894197914848d100008d0869646c3902183724ed38656a5e3600a9d8f4a8513e64c99392ea64327cd993a6fea34, +22427ffe81d883eb7ffffc51cb2d1c40b00134226e5c21ac72b30030bb36804216020651200041a44331d0149e818a0740353328d4aa070c18f140415c383f06, +0419fbf0bb043fe6022da2a22128064ad9afbfff021c10bd1fc22dc01004fbe0a031f0504600f7d1b619c0221e0a2b028f090001b1480cbc0488c503ca5d1e00, +006331001851ee1b8002b403410f5d4e8888118718d7c30c8e90e2fe5970807f0d3bc470206c20bc9870380b3924f0c300fe10ccf0100101223cd03f00f31350, +6190b348e5b01b28733b1ada3cf3451f07b3dbee86328914f39107efc07bad3ac9dd7a03001c1db17439ae11eb7403008813548af3a7b60056d883a638783018, +53514564410142b113a0910501b8664991f3f2cb480049cee8c1c0c711e414401200b2f42803c601edfee9069401c02160a38c448a7b071f0c3bc248838d30c4, +a05918c9b6d466a3e81968d98110016400d960d1eb75a04bfdacb324c4404a056c6f20f8641d888200661a5c4eb8f474dcbb68202c581c48110084e46b088dcc, +a853fd44a490b881133d3430e115156cf4d4c2542f4c505e5a53dd2b96dd8670b5fb401e39c5bb2c935afc40448fd4345d898dcfa2f912c2fb274bebb4454f3d, +bc52389d8f8392648827a3240080f3aa4f5512411c07b007b1c77fee0d72c8393e480e000e9555db4c13000202f0b664c48a55bcd8e00c5b193e38c5130d9498, +078a0e9fb9eb96aaf41a461ddd51aa47400525b4b87db84910e5eb9101e0d34fceac4db13a4f353fee3492e9373f48e512392fc1ac376657a019b312cde588e4, +33863aaa05915a800f6aa83c76d413005e3beeec048203268812a1d001f881c6fcf18144780128a11c2f9b7b71c61b776645bb53c088fb510c3c98726b244454, +12f28621b210d950ece5225f72680500638e320227400044ae611c88f216c408484199d9d9b0770c0014446b23759dd0ec05524822218004a98d1f1a2159001e, +1be6828616d0810d3f0158e774283003617dd3c386bd8200b12e35c6cef7f4cdea434eb940ea0b8042cee9add36f0054b0c63a647652ec7d411680db6e7ef1f5, +e2d82070f3a286349035005a28ee6a1a1442c35afd321f2253d83061b31a922188930070b40148a3f41d22556860001b448264038080bdd862680165e8409414, +8c6503800fdad0860efd7454be2a424837a72e623167e2a0e46c1cf6b3e213d93603003692448001263688037b65e04e91b460452b2b9903f081110c0a1c86f2, +21a091982100017822499df408c0027bde06e248c6bd318e320230c05e139899918eac7343ea1c41c0c7e130333938caea72b201c0423b433ab4a00d4c99430b, +805538b1489b19c06800a7c8d92c9204280e191199abfb59cfe41ca815071c3000486241d36308010bdaf18039eed44503f08e928293110036101498650c6828, +0d02445192d29468747a6b00db70121681bd24467150b11ece387e36006d9c2c508b9fd972005b2c197320c9dc0d6c06ee9204378a530c4a3ac83127cd18a893, +9e1c5a821297cc8520852748a124558081502398c84011a4c6d8242701c0caad7a0850008abdc903cfa9794016f9e2c7b022b702809bc8e0500422f9c04a5d20, +047517961c74d0134e97a953fb3162a8a79a0e847bb97151946574fa87072471792818ba492c003db6a7b8e40c4415f5897ac26aee4945ca2b20a8031c422015, +6aa73d432b7ebcaa294e3aa1fad35896a2e99c663e130011ac2e35986c752b9137b834857244980a1f6f804ab2020c55a88a1989c35ae31cfaac009c1888247e, +8286cc452e1c4886660370072f1c641d176d6ca39c6135edfad5c4aac90352c8f62fb07fcd6a61bb0080ab5271da9b9e79c6599f71fe2c98d35249940cf02bc0, +c14a1a74374a904274b0a837a8280440105066730732803893b4c30368f81100815749140a15958ac0b0fd8187800270809f019477340218ac5ab02a1e53a240, +81eb2b095e32f8c0302a5a823805ce6f60bec822007eef2ba0c4405c43540f6049760024bc56b3bea28a007e07f0e94d0e679883ec1e8ac9c31bee10413a2471, +99434de8d082390040c0ca07bc7857030088e48229261902010460a5054adc902e66d682120f0f1020bd033082951d60d4c10d34b003ebc83f2d704520ccc639, +0d64e8a794315165f2fe4a8a9331103951e37ffea303f8c001800d641883870d60d04e07fea1e3fd1cc690061a130001bba21a40c7c5b103860e65f0b07b1150, +b420249324c32348dcd0f19c197d67199d3ddc6604a0a3ca0e2c0f0000753ec3990c99a8312eaa4c780390cb200734ab3e1206b510050e74786059000309895d, +800c6fd80e5219c456100f29e1403e57804295336a26294bce209a96168a00091d2b7a206bf601092c45fe347c3ba00c2c19d26097a704b996000454791a9596, +9412e4a4647b20db008c1b020ae8b119d9cef6a994eb1b6e808cff2c8796d281bcae690fe4379f4b60a6d90309008ca40d31e1e70870e2322703201c292b6ed8, +c0a561028231e8995163f7c0fb389fb39cb92cfa5e7743b00e29f4c21b22ef03c007b0e531ec88df6c81b81935c406801b020468f293b5ed664c7ca46c537857, +11dfb7ce7346dd9abc15606a54bf41d5f086a866d7be82b7e0e632704a1aea704e00c5e0adb8cf314c1e06897f1200de9f81dae2e23636e8cf20d0789a1b3271, +7ece591e489583b0e65f00fcbef72c0761a6874b48977fdc4100f34d1d78c2922425f8614338a8bdcdade50287a590a10c02b16c05d04c197f20096ee8131bd6, +0554b9024b5e409577734b409533b0647208961c6a3193186c802a9760c907a88bb90576af720a964b1e409563b064169573b0640154b906e48b8ab9074b0e40, +a0bc9fd7dc015bef6095df0350370116ea060ec3c727b2eb04b4c30170c06f01fa1d699703fd5872b9004b7e4095abb46e409513b064075423b064458ab9014b, +f5eb38f460079259bbbfae30b7d0483700eb10b99aab3faec1cb1c905e9c845b7bf27594fa643085ea3764e410a000f9e59f1cc079bcdfdffad78700852aa4fd, +4b833d4b03b6c8b90221000132c08b9408b8000cfc3a2a9888c0768abf81a8400b531b89f5db155c964b03490101ca58b03fafeb8abab80b00d680378af91c0d, +a80598a1280480cf3610833fe341f4701b03b7600ba7a88339173cc00c34090d01c815efd32b0aacf808b8008ab6f83f001df91c0878c1ae5df1b605a00e1504, +fbf99c0f7082af080b80764aa4f1813701417983315883ffb300813b908b2d0363b8218400081882beaae3360149246196f0ba33700325a4c90023240dfe3b8c, +4b3fa6580a3758451f02344308a880f3a170c00038a844b24882177802100c8d1e06d091a6abb904c3900b3970b94394d88a27338334582983314833365cb939, +c62a221906c02a78953009b97003ac8a840048fc89ac80838c7062805281b73c9632229de08a1264b8c22cdcc5a7b8b72906789559243923d130297c1b3257e4, +214039a47003372884800948432620824000e8af44a2be6239520a941a256874dcc4ae780110f0bab236688a4b2c834cafc00a37288a34185b97cf41012a7883, +a802375883a7b8838bd299439aa3c50639b803a6980931984cb3a5680aa820259b957a9e97c00b4fb14b0a1ddc45334063b84ffa1c17780283f91047586400f0, +07bd8bbc7f008245201807bd4b3c20002b0e08d01e587a138995fac5b9583bff2080822428c99d00c803b1c3891e33a980086888cf1101245d3cb7567cb95c19, +c384004d0080cb88f02969384c04a086246460990e80862f7680bcba4c07ca6b40bcba8c07c6abcb8725fb03edd8807ae4c30cd0fb870dc8699447c9bc0d603e, +1c126ac84c08e84c4cca9c1908c04ccdc3f4a9c704810190b085d12400c1244c070300078b68270164384c00d005cb0480863b40cccc4400046880812ba32f04, +cefa02cfeed4ab070280808ad0ced8b881801f820465b24e046b1a08f84b0d9208501e6e9a2c110a90be4e8926eff33704d3444d7050cb579f02cd21114dd20c, +eb549e40808ee8a07c4ab36b29cc78bb8ab0fb33a51c8da6a838b52103811268ec8a65748a3238032065fa9c1518024008184f27da3596e12147f82328a6533a, +72aae89c4e00d896ce5a8940e6744e65017807d4db003940b3833f230bb678ccb164e3b016c80a282a70822b6001e8f9208008903b189982be37d9803f98afc7, +17e98100f3dcd00ef083c0ec6bd0e710312147f0159b4924d146f8a1e05008674e31d2ec542643e0542a65fa1782ba92160000262de14eefa7020ef6744f7531, +a64850b43bcaa424748b7c330a5202d0cf3a08c4fc8c48fe1dc897a1acb917b0f401f88900c5995083c72400096082ba136d011495031575fdd0bb10510d2351, +6b3498c833a4e43355f414d23c2cb9534edd0c29735532153b809be3a409a09810356280f49c0f812a1a965d5b8cf274d98013801f0930213ba674ca05cdcaa9, +4ccf4ccc2179cd00587117ec584d0028d0007b801f0ae02580df433e08d0a37f3d6b08608d2835d92d556a33450544b71f4f3db2eb34cf513f1b3b5024805535, +8095a5e2c804e570c99f867829f2518e08fb814cc0fa052f02a0005fd9a168b2809f09f8a14e5d124df420ceccd30072cde4cdcf0ccdd12c904d40b04d009086, +093ac328831f43a94aedb99a011005221a9c831bccc11dc4ea0aac1825919889012310c9ae5839945f2128c8c23a5a14140040f88dabe957d801c884139cd813, +11622a0e9badb901b9f8595108da889d725aacc003b5808303e069839f05059b2afa1c04800340a1a12a2621b647803f2187edd708a380751e7303a9a8d957d9, +0819004ff056170938d8f9d01e2a6a04c1f27b9eaab529460d8884294215a7ad05dbae125bed7913013a980331b84ab2069024390a03ad1d1803ae5d50abadb9, +a834c8c95ddddd5d566fab0054e15b407119afdbe25b36d0e22b015085d9a202a18f83086fea0460f9d091bbfa04c9dab029841d08ea53d25882caafa71a804e, +04ace22602c080c033742d12e29d81c0c8806f98a9d51a5b317820010ba89e7fe64d5eedc8007e283d5ee44d5ee55d5e5ee11d5ee22d5ee3deed5ddffd5de00d, +0cd8dfc019005f8ab180831a006c2219a83979930cc805f8c0c23ef59d4eda2a5dd2f01ddff7345fde82192681e904ef86b02bb0795e66d0992c5812a16ab2d2, +8c57e19cd7d4fce0d7100e84210087b037900e72a0878970000f72e08689908000700061cb44845004800371f04cdf441825391a1da23899256e3d1d00e0b33a, +cee14c4de54000517b0862209061780d868126c6010a68e18026068126468126251e9226868026c610857002067af029012038044000010ade0c4d121e121306, +3bdecd36064e793d040009a063008880e27fd887d78c81c760480013068004d80180094057532000cc189084812080dd1f460036eee17285188804b08e063087, +6003425c035dd30000580e1238f09d162e8c0592d1005a21b864ca219d16a081ad13040031a8e4323478de400007b4acc8e0cac98393c900cdd46c883118948f, +da38fac53238190d59f8cab9690338d8f03459e605edb0831e200314149d831f5d08667141094b868a4839d8e5eff2e5977f18884c6c01f311fb073b1086c311, +812681af1c68ba05f448b6c0e60d8022071f985b0a3a0b420e78dee56a4ba9f8696742922332886780c4cb0027e82e17b48d23c0501b5ddb709bebad82eef212, +5800bd33a11720e850ae70af0d58661fbdcb908f761dbc2021800d08331f98000333f8b3122d8dddbd7b1488a6a0983450682ed00e1fe000323ee10a20f3c032, +c435702f0eb8947f8f4689a87403a996e007ede8817a902e32c028c44520990d1ee08787f669c000c067726eb30d40e786e73d8125bb0c1f162083a408837806, +32382402e00040c83003ae25241115b2eb6d902e19d8161fb71e2472a6eb8c3e2007e93a0eb62683eb213b690e60e81e1f4803b79da3c308e88176902e131a08, +e680023aeb5e606d0bcc2eaf375803c729d8eb3288c933b8e3006d3eeb62902e6cb7adc19196833665ee016690ae23309303b92e83aa7eecea6990ae1e682319, +6e3b3deb5060eddad6569c36426aebc6909e0e8081ac46056bdf8e23398003180ea080ac7e05d65e76697c7e8a1ad4b56c0e4094b3b605d60438eac4a6ca39d8, +54c8ea44606d20f0dceff62e83d8f16f04d616181fc0b742c626990eb0de1e8842ef4b8481f50ec16b880d650090025e374833c7ee804e3e986ed7b1ee161869, +416f9ec64239608380c4eb013a60ed5c95c2ec3998e836f3c8ea3d60ed06f101830a671d38c8707241606d2490709e901a83cdee0064c86a01b8f8881a24033b, +6dd26c232cc7ecb593f60032c8ea2c60c8d9d0689e06b28b03d61edd367a0a3739d020200782ac16165ca100c73edb33e7b35e03d65626f41245293a26000fe8, +a4bea00ba683cdf6c86a1f606d7c780103f30a6982f400662b8fe92c9f03a4203f6b2460ed1081f373b5f8463ae8f20628606df7a872b628d0303a702f0f00f0, +e100973175542f9b0086c68015f85b922c641db7256727ff3002653a1de81914800f3213dc72580146cfb793fe00edc2ab2f1e93487bfcb1007ad00e0cd0021d, +00f801f56d7a4f79cdfe80cdf9070c30d8f517c16f47c7c2f4083076d4ce5bf456bfeccc8e754ea0e6515d4f75e5e9f5f5f8c6000fb0f5c755dff49e7e75c68e, +12d08e0b70258d5209a5df66ec36030152677117d175113da782040844698151bbdff9b80c94fe0d007e905f9ba15f631f18a00fc0ea7fb8062cec98230bafed, +a27802686ecb9a9adef111dd630ae0a0788f06ed95f820fdcad9b6f8018d6f9f9f0b03a2e559333b0be006f8d978ff1e988b1038191008b3606f7b7736d2f6a4, +527d5f681219fac968728f7ae75efb1555fa81b09101005d5c00b883e2f0849980fd1c0158b386c82ddccc40dc8618aaf67d379fcf39dbb40b10867ce15e83b5, +a72205207c930b10b813be57aabf0f7c2c52600d1fe27945df80846d2100909fe5248717868a3a850db84f080208012f71b1293d210011a89a04ca0d60f7b552, +d301c706816fbf8011b113e79e2ea53f406004714195d785e151eea478c107c278b167aa8148fced41d011001018ee6482fcee8878eea52204c4effbc5b729a7, +ad3991faa1047c60a98f01fd8215bd8a1080e9cff9f1912b97e6bf7581d175e222a8c3b2b6f653df09052f817c2cd0949570f821e00a011730b8937a501c59f0, +001460396f6f110205f03ffff742189cbe1e897feb14902f1168a1f908aaffc622046577f819809f02ca952b2a5204bdc375550ddf79017891828a80fc1ff878, +18041007740010400002948063410a8ee0492080288000201007580018440050920c514001c000304a0828380f114003a0800180807f3002d8001ec00137f819, +2ac008c007a8e067d68103a40034860a2228014a20384002040082144008a2800316801dd8037f4603450108a88188ec07486c91c1c06721800f980042e018c0, +01b0208fd0825cd06484670a0201ebd0020410061d050b1b4101000fa4800080605ba883a3030050380150411a54075c2000b44201e00218500053400a808004, +40f7c89dbd532dc81807f02303449810e0b031569cb4830538400be30792f04b75f00ee64152e0283cd606df601c9c83005000ba200dae410b3e8b303806cb20, +1040344e40839065131a01ca84fc910cb88c80a1420c57810228d761412615013f19006f7416023086f0400cce572370d4664169bb2263e524d559877ad75a66, +42d782b13416fe1881d63b05ca2360c5601630bf10313f4e040a759828fc07164057be090380b1df312630e0982013050653b86a4deb4a31d3691234846f853b, +c88b27a75f505aae0616cff88701517b06b138c8427d38fee2700a64c329b00ec06a083f806400c449b0967c780bdf850a1ac430813ff77058958d0094801b72, +38e8c2a951727e1e55ac09f6db103eb1882bd1ad2c989ad6c4887812bdde41c4ca30d11e2d7103902d62591394369d72881e14e20ed10d28b326c32405594484, +cfbe00808d50006e3005b41701c0793a8b0ea36c87bc090b7dafb5c7432c82eb2846c4b0218ce1fdba4f481d07ebb41cc0a723080ae8533a8241159d8f418427, +e1072ef60591108f9a24003e0936e0560aa8090d64650d421229052880f2940217cdc72cda0815008b65af2d72aba572a18d600020510da25149900abaa13100, +48dde809080128d0a932b4113200ba81234d0a00e16f60fd203fe19b67440620b066bcce48000128920033077c5d460a84237e23005ac8c050ce1b00678362c8, +18581fd01a41060958903fb34f5c11b8ef809ff81b2c61e5524f0498c6e3501835109000c0713c5fc0810c06a02ec881df04809a37b014561a5f2360888db391, +7e1c03fbb11b8904eac900ec081928401953805e10485e4a01bf3138a200d8f800be618fea40770496f70b42146323608138caa1e3281507b01de35137325978, +a349a9649b6809d180443e8f95d21ec1258b188e7da4031a3b65d0431c39a881f2473e03187c023412e465b40061403dff07008c32a937034535138640123002, +b44305f8047702b89d6ec8b419110009e9084cfe8b9e7001310b01deeda908c647d28104809374d28b508ed7b12002c98d8a6323348076a6a4a4c11007421030, +27c18268103be9e54129e927d0916e04a716788b9cc21ba80026a88ef3e1eacc6000a08433801904f70f2ac025f01c10686783003d3c032898003562025c0676, +f62c406517c869a01c032d0d541a0efa69071d60063a1aa846de9bd00169e02bf5e42fa2074ec1315f382216a2a3440ec1731194712010826759aa2fc5211488, +4a403252c09b5193a0a820a18192bc81055839c3c08502c50c5806909b21a7c33228604b5e817c4101bd6302b6241d58c015d03b0d4f5652520be89d1bf30f74, +0806c52d6b0e0980c7005800d30919000126c081a6d0031400d3320c56501b46f24226a526884bb6ac231109029c0017688550a23e9fc3044b001e920c43a754, +940427591ceae5400e40114002448009c0820ce00d7d498b57a502f2cb00100675b1540440059845e39424674407fae20240432f6239046a44602d59b2cb4101, +0a0c019b2932ed25313fc7c624024560983e85625accde904c00503219d45371c01058020bf3ba8ca05b828e294005925131d1c3c52c0e11b897326b4639cc19, +3362520a953936a70902b626ced4994d149aa0430a040190aa00dc10350500cb4226bd5c9a2693671b330850012a20529fb93283a6cbac39be4494ca49053084, +ff7259129933d716b86906a05543700145a877c2125b3eb069724d92c937fd4b32e9e62d4a024420652a607788cd0fd381b4b9a0d826d38ce6cb3c0053200968, +29aa60201480f14203308008260124f0cae12062464c1864c0c9b10078a01d4c6118f80c8ab19265d01ec960cc4d49e524836b09e4c60b244e9a0a9034ff8002, +799e30c07a924fe55a84eb190ea5a74f9aa7f1040101e07985607a2a4f1470080c30089ae7f3c40120e09d00207982017b080061d00d8644005cc14038008f80, +25089fe8e012844f7d428248103e31413fc1002c080480809fce5379c281f3e94f3cc03cd9272018a5f1f429dcd37b2a001080029f2201b60902b427fa040368, +810945011eb47b8214033003130a029cca994c28045006262006dd00e71803130003e5090f9e273e1a81010500a160a9e113197482f0890b689009c22728d804, +c200308006d900368704005c004650004d31102ac0f9a2001898a161000dd8d08586012c0043c3000690003230a150a00125340c0001141ad0300003926718c0, +076004781006f00000b42205101e3c0ace30800ade27cf1000230800a00008dcc08bc2006fe045710a02b481174501dcb0065e140360032f48032fba98bc2804, +ca0edea83b90a37430a3e8208daa03368883304a0ec6a83976276c00075e1400610016140229c03330800d16c1f4cc0621857b34cc86dd4eeee1513c30482140, +4b4501084f27850d26e519905477364f38c0cf00c007d5010840002808009b14a3fea095d65120408334aa0fd8283f78283d18a3f6c08ce2d48ec2034f2a0fc2, +535f8a4e5d291000e937d5a5e2949796909666535bca4d710a4c61296c90a57805053080958282398000540a0a50802a482928c000a61414a0140f8a52500001, +16310a3008a2406f7ce53f88037d8076288af69133c7d60241d050a7e39e7b71208804a429a116a744d84f4710008a533de56771203c812004a1605798c17eda, +13f054926a52d1c15373274fb5a926156dced3a442029e0a017ea35261c120682aff8402db42a5c200a53653938a05545152c1001450a9781006f1a07d0e025f, +157aa2d4aa8a03c6ea544d2a0278a93e050360807b0a0094940a950a04506a5271013388077974106000190c82205055a62a544101532daa2098020341a54203, +76148fea513b8a1e366a58e1a8614da7613da386558d1ad68b1ad6c56458c9a802e8e8168506f1e0ab6e1506cc55950ad5e90805842a0480aa5b4501f633adba, +0428000e6080db0a806c4a0c4c2a30282a72400143a210c0c0908a00472a566b3a5a434049855bc0edaa70401040a6450c5204200cb0c12168c50c10a942151b, +a0aef200b1d203c54856774059f7293cd18163550790951d88951c285673c058dd499ac08161fda400f832e8e1b40e84b6424fe20a0e98290b40806e0503a8e0, +75c5aeda95bb7a571644d3694a5dc5814c5b583ad8a7ac15058060009c56309002d2740832e98e02ab210001e0a0984200b2f203c9ea0f286a0f182b3e70acfa, +688a4da2299689a61688a6d8219a628d904385418aeda129380036340000837a044fdfc92386270025ac65c59dcfd4a7e975bdb6d7f71a5ff02a5ed569793daf, +b0021be071fba482dc532a84a896026451d13c034131284e0a10a9db4210d4d6c5bed0142b43532c0c522c674ab12c34a13b9684a6580060d827fa41eb011810, +080e00100800a7150023501f98c00e20810e406749862eb8c10e282182000900141bd808413065fef003fa013838ad84d00e70401a1c8e038c8495f59e5e002d, +74065ac705c90a6d980064a0bb2c092f7c19022003a8cc3f8a530503673d0d0ed4e35840b21c26c91eb0186c4101000600a01527e8a01400084080d32a066e17, +502637a6cbc741b6369301e020d63e0145cc482f4bdbd60026d4c40438201ae519df00fe8c3c7be008ca052907822770c09d781a43ebd5b246061003ed30019a, +b2370007dccb0c601d35233262209ce1201fc69d6b97fe96a223a7cb6e900dc6907abe8273252b1a8880c720009c006b48ad0c801fd99664aa839f908c19a0dd, +8801ef0299eaab0dede018fc80478c02752c048ec012780212420a980020f0808c20050c001464c032c456e180c2b8010a280008181594e002a1200a6c8bd80a, +13e0d1fe0a3f352b08a0406f70065d1506d9e067d44e0af039b4143840000e504c52c3b6770e0e48541d6ada9f51518903017ec13fe807d38c00af4902a02bc2, +55d65000410001c48b039081cfcd0f2090068f2008f00c9d9eaf020001de803f57006b0504dea27b7b14388080003b50efd95541011e05048f00a4465710a84d, +8a0c00bc261080aebaeb28a4413c701464aaba8477a01a808c820371080232c89a00c1195bba0b00079820a192d82e4a8207702c1c41041000100006f1400004, +b3907631b4d9d0fadaf710092e439a5d26e1b1b236149045c0f2bea61080ae1a4b7951c0e405072840579d1791d10ac818de6cb04b5e930a022f0818bcff1400, +0007d3170e58df81150074a50ea62f200b00e1d91d97e13580801484803f3050fda150b14018c0043040062690000882ceee9a3a8608f4146681839c4d0075f6, +39800387b6001fe0e08a0020600aa0ae1d1e2fe15158144000031501008252a0001800d94801087829160003782014f017fbf65100d000a630502140f9a5bed6, +4f0e4063b8e00270401f90604b8500080c011e3005100138f62e1040057c260f1f8b030c03f041030cc001be9000c001ff60a03e00023c10b084050eadf5fd01, +c6201ff407e640dd809014e04173c005d8706809ef0048b85d80042b5804600121945f71000dc0410100b000a615f2b73e178007ea020fdcc113040438809e1d, +3dcf01390004916005761010088021d8031818000c801044413b31050c001cfc00039a02c8e4c6b8800ebac1cf40050da5002380094409f0488010f6520280c3, +da01bc45bce927001a00a0987b58002b129e46c03d2880a5d96f7f25051558fbb6e067088004ca7f84c518c8f00840050100c08b0cfe968c14f000c1cbf2e0af, +5166006cc1ef0c04091901a7e0ca10cfa0426263330e7ec1026000205804c4740c81638b72832c0006060a020cc0eebce865c0a097e1815e600348501070002a, +4e34603f992763900031c09d10c018e080eeb65ddb893b01fb5961450020b48fd00487e3ac0e529e590292410362e51bbbacb5956816959cc6a037101e48b165, +a08040000c00c1df010116a9c871170c0d40f98e0052204cc35108ce2e20630c49bb0169f20d0c820ed0db6e3c7319db0f5680f12c0e0d619efb615b1c00b1fb, +183cdfe88b089a647c4986f2a562cd17ad7096f81a5f20804076a0919f6f1c16eb442ebe01c0227bc11c2f15dbcb7b954a326e40b4fb075031c8130da659388c, +c41124814adb9649e20812c01d2e00253824e0c119648376dc80dcf606acc0e14389ea0c0c29a0cd4d1912046426808d01d0944141f34dc200184c610010e85c, +4ff7861addbaeb94ddcb982113cf65bb0040042980e03602ac4251a09b08fe2d0158a03088037bf9bb42ac011c0b46104001704800c101880621f02ec0801898, +a7f106f52682140083d0cc9449f38ef200ec45579d59ee62d934c732d40c06609c78332fe31dcd1f1812a6f7114b03d26002e84b68a10136592b2278bb71570c, +600263100812001930003080874b8828c08338e0063642148141d7e0002870c601a073e54fca718f3470ad3e45ecf68376960064000f4600030240228801c2b9, +50b865b96cbda1848cadc39ff121d7db042441a2b0052e5700dfb47b860372004031800a9018101018c375b810570f87008951dc848b0052080a800139308112, +2e1c36828cc100e03a3ecf6700d0701fd071f1f3faa50326f08240c000b7401112808b4b024d60041b0e2a68028bec0391660dcb41370c7132f0e372000f40c3, +43a164e1ca3a619a2afae3b268138d6916560f084f3615c6f5050413e07da6df3658df953b5007800e02342428053c00d10dc13ab034a85b67fdec490400e1e1, +00ea80a1f90731e097110429e1857e22e881a0a51174057b2c8c690889420ef4ad0ce85b92a10302c006c6c702e9d28b88006d007e8869f44d34f7920306c73f, +c2adf88b533578ca0eb210234460eaae14835f08aa0782a82246362036c5c057efc3d81283552c57334900fa94768800a6c30c2e800ed001094817083014ff01, +c6a559088abed30126b00ecada1348161e548480059e5a610fd059040803154552ba7a204003bd520e11120e4a8523f0746e8b003bc0f72983d5c201115008e2, +9d20836eb0d0476ac005a002ef12046c273a7825b49465fef6638a330c68ae855006d34918b4ea0ac1066e3d103281979da4a41e5d018ce0a36b2310001790ad, +186c02b003265d746e80e6fa3130600c6a531883801600023fe1139ec051f8331f214d1f4002188164ec00a1161dac81ae5b000c2803ec9a8d54a02c8c81d998, +07806c1e30defe41b261f6c616d8300002dc48654f6c96e40360e0476083c39e760e05b53c2056fe1306606c8dcdb107cd65d1a51cd8b26a58067ea437386c88, +e00694819acdf2fe39307f5243c0da306c0152002f28cb76f8913f30102640bfcc40cdc603894215199b683fea817d039f008958764fb8d82df023db8267fb6c, +0f2e940d150730b2a900b84176654b14a001014d802d083a8ff48181308cca40066a3635481493c045720033b4ed1b4000b3bd2e2fa7c0648127f0237e60203c, +ddbd263ac4013fb2a4bfddb16d000e200f08488c5061d37de0a78180203089fa02353780e6560a44ed011bf51ffc013ffbeda26d03c600a8828cc01c020d496d, +1ed836600690eed43585e5ddbc9f37f4f1f5b64b46c89b1264c08f24301040bcdd4d0348b7f5fa0713483f4d808eb06d30c06ed9cd869a402d3300eb0601ae1b, +0d8801a0d60798ee9418111943be618005820008f0087460027e440c0c8406606f1940ba89db3f4840e7e6dbbd287797c03e85864db7528af60faa801fa13a13, +088f74001660eb0cc30774ede8a002fcb7b68b360d68e0246a0be7860159814dff831ae047ea4b1165f60207d93ec07703bc801ff03790c01fe047704efc8502, +42990d18081f206636c08113eee8c0d2ae10bb9391029f01624c03386150dc856e7b003f42b423400336f80cb8010e5c513e2106c0ec18509905b46740c06440, +bd49c60f4032fe6043685c8d4bc7212e71319ec960b71967991007001f60218100d43ac444710743e0862252381ae2350802a56176e7a720120123d0b8355851, +2437e8630388413327003f604cfb83b3d7efb5ddb667400b1799f17609b1fb7b30dc1fa0033f8220b7b0c68778fe1ee418dfe36ba829f8f1ab8532fba1019ac0, +7e2d068a8216f83371800044a08933056768077f700cfcc8b336b80ce0dd2483dd45000fa41998e5326e55015eb9279fed1bcf6dfe60b285889337eef15db4b3, +976b3eb0650025f7c011e88f6faa81984016f8910f488d822e03ceb7310f6cfeba022241d0513d05c0130630042cd92e3d89b6f507bcc08f6f2072776c1920c8, +cb00900d046ab98034bac6ae0103ab6dbffc4d77ef2450043fa2b02a004117980c20e540e094770298776fa0fd858ab61d119911088ebe1c246ac21f70b75076, +cbee27aabdbdf5f5cdf9801fc9100989386dbb3883da20c0f327be52389208e2811ff9534b5c0e3c80940701d4e30f0efee2d4061b2fda310b658a6301507467, +600a3455056eb48190afb1ba166a02492bbecfa295df6b3700f55ee60f4a6528d9d0e76eea3020072544a93f3a7ecdcba0decee1801f510014cfe73000068401, +da5c086c547fd00344f5d783f9fd76ea142802440004fc853af4ef5026972780d7dd38c90802b153ea4dc1a05f74dc1d090e70d5f7b516d27ac2f607b4329411, +db30809f0b81b03ef6cf08024c3bf569b81b380b4561eb8c3594c91a0de0cb714e0084c02a910eb8e90a795b6775f5756c479480d6d763befc8864c10053c0c7, +a322c0a54f318603ea00ebf5008a2da90180a37e977300d4e6a5623f815db4dc0ce047b28c038002068701a45c08d0f582a30141c71276fb02fcc89c01000ee0, +e8b215034b0828847e9064fb672c0440eb348ab8650d92cb019b6d08689707500040116422c8bb4c0adb8b0e8f8f10a0af31d80fa4f52bae4024f09743281585, +7c86a7728540e03c6baacc07f83eb04c11004c88816f080c927a812033bc8a5bdc7013deace67b8fead4e2964800aa2b1443eaf1c85c428b81e52b3a01f52128, +6afc924fd93ea10442aac80fac60a0592f45e207d698932a5f80da3b3ea183ee379b9571b41b048e195e7c43e05652afb2a603abb078ff92809e1db13dfccade, +15dfc3d19a0f138c15a6605d246b65d280f42ea45c063f287cc428ef3ee3bc07abcb3b798a0de5a3100eb47c43b0f16c273c55fe7b5df9867405a9dde3473c90, +fe635e759b1902f16a3bd81046b880fc23f9a159afb30280764400531c998b24d141393cfa1df239448055d4def8635dd30b500d415e2cc4518a6b2fd1092897, +08801f3e87af07f600b00253c559c013616e0601c0054893eae1c0e11c990cca390b80093c0fa520041e756e07c29dac9e90ea0fe316c237cd015802f8d1ea93, +01ef252f140df51943bdab60a99a6414ce631564eaa3a9f1391f0c0a7a180463977a13fc5f10020c680a5bdfadd043b8273da457130e200e2040d813fb928828, +b0b6c4e300c67b08361bbed70ef620167d62a00d999ef6d36b3731938197c20e09385fc085a07f967cbd09071005e007ff06c223702d42e979018cc0e07bf420, +7be0bfa9e10048c0f8080b0170f9c44285a4f320702b1132db01cf474846cc9f087a18020aa4db730086f88c2320595842008c00aa002e47b10ed807e193098d, +98573f4a65822d96351f220ad17806abb306d4e7ae3c03cc3483f182f025c0cb52fe117050eabe388cc084a0fba42f45ea53210640354015cb1307ed649c0c21, +47a05310945211ad04585b9886c98745f7d2116b85ea6786f334807b20bf62c524db027ab9683b3ffb2f42138123b540c00c41b3a66171d88363411500a05b30, +fc2c42b7a8890610fd83e02e60ff6da1d40028fbfa6500a0e29388bf49c9fa67615b4abec193f4ce4023a37fe76048678890b3bf8a7921c789be64212840bf53, +61fedaa1018c0d63fb0a0aa6447e80b724ffbb18007bbffba37f00d4fdbbef30b7efa5903e0090fb1210189d7f80b17d08e087483f0bb7140cd622d7175274ef, +04fc3f00b0f99b0fb9ff588456cdfc0bfd1b00a201ada4e604f9021a9cb4f98f0991314fc03ff06fbf90cafbf8c359105ffb9f468b480098ab9c88bfcc9bfdb5, +cc2e9e018a923518cc082eb10b1f90056061f0815ae07c9111f8192a00eb8b67416121c344004040df69e75207ba011b3d938f1020bc08006e886860158325b6, +ae7d2004d001332d3ba8e349d65000c401a1b216f01380011483109937a0075220500044400080043003c40136c00e7019c0408b64e8950b00cfec067a03f681, +00c0ade10207892fb69be40cac2df40a94ad6b880050024623bac00aa26ff83188b6720770600b8c2049027a9906c00ba68e98915a00658b7aa521e06b0209b8, +6009804594803be647906448024813020076c0fc3b8052bed2a406400820042103d99135200e5c02d003d7403ed00d04015802ecc0e9021d300c24199600b3a6, +107801180309c015b01f78023dc0030c45801d33195e8824afc44d118800142dd092360b07e8c93e053f8937410d789f24199480a002103c4d6800e48b946f0e, +fc07d48030e070e81cc00394c149a0192d181c0693296370e9220974077ec1c40021301724b456b1a63a5870329b0517074401c2433b5003a800c6014a40ecca, +07e22c70802f43024001e0811d2020141f28073c81df691080f0789f7a834de856acf8f807c80156936cc03fb0ba94a90a80dbc93ff0ba38278431af6b3719ad, +ee980340913100e0bd58987cc0be6a0800c7082ed9641030f23a5f1600f86300a0155300ee1802c08bd08a420056b10400e20c0218ce5200c080ff0a0000031a, +01829047300811c2fc41f52cde68615a05f241ed801c2004aa07a394cc8a0f921d8c070d01af6b880406f0baa00064e010c119cc01d441c88f02001c23190681, +02002774d71800562fe24926a4096d421daf37201fc005b82e4ec27365325109040945c2818024bc38cb081f098ed02310c0a20863008b1080501560081d4288, +c2df21199a00e5e1a742588b0c87818a355c682008078e038612ed8001d8046e2e881b06c015a828e82e0c3b062016e815201b880a068016205f68faa6060600, +f5600006b594af09a0a8890c1181c71075e070f06e22c34a4377e070c81056c31205c30a2d7117563cfe017ae07078148a0eee81c341b248f25113fe017de053, +8852841eead03aa4faa0229a43fb818ad05421199cc3cf90f8813a7cfb7a14e443dce24d6000cc008c4388c07b195aa002b08aa1c509e029b863163ff1870068, +02dc83f970b298f41452120e27a09e68fb8b79e2bbde2f3fe04e980ebd0df0f0e550791021ac4323bcdfa80928028214bd8d26603af17b20025e096ea5ad400f, +5e9704a6075817ac2a1697eb670f185db0153a1730825b710878028a26ccc01a825b31044a056b6306e06132b6a2b52a3f21c54d4800ff010800f01042d48972, +80c0c7441452168c4c3ffd00424c080236080a60021138265815be438ec8092047746e30c404e04e3002d02e180011a0069147b10e4b0042c30a007e48103f43, +474039c013c13527c425713e7815a81c888a05201db01193369c009bc25c90efd02b1ebd70213a80a020f9b285bfe709601f58120280af8827e04574118e4401, +2711b00e563575ab2dc067e8131983c08405401990130280e00733f13b747bd42978bf0b710178064b13ff81130442b4258236b244df6fc4604aac124f44748b, +5b511eb6bbc220df9155a43e5c035cd12ee0549c211a4459002f0119382802005e421e45ea9912b7dc068263a0fb7002a07b1644c5e7d64b34d28afa8700c00c, +fc0eeb44058800801e5903d6a5bd004920ade3d7d4a656cfca000d509b7cb9ba366ab15ab4162783640027200c000a2c0e1600afc1d8da081209e600e9c113d4, +04860147811c4018120748001080050819600078062426c08c56280002870a0cc007052005aeb031057100f06101c801d8c4a9010d880d1d020ca44aef1ff877, +fe01977020e8a72a7c00007500f0c93c7c63de9521011d0061e4185f2e7a45628005d816ec2062cacea48dc1176533703498eb021c61e0184d377b40392000f4, +1244a00538b428c6fcb300201460011018410002c061bc0c0002260052200d3a000002228051a006c6006861f20155a00aa012fabf4a013c30f8ab011805b020, +7f600118f9cc074f2650f1bfc0f4de9788007b84331af6421699803b6123400070120480456d7158cc58019400e92202c634180a4e8628202c7020a841d60270, +71200082fa1d1d91a7e21a321c4300cb471400726c08fe1412c7db08b0681001cbce1e536f597c0158006c803b41eaf956db109b0317656af122f25ede8405c0, +00c01d61c730414da01fa01d5fc751114ea1dfc97ffe010547850574e4181e81010bb4c770440048768c2da9a703301de451fa1d8a8f529c52d4003ac7704572, +5c30a68019d1789c1a4a0c160c2a403fa01bb81338c44cc05d6baf481db50305807bc5d84a2d440848c7e591719c1a140080c737410158075000f005d67160c9, +3070255531009035e81f554546285b2073f41fc707a9a705b121d81f0796412804836210f4ba1fd801f92562907ae8b87634f341c1981e91067ec7c98257b41f, +a8802d91836c0832213f4712728024195415af810f52390800a81d9503cd7183e10898f19c8a0b12d7517a64cc0848fbc7a807b0a0200702ba2202800ad01efe, +99e6110da81f3382b4044f8fb83bf746028089bba2effb17091f53c5519100904eb81ba7473c407e71afb85fc8227771e9e4e2084f5aa1d848db514722c9a808, +bceb3dd01ea6b534182940af082311c866a62da40b51e8ea438480c1a0719be7eb0ee50f8d21d3d38b04003e819867fa7220501cfe852db20872868020a50019, +40812419a6803b062df238085820c8bfc6fe432a302467a1001dd58106891bbb0f8e8347efb62042b423090c2b00be9b041003e211bb458952392037d8c8ae60, +5c18f3dc8310b20252916c08c687469259633b8c252748443a133282e487b80d76080812864420abf3b20c5d0f00281534fae03e05ef9320824c2429c456288a, +d824c9c9a86f9b8cf92917088c29e0989263e024678843314ef24984262917698455f2c4b3f2be1f88841ed211f05eb4f1f29d398193245238207b9458323941, +230fc037b198041ee42451856e129fdc32c42715076752a081d03a08c21f3ba92ae0f3fbfcd43bfb17716174394f6a4932494c929cbc63380e21022f2559f352, +621fed20016004b8effa814b2f44b82d5315fdc95a127da463907af2c856b2fe20aee0519493f29189f2884cb7d68a40c71a7211c810d413458864d29354b716, +0f3431a95c2aa7805f49f7204ab402a8f1844adbe2878028a418a048fbe11e30009802828a9f12a7cf55710274849c82fd504d4800d0bdf406eb00c99b52008b, +26200a308d080c2d003b3256a40144c46a48fb31722400b2102306a4b22128ebe4271b028a5239684efb071200ec7043876bac65fa0fd9a1e3c04d3c1d049dda, +45ea91cb6ac8e844e3e04d48007200f919718113a42b3fc91280bd71478107841b4d0327470b0833f8fb980208626b94b66011f70d0d652040e63b26268ef1e1, +a8ccf09413d0b0ec859bfc0d5e4a50a5f9804851231c4b21c4cfd0dbd8028abc38c794ef46540e732d3b85736f774c00d42b073d8e81520239022c9235bb12af, +980dbe0797a1de21018807b007ed61a9e0a2642861ca7f00d37240fc7f48862dc7b3528ad22cdc47a1abc671ac1400be02f24a917260492b112e5d81e6efae7c, +1f8d2de0c20d2a0e2319a4804327bc5c571c19b8bb98c0bb8596b4151727c620e612ad249924bd81c5e2e01ab827ceb5a60604a01cb8146907ce17f3d27b60b7, +6e813b214b2119b8172a01e44f4d4000087a0a0602a00b7001f805e007656f20090160061ec38d0ab3060178061ec3588c1b48c21407960cbc8149513b706374, +cc86e011e004bb805c4c8a25e57332532935259888c644772412844c6c80c86c7da922ee18a7a29161af500e2e1feb603b21628818f6c4748010413494306381, +b4cadd7b0049061582fd4fc2240ecd0466cc1ad3fe6b5f208a5804255363f85f9c4e924cc0c2c814c74cf27c4c7427c86f20a82f744cfc809750df29318b8421, +51d2ec33010016f34fa2422000b6cc0fccfa424b1021b28106220893f449315725510b96cf67e80222281645f56e3e7820e20042843f73167320a804ea8b00e6, +b4d02499096702be33d4242a10001ca0836000483535bf4f152cd3de0386ba0043088a01d31456f815ac8a49d3cfac34e433738648f3fd7b51e2fcae949aa1d1, +f8028e09cc00664026fa02b0c82f00b3c006b01f08802f009bcd9ce31bb04d1082bba024b8014000bc102189627b096241f0809f602e500ae42e70071560eba8, +b728034a611f20d4a88d12057340efc8ad8b5a3e9239e064d201180c2918562b37010118fbe64df80a9b4fc2ac118dad58411773744cffdc00ea19e46363f102, +2098b182e5bc25c600f2011dc29b2027ea381d4681d2ac18bf281a18835c20681082790c068073a0ea2000d805e489bf907e6f603126254e16035b6700200780, +267b20d71c07a04a17947160d5fc1e821656ce9653661c3ae4fb7c054b60741910d873b0b1e280e7a0e314075803a70285a8dee938f581e60175639c486064ce, +01801d3078b284f0127ca721a8086ecadc0334737ea90632120f801173434c4e68d00603c7060c1843f150588078648247e5ac3a0b452082f341845039ab8131, +80d8d013c4ce0f85818764f80282060e817b0261d0013097ae1f1d0098981fa250f6c1dc405f817dbbfeca08d3c22280147119a41e8505eba0eddbb5840dcf87, +86280e12cf07455c7387243c1fa58a45bf130078d65083c0ceb049effc7ed60aaa8191a3ee1c08ee04bec7b793cd5c2d2419c200b3e600980c902028085c06ed, +f800c64f3c60c990c8d30e0e003e60c9e24d38006e178086d865eb7328ba00134fc6a0f39c1a0e802c4fccb321a07b3600224f61221a984ed02b6e4adca24210, +0014812420282beb50041280f0acacc3ca5a0711809ecb46ac1158cc84ae6dc1f32502100188019d12994c22e3196a326800ed800cf0e6d001c64f5e29fc1c08, +f4c2e9c25f34c5400b4f1a60806528002a0424aad86a1fcb7b08002033d820b6e1499b1e8a30da8ba3c41a24009a2f1e411ea1aca300942f0800a28cf972be72, +2e09608f391a4b204c010a401c800236818e1824e00438165bcfdab3f78c098ae120cfccb33a263d803bf3cec033f1ac3c6def0000b43304000b40eca2076c00, +09601a5b64022ea880299400a0b8b05032ae08800ab5d2c400242e8aeb430bd15bb862b4faec03c2034007580609e0456022ab84f4105a2144c61e6019268054, +c0071873a244312003a01e801fc480fe00eb733afa21de041cce946f0cc81502ceb0c6d4443b3000b054b6af86601095b6025702a015a01d0b1c800712004020, +17c52de6876440798016bd45635156d459b4168d459d0801800b0516251942d1c580449113450f7a45a38451f413c522f8ccd003527460307010003c510b8100, +a5605c969800c8a817fd46bbd1fe4018e214ed45590390082192875845735169c9efc5a47cffc2a25c84c50fd3db894e12be22c9c5ebbb0ea0222206e0820ca0, +05ead1833419c20d2219ca002ac0110d208003c8002e0480233c889bc880fd6fd1e52c52130c805f012f8915f5066ca1b8800de71f30006003c4800b22253819, +3a8b01201cf0528e2c9c279f2299e22a6330a38400a0a92123fd489f4c47b4ffa9a744207924024048ad0cd092e4513600f8033b1848eb8002803ce0210800f8, +d2fe222a9dc7dc05db89a5d4bfd02b784ac70b60e09ee0490d064c089e34652857e04993849f9426c09ac04961d270c0c20282f92468525f0600e017580c5c52, +ff6b14e01938806d81c361135001e0804e9a3280501b036eb2ca4e0ac282200a302eb6520c4367c92a05067e8bf1c2171496a0497f81f8c09a145894005e529a, +1352504bc319d1d312005d59181d05a200cbeb2414005e937e004a400200041206bba74a4005800558002481c25401482f4d0304b409000849139000ce0020c0, +6194c1aeaccf9475143209003053cd94c6f4318d4c27d3cad3d954316d8102800353096030454c0d4bf3d2bdb42ffd4b4830c7804fa02ebdec744bf38093c60c, +854cc0d37f6018181cd84e238075c13ba23abd4e2b8fe80044a1193809b7871200450603e82f60930e874fe632b863306cce00f8620c400478012c9cd1730e70, +0c191a03c0c5703fc00c1a0f4714027810700f1c51d58366603b0d048e014721f2b484f84e130568d3c6233aa806c6d3800149c0000064ae4fd52c60600220b1, +963f07f0979cfc0c0e6abfdbcfedc12a2923c601a88ffe2b4d28009e478f1482cfd62b83248b7fe11b433b2800c6cb013047d401283124938f3979140c733f2b, +c0cc33f6bb51df21eabe8801eb138b260e72cfed70fa93fa453103c0a9e8f92b6f54130a004bd12352013a7d18a06f8d6b407b1100a20080c039338d981a0a00, +478fd7422237163781ca3344f004bc84a4d423d1841c00b256a63fe5040d181f9a0f7c85d1af0ce2be83114f2634c040f14d4cfe78a6f52f8f7447d52bcec855, +435b9cfdd881616834e0933075ce00f785c3420038039c10145563c86740037c037814e0220d1886002ed000e9b03f381f280016814d14abb5afb8fcbecb7af3, +0fc00732c55fe005003a0526f4814cf10b80116587c4006481c8847b78004a55182ff27431580424574ed5d70b3289bdb96362898600f34296e8535f8450cc88, +00034605490036a80ad0a416334a40052053bc0504d4c824538019c8145f0167814cf113500632c51f01632053bc04900632c5438018c81403073080110cf112, +56a95554c05ac55662569d5554005a955885038ed564759100586d70865554a0ed400c58057cd5810373b00068021a09090fd9e40f50b9a20070af591536c841, +97be014fe0b32f04d70a8015005f155490047c8acd7438755e9d552f83773531955d4d5775d01c3449805c3557d155755500201210570180b55554805bf556c1, +4c92a706816d649bbe83f6685de2380002fe34b5e904e04f692575848d8002a0996254c70b79805b0ffea049e5016421e98fa0101538928144d452001004dc85, +f78026b504300b36060200790436d200d45616e16cacf9a63d0800b9f0242519216994ad1f870dc824f831acd63a20b6a51d7803789b3c3045b0b6712fce00eb, +00dcab5cef891055a2a26ea53c1ad76ab40b850da03e0a1f34059d8f00805b635b8545ed80000807a5fe7a0301a08679024893080074802160821952152afa26, +38e07e50c4e075e0e44e900558069bf5c6751ae811c71bd580c6d51ae8119180c39ecc35f40a5c899d06bc25e025453e410340d4f4b171054d20001ec50ef542, +b016245766e14c6572ed3ed400e9410d4b723d691ebe2f4550850d185db8d47500bac7722519da009487e44f72c57a006338350093005803732d24d758860db8, +779ed780cf5b485c4d19d0575ae57ad55c0c5fd58087c079e0cf982368bbcfa809a076bb35a445a39d76ef7a1d1f36020720b4ea98c03e4cf7f44c0508ad9233, +96807b625c6361d1f468be654f851500786003be70ab754521a80f0400f4e766610d3860d980f4b5d1b5884cf908589258c555006002c624973d260036887f24, +1faa081a928a9849f305ef6ff3698a3c09d68090e94d502208623b0550f15aa318908f1a029b82180d81b4dbe6b151c6e421e2596000004f0318966498d0e856, +368062a8548d00cac7948f0de814808bce973376cc71621f0f088af101b870032286e4014ed00dc06eed010c5779e017cf194d285b9fd7871f8564688bb69f4e, +832b20038a8237c08564915501b6805b00104008a80292809e002a200b80028a0116592800a4a0022003be8018609f5305c0035c8098e44f053b003d59001ac0, +93250234591000a41692956429594b162d03915564195947231020901d640bd953a5fc828b0300fc00a001786711c80d100a6a1036405613de0201460018a00b, +7072fad6c65593402c5803808cad802b81c7180be49108a24560614b95ce038194386580780308b566001da006e025de0162001c00048801f3ea5e0018600678, +67f55941a61fe067eda716997a7620c064a5d3f80e825607409f45043c09640c16000e080046011a8051a042020046013f245482648003683e9638f963ea1867, +29cb6166204853e633e0006b453c70597067df9639600d68204005bc0d8c7664b6dc51150780746084f41f9853e187791314601e89d4e080f559744884211953, +2fa8563b18007e81755502e035c1c4184d2a56c62b848968825e098141b41b7aa4f56809808e560e020eb87f9c21fb018dd6888d788e019e117b045994674f1c, +b456a4d98cde8898d999a9082809cc5a8e35c8600770022003328f014013b813b803489ac648d788aabd057a4497c188230e1896e2000cd61e91b51b009a4560, +a42d100d8e3a936229e09b0d0a4000fbdabdd61de90ab4906e80b956661a02ece9f28d1de1bfd808801e5a02ad8050ba19511db8021680a5200179e4a00296a3, +cf6326b81e750b9dc7fbb37a66bdefe538c06fb56aadc88800f8210eb863b6941c9b0940c81900dc00fe58bc16b3698c12690824a9007502e5f86ac002ebce5c, +d10966a1eeb692710ea803429099c459e10138694f823220a8656a417a7a94cfbcc785e881009e962414356100202d06101c0bd3053d00052b290f846b1441a0, +96885ba16596e8688d7a0616aac771d9bb4509dadbf6a6bc766a2519e0dbeef605c0798048489af9024b12be6d7a2080ce5bee76e0a0ed80d0c05bf196bce524, +088f12f7c45d0502169eb2a00cfe8a0020ca028041a008d815e0a062abb20e08160cb800650d086039a0c5b46a3d8f75806227e57b039c1005004e60a8781306, +a0322c041c014b407d402050841c0850ca668190cc22b071780462802237a13a9e7d045200782000c0aaca028a8347c0814a01784095af108183ab86e1a78ec0, +0020ce75ae84577d007b200579f41c962e450be098d00f0402b734ed400050071a036c40788017b807780265c02937ee10321100c42e7760f4e00d70077c8025, +80a38df11a027d633260cd45d0dadc654170800e10bbde8104ae114018f48a8c2db45c60801b5c64b505cf5c6b7017ac08381c62c16970ca670ef81bd5043060, +607100d0035b97a8e709e0465b03dd6f3ac055a1035e52a9c7f6f5f23431cf57a693374100082892f3768e1bc59b3806e4698f4ef6c03d68a49d8586963920d7, +490a1c1b3920b0014c193b4989c0c00ba521d821a888adc4d6c8a0e932280785000ac06c53036e37a095369714681be900e401ae8200a803485de0873980ab10, +005e5d54770070b7482da49e4f42d71a074015e65ce67384608690fac009f420710f2c62f7ce975fc4f8867ad014ea576005ddf61f68157a1534853a77cfdd79, +e0873a40e42579759c080d6737c14cf60851f6bbac2082b858521efed811a5c37243287611861ca0b0937ee504eb80a8863a4079a8548b0b02de630218c04a7d, +839255a718082c00b4201100159883d0cf8e890a000bd2c34400a25c55a00108783869e20056200323e6c53010b26a2b38d00e50c4a65b601694379c79670685, +436b0e25535483082e1148443b8152a034340c8003f2d02cf1e2b009a802ba8078d290c07f404a6b02db96003020c0027515e8017c8a21cc05ac7b5a07ca018c, +ed0bc00322b289cca0f72800c7088e91805fee2cf8d22caaa800d4a4d2826a010036b631cc162085f2d17a427240dd880238c6122e3094a0c01468812200266d, +e07acc0c2e27d7860019f0b7002e1b572203df8203b0993bdf898ac740c854232801d2648f81a86042c58a3da6d20a04d0c82600d1b70380090513a1d071001a, +957adb320120eb0de9fd079c5e0300ea20f15d648c5ea4579f8103d07b13ae08001a0c90b1c170b040a0ba170ec57b218030203554eeadb8898044180a0800b0, +e1d092e3b7ed557e0180338437e10b086898f8ae096fa381007ec82348063c80c0d578f80702806cb089961d0a00d0d850ae1762e56ab98e00ce01aeb71230b9, +7e860ea0fa2d126f82be301e8ccffac1fa8097a00cf88881083a6288a02fec08088d49827c202534264808a2816c201cdf116dfa658198c6dfdee6b7037243a3, +b1a5e29e080064816a311161a9c8c576a42e03584c165b2ad8c91a0ee521039801381c32b15b957b5700a86aff812fa0c6d703707ca38fc8307c0017c87e4318, +05203c9b04eed2030369401bb0112401a0016f807aa063c00002004840021062d8076cdb126228491e000f14990c403b005da99d400069005da1f65a2a5e130b, +8c05c36b2e317c51e249cd0207c4b00d9490904ac400e05f6ab23547ffbc40770fbbafdf143239013201d015dfeb3d981a30a412004da0050012983328d39e10, +a9ad7f338f00a00ba01ca22f300075e56be030c1005e130821d6645cf9861a1316dd7f80984a44b5b82c804680f805c2d907258bdf57f91d662405b60501a085, +e04ef400ac827bcde9d8626d4d4760a8e88a6d088cd1a64845608f9c0faa93aa021d25d7dc61b3a29ccaefc19b9062158a08803c80faf004b07504801c401435, +5c800b8518e2230025057bde5aa204a07f00224f973a73ff30f2487bdac59308c52f67f50ed52d6a58b6a880758be48a83097658a04cf0b215228f4fb7380869, +10804108083026e73ce253002003f88001044c816d21c7254df002e600e874cc731c984eb40424ef00e0de0436f6808f0014e0318403b483026092410fc01b03, +363a00189000cc0181202b0c0fe2837004ee2fd8e004604fe3cfa046210d088046b3cf6eb48f2b47e03a5a43e330184d130d1240c02200590c49000153006a62, +81d59955b38601580044401e708b8d8166011b000e508b5f005e00a1b32c86008e056c00184008862ae6c2d40138c02a2c9bda17f1a036c8280c0380c39a34f6, +20f61866164c3c333803a099008c003c81678033152b018026e0ac60093b81027c100050c0001812c00796301b461600cf3100d4a614e805c002e082e0818135, +ced932e69c1ac4b1e027d5136a19ce6814446ff512be5281825f48ea11157d812405966e225812260302a6cc0851f13afc1c2680b520ad7b1e8089ca80652f7b, +1800702f3a0608400b66bcbee030183c183dd082bd2fc8a4ee810abe0cac602c313364a9b8c5404d92e02518006882674b88e052f508c6001907b5032f80a341, +8b3d00a2ad08d881e005d66218c01f289340637c81eff303611130b8baa7514699ec8e312abab84400f59817904f1100b685a10440f0054c00c2e09f21119ea4, +d988ca97cb6a1eeaf252641641456c2119089e064f4060400af052fc3c5b33f82a5ff088098b00a03a40d7e803181ae602030e0d1003d81179811e78f20500ea, +8dc750056c928764da0b92c10f0833160c799420599c4142f0037c3700c00e78c76967bc8e20c3bd6f2ab82f2897189978e7037000cac6520091e6cf3819fa00, +d8a04d69931fb73e1c3f00a75d6d1f43dd02a0402ea0039c0c95097c26c9e12ae692133600800b7854bd92b99627594b80250300ca80c7f0bfc18e08034e1a3f, +b72148707f5b4a790584f6895adcdb0384e955c2830022009202edd6ed585b8a0356b1a6e5ba855ad00e0000c431e5dbf5b893dd4f004008037a00477e9c3f00, +4df1932d1c37f90dd728a285eae491a15779b4740f646565948c682192950f16dcc31e656891926794a3e48e6560c1f01002303c5197160af4d97a42975bf201, +019609003fc04b48a75895278b884139e01f901307bc3f8039a0cd00047c257f61cad72c9091db997ce17028187e6486857193c6e4351102706cfe001620a9b5, +9681811c133f8020ae03740d40e022ee99c897738bb2614cf23db828d90071416012ec4cfee2611357060044d586e1e56554b148c6b451c353b7e59369fad02e, +460052af525928a5dcf864af80b3453ff91362a4af60586edffb5368910f606425613634e7834f4200c0629e2c844c4f1f21537c2933d74c67658cd5a1e892bf, +bf86a0ba38649003ee1850a121803fa89f8003897005f5294d3cb880d6102dd134f932202afcaaf6c057a804f42af089c3a1b96283778549cf3e726ae002fc81, +cbcc7b8a0342014433906b3001020c000c0044a00502026cbe8c3202808e0200650492808d6cc75d4660041280874b014c269b0799816c009a8c53c44009009d, +3904400516015f412e601840b33461b5c26e390e780cef1c6dc28c39557d39729ab953f4c0f29a9a38b394e6e609c07214e09f72c27f800b0018d89b3101bf39, +1f308138005be000a0fa25006c302a060cc016700280010e095bc001b8c3aa5fa631f0c01ef006dac8a8440c1419d0c96866e84f4dd8fea419288bf342c2990b, +26312c133d1401a81f589e09007d60791406a09ead671c004bc500809e9f050c2c0a80cf1203500060dc6301030501f4028eb283f6f42a2870c52c500cf48bf1, +5370481dc5a1e09f7eff5e3ffbe104f8250589ea6715956086ce4315b61441e0630b96185a04813b8640c0b9e9962b471a8226394db9704ec6ae31faf74083b9, +fc017fa0064ef9048fca00f78210083520a0499e269941da00801f02811771c16610a003fe806e790ab0490e90c4196c0b20f29978beee98c1ce6cb842440d60, +688fc7d88a188e8d37d806631cac176004ec071dda1f785c755b25b54a73c1209ac8a1b30318ba70c77fbe190880954c135a4c80a139545281e35510a834dd8f, +ac41dcfd5036e876bc21525142007d038514603244a079463312a631ba2b2aa3a60f6a0e05a0a5c075d0a24d482eda8b807d1d082c65e7487606ea712105805d, +4e9c593336df42009297cf0867f019698122af4a2d784606be9784631c7e8b14a2fd817ef464127d7c13b71258c4859e4b05360801d862bbc6b1b1030e1d181a, +4b1916fc61faee1f81924625bf172cc55688fb218da8512d0a71d81e16238dc9ee98966889262509a0595d5a6fe823042804d48af060878d7785a1574f8f9400, +94a4e50a8187663e0aa02eadd8d12789555e0e7741687fc0535a45e59ad5bb2a810d078686454be9b36832e01220190a1132e9c080f6e9a438f4f2dd2f758e7e, +2c5369e56195d68781a15b80b5e8100819f2fab8e67fe57d80d8582b54e9a3cf797a91ee534a694369dee29d96720900772492c110f873c1a4134018ba3fa475, +7b83f55907ad6a617d5181d65700701820a93146d1d7005845d04337d036c63a07b83804da0d8dfa05434c5aa4e54d520110802125000e81e74caed9ec33a8fd, +e634a5657e029680d000a52024f9135a0c84000cf94f3a0340034e66218923a1251003500a26f60e600aa00c461096c086c0e91b993f8720e802602d3aa7bbd8, +a184284148f424b6e88b3a0509606a036680f1c25b1bfaa4f4e6a377f95818fa9e7924d8ece71eee60d8574886de578849ea011096cff68741496ea403badd9d, +01a33e996e6a04520f7a96de86bb1e9295479aa0b8279413093d75fa2cfaf15c07da4e52e7ae50a51667da8c251a84ee6bd213e60097a442c34fca4f4e1603d7, +d9cc45f293afd24f20afae395400be9a1570dbdb210298f826d63ab935a09343b20d627a2c323e4f55146ad4c0ae1e58c52d72c881c07371545ca5271704523e, +d1a1fb8134205f38d8f2f90200392005e410f8fd146bdad67e600ed014e2803a80a0e210a84889e81e20c55a830536660c8c087064256098560a4683e11ab035, +b0ed3bc55a09d014f3af1d8433514010003804e42dc55ae1c78ace08da6b0361f25a631032cfebe514c5fa0b68981983178b88e710a022cb041a04f23ab450ac, +fe39101ba166b1af130647fc3af3bb7e1000fc81da05bb8e7024752a04099b4473c346b0a7e87e403ac11fe807ea693ceb22e0c1a615006cfa81dd81bc36afb1, +03271b3de0e2a26c84b8207be8530458191481a1c2c8de157e1f210b1c40c8f655002e140154a1c72373110034a42ce213c0a256049407ec83e3f3c50e1d156b, +c3555953b381ec3a83247b8ae607e601ee442e7b5730018a006020339b645804f6191681faa2ca168ed69104000de8cbf13ac2b2818baae6606811b83e668bf7, +3bd386b11fedf77149fbc4e651d46c3601ad24ce460fca6c7d6c2f9bd1460ffab20f6d56d4c39e97eeb369d21252cdbec956b29148351bcabbb38898c56c1f1b, +af1c741f09e5a12300976e5e8217eda0c48310480e52a5da3a6ab621e86f87c5fe585cf66fe8696e4839005aa06ca407281b0d0201e019d8cec6b2df040e0017, +189b81810020a19a040006122a30000879293bce94016c6005401306ce6000bc190180263c640c80fc1821f08e090014015e930a005d69ae140257b106a0fbe2, +cc44016c40c935003acb7e86c59102085dcb02c481c321ed0c1808048201f6d9fcaa8829019801e50110a0e76abdceb210af7bec585dbbc09b81aedbc951a0c7, +3c3374c0d03a0088b827b383bb207b168641b5832ce0192802000288d478e0e20bc5f5ad7e004500a410f5e2b797b3366d6ce0761206aaaebeed701b1a6006c2, +ee9dabe5a69be1014eee7f200bd0055640092d6540390307160188a95cb0dc3edc1e01c081dc146fcb0760b6bd607d1b628a188007eeaeee016c400800046004, +02802ebb0c1c8116ee941804f51f25a3d92c0f6ce6aeb9310020ee11001ea09b1007f0812f031838e766bc8ce767e13f64e7dec740801fe0999be6b6b9716e44, +d01fe00734445247b65bec4a076280666e2060e90e009aee8a6e41e0e80e00923c60840a4ce7bebb0805ec2b3e881f20181004706e04c011c8c3ac0705017e5b, +4740bd25e8d680c0620d8893a4028c05692fc3d00a54073b37b1c62ec00b16a6ba912940b0d509688c340026e00d180c880f2682810245bc87e607329594ef0f, +c40f7684ba841d28039007ca46bc418965e3901e1201b36601c8126523b80ec18b46005ac8057cc96a9f40c36e69088021ba5bb6e042a670f6bcfdcd94ef11f8, +a2f7016ca04d2200263622684ad4f324314b2cca051e45ff5487de074aa1039ba90061c80524d24a0b6b037a28030c11fd817dc01db8af711b0b5848806240bf, +1cf048c1bf1dfd042dbcd83a13fede05bf6359d1fddb2b9ad8aabff380f6260263029fa2f701fad13be0a603461203f7be051c1a68930a804e16cc204d85040e, +810b65091ff8e4d8684a920109271920044a854d69011f059e252201ca654b8915d0148c81a86257a0a290005ee87da0e4a33402a1f7015d80143cc3de073843, +05f00d2f15e40aff872e3c12c82c17f0d0709177073704e0c39bf01d9c504df97655ba704840e90878c4c2777052bab1dc8ea10e08002b5c057c32c437a10d29, +8512bfc23f702f00d01bda88c4a7f00b816148b785bfcbca851e49605dd8522414e06f3860082fc2ef20e0ef3ec007bf00e805266c39dc079b0fa0c3cff0fc42, +fd49f9d697511c3d60169f7ff694057c59dcdfb0c33f70227148200e87bf9380d970f8db09801f58a537713b46e938c5f7c4c5f00f5c9c2e0a0f09fd0d48e00b, +84bf3b80c130399c000849d80013a971d6ffce14447008a04b90d4b1361c1dff1d4fef1bce7fe0ef770381c1ffa663491eb34758c040521e18c43f70ced29e8e, +8a088c49e0f9dc101854e49000c684e0165100b211d2260c7a1258c11b82a693c4b5de84bf8bc452561b1cf9267576b377f009e09508c4e7049c3d887a12a0c0, +4b4440f1227f5fa90ff881d1c5dae86f204af3bcef4595741cb0753a0b01a01021118830fd017de052738480201bf285957efc1fdffe766b1281975487d607b2, +00e826557aa1f581ed85772e5582193eb57d727b816913ca02c9bf01dcc35e3055ca3c3e805f605426554a3c3e006026a3a55d9ca76386d5d78180cf23192881, +e94f22ff041a8905f22e29e5ab04b08af50159c0078722405630037de74806a199678a00e94202e05bd6078a81128347fcc600c97f011f9c0d9350becaf59e1c, +7387441d49864ae0c6936f1c403c1fa93fac8f00b8cb81cfc1078152ea511ca608ea8b9c756021bbaf04c6e9edc1196fc558000cc88b02246013100156800283, +0a404038dbd598480009e8a9918017c056fa7bf19130010a4bea2f1f75552e73a303f3dad28ebfde2a2e818ac0a90063095f580365ed397198c88ab001ca85bb, +d85b873e48c046083b87c5f50124007e762030064cb58100b76853ebd47c05211c90bc0ab81350b51781b71c0df0c1a107ea8012631068040eecbe612a9288d6, +18faf3295a1fc09f801f288110011110afa004b64790dc05801007c9f71ffd5c6033e5a304f48a48d4a1a512288094f329258b1234ef14a4000a806b5c1f882c, +0e972bf164aa04dc071a80b5e812701937217a48dddaa0d63277174a4835d332c1a908584eccbed186605d88122b8175f406fd200e2112cd810d043d5b101806, +6271c13dd0a1f3015c861c7d354fd20521764fe0c0f3913633b62e810c0147f912806e41e87c20f186a14c2d1617f7e3cf7039f8217e01008506b125aa044c08, +4c406078f408816e4935c24bff7e9413228610bd12e0561a0444bf050349e718187338c46e9200b8a19404aa0a50e512421208ab1373822191dc2e37fbe0ce7a, +7d48f707f201215c6121010752cf0435275a240050d4bda62817967c2058d510597026a12f001000e133a2a35dc409fd2b91f6208007200d6d3eb8a139061e1d, +123827f63e0220133dc3ce070ef3946f571dba4ac25d155af5293a1fe804587526011d0113e0294e05e0874a4042b10e90042272223a1f284bff7e4a484cc0fd, +399932818f727a0df4e199f274920162609c2ed63941639dcd223ed7d47d753d0c49c0a5c4ff5c647e08d7dc92d61323d54d52331c8e661168372481e375bf4e, +0150005cc579b80bb0042e9470fd45401527eff815649d64d132efd0df75225ddb1ce85b3066f454f48fb9210813229752754cdcae70555c2a7af514bd5c4f7e, +d5ccdc3c499dfb6c0f56e972d93dc05c185d843e3f1b1fc026ef5148640280125c3d47c9090ae5c1944f13f05eeabc298012b230cf0770f1846356870e480152, +75d09cfa28d549060dea7c8002801f84002c6a4dc0b86046180f6709fbbc56df5e3e14718362dd4bdd44d7d5192022414d80551978eb107a03e1b614bd04780a, +2a0f5cab045631ee687cc0486fd6d57458f5cb6fa01edba7669a76101a1ff00768d86d6f887dd3c100d8047c869c3d4db2194775f548099a3b3d243c5e5b7524, +da19b82249067a3de21b23af5113f71896b91d1872dc5570c0448b1c00a0183607e417e08213c01190616d6b7db46d17c233cb51c962bddd55672fd739c19b1d, +4d5fc50216904876687ab51f4c3f4bb30e11820cdcc5f6934ea27d6fd7ace1656b0802434807dab3cd69741e2550f7216f27e775db6272bf54fe5e8296db1c47, +8fdc3f09199300e800a0da4788c65d7b194d4c5c4886b99d4ec027fd8a22067901609dd42987873ef4f11ec80717a5f180c6876394678ffab7ccf5f58100b964, +da8109a947df88cfaf044e17efa561411fb866533e339d536863e1047e031d1a50442a80200b76b18241c1de1092ba6f2e806ce4129144660450739c3ab5860c, +d8c6948f1358c5021f30814b9488c607eb0400f6181a0a80aafdc8f181f530e524dd6cdb0f814d220bda13f8c23d81147392c113385f3d012df3f97c94a9cfef, +bd1081188ae2b7847f88247e20a8071c4c0986a3613d3f32581768527a802895016876d373c6e001d290be270318a594b6bd172fa52d0170f8f23ce5f3043494, +90d0a668109b48a475aadd32dfd2c1f85d84b19a163ae0392e8c78babdd4ce9f600d901fc6c001301d4015287460c813d132743c5be48140247a2555d907029e, +a4602700fef7ea53f1bdc70698a3035855303e98d0da49869df50e91e6832d00112c73bc3c51e4e1206e47977c9c01c21210a875c8679464737419adbf779ea9, +02b71e4d4d3bc663fd608f7974e87bc0eac351cae3abf67e812a7a60c7dab77667095040c225a2ef361c1612cf90d69fef35fc817b00e2010107a1ef01b92407, +a804300be2f6a61c20e0e695805d488d958947490b80277e03c66d0500a278a1f55bde90d7c7ef01ddf529fa1e60acafe017a2439113d4d8c7d06b12919d642f, +e7d17968ed2115e20fe7b7f927d1a934bce0e69778f2fd9bc1f189e6a3cc8e7ae1e744cee2c987757877fefbe9e20180a678fd1a8a274ad5c3945d93bc885f17, +42817b02985f03ee5192c7921e332700a8cc43014bfc1e8895cf0320471e25cb1e8b27fdfa79061b357e46b40eeef97c00785e2cb2e2e7f9d183763e0060e301, +f89f5e99b8da270b0e721f003300e655007880a740920c49efaf499d6f000460a7cf1f74fabc7c96bef731b66a7ac00281a5a5470e7eda680452a0d51d081874, +c923075f2550f907ad0310440be9ef81ee183696531705c827936986c555110529a5458110b64bbd140042a808601e4fbe8046d931d7e8551b1395c7d8818d58, +71751161c5759048b75e4851c8e5683d06410f65473e21c8fdf37b406a773b09ae5179ad2fb1bfe989e62b5cc2beef811ef8c6818dbf1e491d541905fa1e02fd, +5d9097bf54315301c088e6ea870aeed57b801db0eda7687b01f5ea7b1426336c507905a0b5ff72fce51b00425002a032edb1ab54deefbb46ace718368165d247, +d0d3397bdebe1768687dd46b72e89e14967bb546b77bed3e44a0be70a32172e09719dc23f72405803f0ef40cc5731628f9127913d25187d42b454701bb5af59e, +29087cdcfe563ff04df9fe7be82a56e7134838e87bde5eda007e28057c851e1251606fd1c7ed8155014fdde3fb1e178c9d4a68a314d0774893883b733c5bf91e, +71fb3ba0c397a3a7ad533fb91e0821f10355327bf6af903f78b70e143d0608e808ad076e090a13028b193dabef1f81b5687b00d67bf0316601fcaad9fd60f075, +83139313903c5d4a7b1447000821def181b4874740b2e834362b85145f612107aee7143f727bc0be53c5c72159fc77c100c6c40781e0fa3dd7103f39510eb6c3, +bafecbe7ed05bcbb7b9772cba73ebafc4d4c2f611ad8ec410e9ffc8025a19cf27798090c51407bd81ea8b08ffcef25c9fd412c05986822da17a19124da197cd7, +3f7cb11f903c36dfc49ca0a02acffc25fde05159a3f01900f6211048ca770f0cf1e37a1f1f55086013299d8575a125428790d5350b118259ddc317ddd73bd36f, +1ef0c1bb36432ed7c01ef0c115e67a6052de40959f40e87a74885acfcfb0eb81e87437d3ce37317bd7b2048a4179178bf5124a7d0e1156173d18f4278b37bf26, +27360296c3fdc41cdb8fc2014d90390a000f908ef80a000077e173300042a5342184f23788539901508182c83d00d161c1231b43aeff4df97724f6075e9f1df0, +a7eb01031fd8f0f79735c1f0f14209678d60f7cd7d71fd70a1deff5efc76305cd75d87ae076801f8863e6c769f97dd4450019b029650e0495a5081a142dd9f25, +0b019efed6977c4e7c8c2da19e06d0e937b60ef71c5ddf3f0cc7ff54fb7a80c3b52150f8a7e87aa0e9c1972700067e8c0a19160c2f6023019d3f14331210f887, +6a55807135e48ce1daf76741aea7eb2105727234926752059651098054e0df51abaf071af167bf90a07378f6297e2f213ba1e527eaaff17a7e2f21a1d4f7fb80, +90e86bb3f7d17e5e86dcbd5470f5dd4492fe59284a5cfa39e11d7ea37fd723196028877b22ba1e80bc0089c07e30dc56e043c02225fe287c67ff7ce15ee51e49, +1044a45c40a25460c89fa32612947c0c7dc61fc3c72af27e0fff7a0066fdfbe9f8dd9e573dc22ffca0af0d3903fdc0de54a75c047c6942153f3fefa1b148787f, +d8082a5901c54152801ed007cc732e9c436e0268ed450c7ffe5c95be9100aa0788148a21ca7ffc41f89cfc019cf27f127f00e66f0832f41f7469f20782275fdf, +0c3464e6f98e006009b002cea6264092646f5b3916ce5dc4eef563c19336009c01551e5461058009b1c849794fbfc6e907de81ef51e0af3c722a86165f3ec3a6, +5b4f8dd7b81bf9ffa1037600dd4e2510846b0b9a82138359030710ffc9ffcda8db3dfb4efee4939ad2a12f14701220f7d40850c03a78a80505168c54c0db4805, +759614a5652ec80fff8380f2ff399216d8011e3b9d853ffa2d680a4482f2830c3f0828ff53e321a3a02402983f8680ff961405b5f59a02988380f2ff39921675, +0144e0957011d6fd5e79d07c8627a2e9f92af7579ede3f5f58d388687ae0a84887985f91f6938115e49507cd4f064ae0f41fe9b711ee2020f29ba027186ff302, +1e87eb781ddc8bf681ee5379381645249304593705195a5c05223f01e64bc97302a1e981913ee573eb781d643502e0009a1e78047cf03b86f3657e45da677822, +7ec4d6c7e901aa3ee423e527a2e98112784b1284a6074078384157e00b77053a895c01599e64700557feaf6960e311801508338f89a1a5ab1b84a607d2eb94af, +3aca03fe101167b3e08c7fd707c91f236adc32341a7c065701218032c4e78f83449c93c1155098e9e630bee8280ff84322fcdbc7d4b12190f426a2e98159cbd8, +070024717ee5151819086b7b7fc4fe9860b007555e81a182a980c068d541687a760bcc1848cbab0b8d069fc11538e301757e9f59e832b40c79051489de1f4027, +f67f3e481e91b6f7c99f49930080068895905bf5717a40dce2c5d7a1e98105e002e015901e5e81a18faea0eb186f6723ce1722a4351209ca2a7ac86300ba7f05, +8904ee15548105200654fb7900001fb10800e8f9e29b6aed9ddf371ed23f8065241999037400a96022c1b1a50310008e0446718a9e07ec566f8b80a53b14175c, +54e533bbd718a454ac7592e115700fa44360813fb521d88a1de48b0dc6ac00af223c995e0162f24df2b25f10d6f32e5357005d542ac844898679ef7f56156689, +5800ab6006c25a7f0197e173a0129d95b85a502516c02a986608805740619e0793b62400e5003318d1cb46df040900b1e04f15172a826cf43013ef2313a50958, +f3d1939723f579f92f251f1ee46b12e4ca6281008805e20a0ada563210cfee25854476e5e41568f01e15f1bc635ef99d16c02a7a4811c287601e70f06d790220, +7507006481f10156601ec0fa810dd1fe2ff5b678f4be697ffc66145f46efe7e5c405a52316c02a5ed4098058c070b1ffd412a6bfe3b647894b0d60ae9fec5ea2, +7019368209890af9c456236401d6673e005507a1e701777a6b29e59305bef0573992e1e39ba2e701fd817980aa0736def9de3992011678c746d975e879c03a4f, +196681027616f877c72a58cd52e001224f58e3505b0176b8e026e809c65ba8c41d60505adc7490b9b7e7485ad459fe8cd8024d042e8009ba3aba8ef1d61ba191, +ac74227a1eb0c741b0e7817d13d8900598072c00f8a1b0cff32719640151de1fa0b007d333ec79407f601e603769060281e3559bd811480f6601986816c02267, +0313592cbae7818bce174f05a5b70c8f07e61d23354a8405551b1c9b574094960e386828883e61b127e513edc17420c2940fc5d7a1e70171155900859f07cea0, +59409940e3336c5902131900b8e7818b941351805bb90c0707e401f9d27a740f551bde135aa0e1f14d396828883e61b1834f2a250c72cbd559409940e3499e45, +601868fe49065ac04ef01540d54168796879200407366801e087828064f8f8a605de717f401e68069006e087828064807c809551761d5a1e0a7ea8fa07025960, +b8c72a58cd5500ccc44f58e3505b0176b9e026e809c65ba88c1d60505adc7490bab7e7485ad459fe91d8024d042e8009f93aba8ef1d61ba18c7619368209890a, +98a2e501931fd8a0849607447e9201aca02305366a01610b101eac502a08747903d2c31f900796816b0135a216186530bf6b0157a51680ee27196c0150a51628, +f18dd4281116385f20486801665f1e88a0a120fa84c5566d3188e8f6291a3be041007ea8fa958ad4eb94efe99fa2e58168010dd71f9007e4056c7179c00d0736, +e6727900eb27efdc6cd506829000b005b1030e1a0aa24f5820b75cd79b6e9fa2008d0722949b52c2b1e89e072e6a01eb86cbd0323c0e4c64528b68620128015c, +ca7e40fd0e6586191987711c7a90d5c4c0d072dbdf6720e2b1030891cdc6b81145b89057e35306ac1eb8a805ac0334fecb7020309101807b83686201280156b1, +16007e28ec336c79f5a2d5bf5fece501e4813120841f053c059c05a980f4f007b805ba8f5b0016b967b805de935b407ae01c70669c955bc06edcdbb805328f7e, +401ed837c93b57053960b3b1059c2d7f634de40c500b9002533ed11e4c7f11521f507c1d5a1e58dab8b1fd0179e0038088960706fbc5807aa0af9f138e017b92, +5fc1058e575cc0671e88f89d5d155c806e05b8b8055e053469794084b61edd7a900239c0b1b905006e4a0983dc72550bba055e05341e8850a5b70c8f03131918, +16df617f924116b0b0cfb0e381c59dc5409497afaa7f92a1fb1e9387fd4906590f5f3ac38e07da814c8fd583001805a80518b5f605849607c0054e065ce080c5, +6f00853360b3c105250452634de40c58d34df9447b8cb58f1e4c8777a7e878a00c3b1e7079523ed1811c35e543f17de964012fc197ceb0e3d289e878601b801f, +1409f94a159822dc6f008533c0b1c905506e4a0983dc725db8c0053a05341e88f0383091c5a27b1e58e07cf154507acb3e5bc015f52409005ee892dbd831dc86, +0602601488e989e83003d243bec2c1695f73010b3a170042a8277401502517388d07225413b94717e79e072e70814e0181c04406866c813103e54414e0562ec3, +d458133903149b360dd1be629db00180507c1d3a1ec87c802a89e878a04249f924a2e381414053d01e400406c363c09e60a64cf90afb0c3b780012f0ef0dea78, +1e882000760187626e05b8c8055210342bf89ad4b9da4134151bf74217b053e479949b52c220b75c072e728114048d27d4b9da5f7a6ea5a32317301ee4ab959e, +1ed0e11b6b833a1e3a1ea8e11b6b833a7860edf7eb01782201aa1ed83005aef142f852c09e24a2e3423003d243be1a04385f75010b5a17001720307681704217, +2779160d3ea99430440686748114048dfd0b47e97fb57bc25d80888e07703eeb00a9e6a61b09dc0bfa58e52135d644ce07503e6043b43743e0b04ffc5090888e, +debf70f26ce8d305d93841e87840b2b772956a6eba91c0c98704506e4a0983dce042174841d078927488e00b1705b8154e9a5dc04e91af2cc82d57a9e6a61b09, +52bec23ec3860764f94e01731c1e987788c689e878e0424af490af668010de14c0a1e005c607cc801b8100e005780a5e01588417982578015210341e88200078, +f7e315a53f91b5c9602d7f001e78a2ad6a6eba91e0c7d905d644ce80066d2490b4a71227450020355f87860774fb944f7f93882e2ee00714e8c6daa08607e881, +5360b187078a01f8017880cc583d0880828a5e6071203dfc05228c5e40dfe905e805a8a15e8023ea18e20550e1779d64010090f3e70413197532003002d605a9, +a0796886f1829381619192610b3491333ed1be47a1f4d517507c1d1a1ec03153ac0d6a78a016801fe737336c78209b6fe52bec336c7840bde11438fce101e12f, +1720a2e101939fd4b5796886f1026ca61741b929250c72cb646088170811d0f81a3f8a8110902c4c587cb52d419bccd327120cfd979e5b0917d092fc0178a0e1, +f1a5336c7820c6671508e1c10aa5c24b562a203dfc01788058c41798257c816e3502c017f87b7c01810802c017f01956d580215e204440e331f441346e858af0, +a2e1812d007ea8fa0003e087a7ffe79b16c00f7ce90c1b1ec0168707e2d2948f05631280fd49065a8a291a1ec83e47ec842d101a30861fc0b1c577d89f64a805, +e0011d1ed8002ba6e1818d5520acf507e8fc1ffb291a1ea8f4f007e081f273f5209cf0056608cc805f40eef905088c5f805fa0c1f80516f9950a2fc597062208, +dd5f001b940a480f8ed75fe08af8059ad409805f008bfc05a8fa1ffb91810008e99fa2e101001dd892888607461d50e57b928846083505ad687880c30e8b8e01, +7b1c54a9fa8d8d3e4d60e3e99fa2e1012c807f93888607f60734ff018688860740ec4115b0628a86645805ec49221a1e601550ede1010b9d7f001e5067560f02, +657d7f77a3c4f5dd0498887e077868507ac2e7128545800189e8770012fdedbd72e1072f61b220eb86073c00d803842e10e800a6016500849688860744801283, +b947d9957cecbedda7c08b2ac34c5e8277401a905f807ac10657bf918476fd81bcc72d7c169af60989d6775b53877e07dcfe967b7afcb600d68422b74bec3efa, +e806427860e00e07226908480f7fe01de06408060ed8606060e08a08069add60857cdfdb00b84986b3fc104164e0637cf71fbd3002184053c8d9244a4789b907, +016200322006a001010610e0611107a85ed6a1df81ea1d5433c37e07dc5a7e73c6daa07e07640a7e7a009e887e07d0bf345c7fe01de06afda1df0155007e0006, +6ab8b4fc9e900ad6a1df014b00cb8019780760818a0265d7fdd8ec820167cb1f8090481d369bff9d09801540092e64a83b61c0946e6ec26c70005c54acc4eb37, +01e41d0070f5977b8401c5a1d324008406183cf420bb271988308401c5e1e01718487bec4492411880e8ffed917c924141c0073734fc81777392211698eddf81, +03af2178f2053d2a04414fd5bf0e608be6744e5f3a7ed575a1df01073be5130613f4287d652d1bd513600d5e7c414f59431898d339fd31137a7c7e9d25848106, +41739e1b400f7fe0986818c02cf862921f926118f877860184814bccbab7ad63deefa02e33ea2700d0fc8401e41d005091a41866be8c99350713600da48119a2, +d5d18f34f024824ffa1d3883f84d035a10fa1db0c7c3221de2b048b0fc9f536cfd7a009e887e0734f94c816bfc1d68ecb02789e877001d4f1df867680602a014, +6103bc0d6220a3d5700800861933605082184032f4014ce05026a6e51a2ddb0105a9403bd007e8b6310b22be71b0722605721b070035b4fd2232ec0042c4c9e9, +14a402ed401f18ea2106d69ac5c1ca99ac7100aa81b43c11622b504e490662c094602d7853d282f40b62a09e306e4606fc0177c0b7271280070c37b4046d2c3c, +ec013660b32b066801a48760c0d9fa07c9017080d72688a31f90030e07b4f1f37c0cf036686eed40c321001866e600120d6200d6220def80429961e642860abc, +0b3f6d2b9803b019408137e542260bd206544392ac8e2106db07e61bb98100280fe82f048068606489e64509d682372509c045f892fb36758044c01188054a05, +d730a6cd5a22b5622c50ab18a096dc7352c39876d1180ab6d4b009ed401f3802454bd0c692c70d8852900ab4037d20821c8b24e21b072b6762609971004a81b4, +a118c83cec01192e1c6006c0016e00e987611107a8014292664a707c00f85f4d0174c3981684760723008a01588b34bc02a8de5e9bb25556c05ad1078c34b404, +f7b007a2bb508600a0a3734e490663201c400cb001c400313b63c05d0868a5028a01f893e5b2033606b88ed7e1131920d0072681f50191819421008c0116a010, +88308e017de7180818a0868e018ee8184107ad636c014ef07ea00ed8ec8c015f119587643006e00b540a4dc30e781d3e053a0509000801003006f08045600da8, +002680e482887607181f6065947db00c8fe426bd17a7421601a8cf9873c71fd323354a340504e610017b92887607ac73dc01e070f520004a2aacb1b981f4f007, +2188ae63bc5597746a6eba91a00528ac851152634de40c9006801f447b33a48f007e40f17568772064bcb136a8dd811a813196dfccb0dd81f64602a0b0cfb0dd, +0602e018c0ba83018c01dfad1e983fe5017200af2e06901e27793e1f19600c889e072e8c817b028dfe57bb274c6400e07760b00fdabf70941682900028065e7b, +b96103e50108817a876300d64a7b013a6a801980063003a40a70001ac00ca801d8ec8e810e5e3594c9310660387ea00e00fade38088965d3042afd1a5d2e64a8, +b11ea004363b640067d668c34537d0218131e7f3c901cc8036d0f14107ad636c060c3b7e408e931bb890a1826b8664388eb05c7190a40082600af07511196e00, +0c30da926192c15607078801ca801880fd440e21198e813d030100013035525afe014560b3fb2f19be378ecd061940329600c0810b192a80114804e2011820cc, +734e4906fa513ba8078801c8801bc0687494619a77041c00eb851f908843990d82f5e664d63590010a054446afb890a140b98140201c8006d40eea01d42d94d9, +0172001b407a480638dac280192007982a10024c510c7947861f380336bb6440be161c39199001748037e742860ae61c10810e000e58c52407da80cd2e194001, +77041c000710036a65088064c057801f4d06362a7ea0bc09c749422c883960f3e00f818e9a070cb99b5002804022123a8064a0ea1a052601128f7a20cc096508, +03c620a6ad636c81ca9b5086004806acb949866420b2196430c879950b192a001680079480f44b4060b34b06900144a0e92119f0ddea012200330006a001c200, +3d47b2d0393e1f3201f53b9421009281a0075d23198847f7006688d2d3c2711ea8a2c88119a0ac93e5a9076280cd4e1920db4a864986648031e7f34909688019, +40220e65080065a01f200e540686c47d026306acf149e480f001839c57b990a1040e007800ae9300f800363b65800c6806901e9201c3ae1ec06d330360801a60, +cbf907f801394e6e7571db384e0665e00980e11009b896b10147001990033a05ea010560b3530668e69c539241196068f97cec111ce006c89b253a09005b60cc, +6806c4b686404ee61980001a017e600aa097a107e681cd6e19600c089c0800650032c00c18036a80d9821e6350981b700070029d80271092200094016c500478, +fddb01005d1b8700e83106056ce618c027d009780221992d992de8310605a900070027d00978022119024019787344809401326b90496b425ac6d6c56de3702f, +3c81e402f8d3e2a4a853be6540dd1000702f960151ba1da8b2382c011de87be3ba1df044e99b0940b6a0c71814a47a22021e077fc70b181d3080170027d00978, +83d4859d66072051857620dfaa409e6a4f768419bc8b2ea0957527445ae44dda90ef52256bc640cfe16800c42090f57ca900846e07346222ad09005429061835, +51310098005e85c304e062195037baf92680459c1df0ed89000e71768007473e20a2d9017fa0a2981eb8c085029502a65bc491ea896876806dfcba8d8ef200e7, +601978d76d6d697166a0d965066c0402019727e5630662199901b9671940e1d9f99801a58319687658063c7576a0014f1bf00f89f665a0fb820058063c7576c0, +1920e69981588619e055b01281e9a18f6680c27316e41e6601d600b86006940eac44c68f69002e982db304358219380e3806bec71421f6ff52e0fb62277f801d, +c0045e8986204fcc5623009a01669f1de05d5f1ee402e8419a9c006006e49e65f5fcb921c813f37f980144c11f6007568ef200e75bc4911ea839238009bb2188, +1b08806540bbd80778d4f2003ce3945d15a805caba09407160b3730620004360924119e89ce801198040410c90669361088065e05d0f186cff6972028019b011, +9e535a003f98003c0d3b80cdce1940039844a48766a0126407c0017228318006200660010873a9001600076001dc001600062007408b61005a80cdae19b87b24, +015a601108036880d2247a4001d8ec9c01c60033407a7006fb7cc400066e06a0007006740ed550a040bbd007e0865086d1e00e28384906671f970542036b4600, +d43094195df3833c0792c119e865e6016e801c409aa501a20655435fe1f3b901d1078881cdce19c00d48ebb0196720bea0051801d60207a267406c0390a833ca, +c019c86de601784d32600618037051029ccf470cb0016c00028098b68eb105c60da780cdce19a072f8011c1b6780cc22c0843270b8ffb527000a7815f118e2a0, +06300ba4876760a3870c100368801a60a29300b005c69ccf012060b37b06f41a7e80cde619483cf4038282e62126406698069601b10d06786e185d998045c00c, +4886498667e083fe0620036e8067760cd5061a08ecd9cfa7f1461f28d94299d18798009969339e81f098fae00d080a9a041a015a600a201e9a07a28b506674c5, +94a97376a040852470b6fc0176c0f420741d6574d03ac616805ad2079463b961068d3ff901748d6701b14d6078038282b98142e01a98009207e681a23c94195d, +421902001a2001481e9e0174661f90e178038282068d3f911e70112680750100001a400208011160ed601eb8c242190280310007901e1e45ac0e1a609f330366, +01dcf51fc8075881703b066dcd7072a0db3e0997852c20243804b8004a201a10700b650800688012407a80066ca579c0312007a001c8801861f61e07b8016a80, +36020708036200335b02001a6045235c847960c3157060aba3050067c01c5f07210b0809dc8e411b1a803f3e8708c065cd1f5807b601f801cd0e1ad01ed0bb3a, +9300b005c69ccf676460b38b06a402a206688012d00ef28178bada07b65179480356b109e055401d8b06500045e003881a886fe6813660b3e00660669d539201, +0088067c05c620a660a3ca075aed5086fdc334f8017e9c680b5cc65a7e5bba8c18814d40f015dbf273421902201ae003951ea281c4631e080cc801c480673691, +0833f2015060b38bb01e25541e92211a0100803ace0020a320200e701726804e80cd2e1a60060281498668c0779b07880158b81ba038734ead636c8131e7f389, +19a28104331f6804803228076f13e4261aa025278006c1c9401ac00004010e8096671e70ede40602001ae0a9931ea201c69ccf87a11b03c806ac031db48eb105, +740d69c0acc1079a15de940b992c482f28072a8042018f2903d8eca40132a0109864880646b679a032a00608e2708064185b60ccf97c6a8036bb686086d041eb, +f0b440901c0c7019c4362c007a689034051c0119800298069a071480cd4e1ac00c9801a40769204da00c9801183a1a80d590642806301d1c80cd4e1ad0390200, +6d80128806c436971902601a20000281a4815e461e400d43016800322006901ec401620032400cc800900618011e4535e71fc80734e75086552bad8b03a5812f, +8600980698804780d44c3b9007f09a50001a600c089c080088041cc00cc8e6c4650800d48c475100910608357e40b80b2e380cfe1011c7c9017a689034f0b4a0, +6498066c257920ba4006e8e87080e8816260adc101ca001a0112a0a4c7c60800f0012d4e6e2000a693586892611ac83c801e1a240d3c89e004a0059a01b1adbe, +274ad38a297a1d881d68ec8984a3a12480fa70d4a502107af1261f500636bb691cbe161c716ca681000094e042860ae60484002ac08a2ab50865088069801370, +00049651fae34f5d65cc84a9c3868e23cad029e3c64e0b32b122a800010200675d24df4a4692a6bafe8d000250927692407c5945c5a7529bc7374435621ab827, +0d1f827803874e9a06ea0031904ec28589f446c743953961334925250c918d486612a5c88e0426c1888d48001c244e430922000018a113193e5c274020001040, +417845aa302c53a7eae409c02750a1448c1b5322251e36712992e4cb942b09b4c3a2ba6e1a397a04294387741649a4064a603013119a4330376e5ab809d3a64c, +83b013864d9d3273990382ce1b10872f02024e18398e0bcae60c082756a40469e35f3a2ba61084ea1c466541a105b6b6915c531606bb94ce50a552b58a55a456, +f4f41c402397025eff0f1f7af537da5f0fd400700830a424231dbf5cfffcfbb7365d27c08086c4ce1022c3a180ce0d2d9209a175f559643d5ca4cc8a9200253c, +153252de3fc0940848cc5e7701e00b8901d510e2511b3410a524dd48110210190c28222da21700270002e0dd5b25012020922024a484048131b00b808b489e10, +4a53864600082e8848540d2754d6f46313688b4020d221cc908864c84df831a124a24819bc081a367efd55081300149801725f227ee507c0404702b8221e7317, +6714f7c185e74aa1d5284900a1906d0564cd9d87d434d3a1906a82c1278f6b4a0809c03a737958a7a33a62dc57a548880224926587599659591c00e35d74c673, +251608bb06575c6463572a195a03442869da131d05b40adc86186c94919a6329f7f9d48015b1a5116a8d721b3e8ad6109d00d819e89f9c1e09d003861d7e0800, +06d224003ef273138d83db02e025231a9d4040405557916904448322f1838d48235088848d4b5c8a0510a27f775a68a20a8f85b0e2d1011da68a740d34227182, +edceea1baf642afb66901d4d3d15d5541d1f0435541945157534b0830617a02a6e222e31daecbf293bd2058b7fec951920418a66aa23c17da39a5548058b110e, +72241c45f22112617bf3dcc2fec994d7d96e6269d62105312b9667e59b299150db658222f18ca249831a4ee89f97c9de1a2812858228c8e0a645e9dc739f8004, +e494045cc3f4d022be3cf7514823c50b7450480460434ccc6422c121471a6e14827b2400034cf0eb6ea79ffaa965a06e0c8b0b000b92411cc349ccd4242cf134, +11551db6b11c1c086fc1edf09a1c65d82471d06f6990d1db8b7f44d09d21ae2711bb4d25d37227c2fccad92ca92d6fa9d304812d51361cc4f9b89344d780c6d5, +d72b19f59ece7fbd3aa7adf7f93ad0b385949ef5dab23fbc7c504404648345ccd34fa721abe02d8cf241f7c478ebfd641c99c9264206a06ac1d31146e0659041, +2f9583515f960380dfecb0a11c010cc147bfb579c950fec3602d6dfec101ebaa96908836001033331ac2709a3258462cbdc9780f7c481903a86fd98befc526c0, +a5103f3c319c11a9a021042e4402c46c232a852e246aa811a56e892d25d31389c2450050848fe4e5fa08ba02e006a6319eb038b70ce004def1d9c11010e443cc, +863ad0e1112c21db860c2d604318f2f0584319f2208637c4fe208567886402686cc44726dbe083230c859b061dc8030fc30dcc5003198cc1673e2ca850243828, +04201202082327225930120013285571338a682429c87300231c2499c74a0e12818d98b1403bdca90052908404dfd4b4f81281cb0080c73c3fee218d364a641b, +8045d0a18f345103200632848d00dc406d031863f80d1bd6a068e5041a47a6c81976998846b243959a0900e29679cc65b291c08899063c0999a4576435063a60, +96a40399bcd9b691042a33c93df6519e8634cc010d2951d7a00a536841114ec3604138df711f7529fe18c852a6606adc2e0200056198c31a2690908e0072c18f, +a602d774831bde40b8e662dcc0020c8540a03b8340c50c69598d61908293431e81b6492049ef109bc112f2c85039ec2ef0b3b5852a593e71f8505e3e9cd41201, +e0216b2b5aac262a2a6c000143be5787c3535c0082dbd1a66a8637c801786f681075a851630a528739a8425562352bdc21a1e72810becc2707c2944197432525, +079ce02975a965ca92b50c72302b5a99b651de5adde03cb11f490a82ac824065a0d0d0c009b959280b00cc921085e4856ccc55e6501c8996d30501081cc5a1a5, +5ff153aa49c9cba0481db4d5973a99e8060488ede362e7490441181a1b869cfea020ab77ce0a99bb464c74521ea5430a012209ad482461cb1f31fc75ce21a564, +2bcf7ab1eb2dfc4c0ae1a200982188000a1109001538ae480694908c5f7c71de50b81a51aabf0680e7b86fa5e418107d4d716da0499623604eea2b361c860a0d, +96f2aa4e682820dbc5153bcc5f8f94c15b145b7d939922f9eece0d756883182c30f1490442aac7c4694feb2f00e3e7baae00a8cdbfa3656f14b50050edb7a625, +614227e142a842451aa510228af9dcb5229a9444246a7747366a2cab59e55d2ff8490480eb88b7bb496e23b8e75f06e3726b610c5b367a3032d0f6367980c3ac, +e47fb108c5440c4d17739f7dd1e5fcb2e5f2776d753e24ee4f3851753de0b724e03296aac551af6779b7c94d617cab650f857c12022368d64a61bb1232a2f7f4, +3622135738ecc412534f8033fe38875a1ea1762526480d8f8730eb08098b9c637c5f7f0cb046e7b067b8ab29b9163de269d08399ed5ce10b07a01abc969ec10d, +9c99ced10b6753b7356dbf524c12da6eaff717dc28726af9e0e09f1025f26c690102b01c5233036b004348f984412412d7450430c644550791c49602d1de06c4, +db864bc2d79b0d7201c051ed8b3a08e1edc28143439312384b22c006555fbd2db0d5b6ab2baffd3eb99a9ad5b4460a43d88c6156b232835649dec044060c4b18, +5c240759f41bec608bb8474ae15c879f1d81b57048c7e5b03ab89000e1e005a9e1e0fed0419c970606fa5e6d09675f2f22863a98a11012e105d915186c1a000e, +7d42205804bda662e52d17070448ed86c7b59b769038d461000e7f4fd4da1209009c00c068a27e86d7705026dc470a5a7dfafdeb899a8242d965bafc3aaf0ec4, +e0068f13401c5c20f348eb7fefe2cfebe1ba7b153dc8c100bf05b08feb05a003396c9370ebbf2e5549d6fe2e55dcb405920938c8b1ec57cb558e994bc3c14bf2, +44482f57dedb4136080c1ede3ffd59badc2a7218430b620987d9ab6dc07604fc6d5e79c3ff3be17a71d083d4402039152b0799036e82d74d3512667e7371f88b, +9fbc1529ffe7fc031da1216cc45f43ebffe48400e2ffd660212c7b955e8b032fc45cc6b1297521407ee4bd9fc3038bbb93e03ed4a01836b66df8fd0a847ff170, +78f10404fa88999805c026dcdebdb048d001a6849058e0b50452dc11058027f8dc09e6040027900b49a08190fbb989bc005802ff1c98be01e06eb83fc7c6f85d, +1aa14438610080425911c284ba0400113bf1140190034c2c0180ba2480f9e5cec03ae19e395c8ddf73c94b7fd4d00d71c0450060c2a62c82833ae008096642a8, +c146fc54500d5586eeb8a11d689e10ce9cc017a2df4628d003ecad8ddaf8c4126bec9673191115060c06ee0cd410aacc9f9055d7b961c0c7c6d488393c03d6bc, +a315941f92c1ca0592ddca6d0455d9945eea95c146c81b1dcbbc161104c5219e78d51904cf1c0c87a1dc6d0441c9941b99dd011a7ccfacd0814019e041321192, +f88339a88fdf1140c01bbe53e18c43d5009082fbf40d0090511bb671dbb7b8444c374c8bcbd5dccb6e9d01f3b84167bdd1011a18c46dc0140e6af4def38dc14e, +53f1c463f3f9de181de01618da46865d8d41f0ecd6ac48d69b0b0c81029dc050301a5c84d89efe9d6649e33d1e9020c8c79654a3b3404b11397849231ccaede1, +32d6a159a1df2981550ae6108044aa101e392c11126624120439e3162c8e1b18be4932ce413799831ed7515ee15d9e3900a882c44cdb38cec8946d988143c084, +a4cb778dc73f1040c07d641f6989c41f475e114fee9d39dca8e40f5824466aa4841dd623d1990338842c24f23564df1c4ce313ce92419242242a5884393401d6, +c3c5b1d6b7fc8a2295ad0d17e187c49c048383ac250010424a30308d0c428948f5f56072f9c2964c90894c9c0315a864137910c0314093da334013b4b88c4c7c, +cd004081c845d12cb2c48064e16a954a430571cfd3719753e3dccfcb984939fc01c03014db7dfd43c024c49f7619db0793158286489e5e02dc9e5cfa078a758a, +4ac4397c085d7ca6015791c186ed1558f0800014bcd31cdc18411ac8411ba854899bc8c383d1c10465a66034a243ad01aa088b7c475ccea5c87710005e8ac45f, +4004f0c81f0c16307b7e58a62118009c4411006417421240011948a28d4984346ac4000c10554bb98915085c01f3980651686cc01470154c354859065a8efe1d, +2b9ae75aad5c4cd981000229d040dcc6866ebc8170349650611584c87cc55561d8a67f0c964fdc802706584439e002d63142cdb03c446638f888ff6127360898, +f2cb73e24a0548014118e0410af094734a85c12e59966db4262708a0000e78284c6a94c13cbee871e1a4030d28282770b0136c44227292545451a5e72d2a0bd5, +de872e50fe1457c508b4c095f6a862699cdfeea01ee09c0609c51d9a4f8cc0ed67225128a9c9620262a348dc5f736da368722ea7731ec79341bc583ceae818c2, +536deabaec9150bd9cc11ba40498622ac9e6e48f93a98b006572c1e21c010302ee0e9e26909ef2a9291d20d09cd6698c5ff84407340141215867fe59cf8bac96, +fee8799a4670a4c0290898ea50ed94a77de826aec80015507cd73c508865e6c04013a4842494ca2f9a0c02910140bf0568e15c1687650a41cbe3588c02a2034c, +c305241d37aec37aae7e98af026b8d94ac832d29dd3af0cf800ff094658200d6de9583090ceb6e0ab4c11b28440a18c78eb37e1592a227084ec91b1bbcc11904, +ff854bc25ac2c2d656a525f850c11e6c09bcfa88bf02acadade6aa84cc2090dce82bbd7a840448d99fc00d60d85966023af885bfc6033ee8cd2b00f4aa981280, +a90b0b90061d88a743383cc70044c0773b5c8f000c42c891ea82cd9692294804412948443a5cd1cc3a6c49df54ebb5ba10c03ab8e709c9c40839cc4383de26d1, +4b50491699a84b03adfe154dcea70fae980939345b344243807305687c4603d31dc8c1b1a4c40040c086f3794e5751151c02fdc0bcb1866b6ebcca1988cf1dac, +68a51391c88bc308406e2bac4f3b34c91a3240ae2eb01a34abfd923f90c330b054a5cb58043918035b54d2023445d1440b78ab42d84a042d78c51894281de441, +91c32780437a0cd34fbba59f48e4e2de870e144d898f650d66c055b8e2b732a255e0ec8ecbc0d9dd4f2c803aba013ba25111fff9df09519c1bea3e1ebe28488e, +02fc9a03e40202fce42202fc9603e412402e23ac2f00900303e44282f98ac43838402e25846f4a88f464e56202f7164791d19103279c1a9926552e2740af7ad4, +e45681f50e93f792e200e47201fc020101fc9e45e58201fce4a201fcbe03e492b603e4b201fcba0301fc3653e5c201fce4e201fcae03e4d29e03e4f201fcaa03, +43ae0bb01a3ad870000c4f2439ec4011e40a01fc82530b6f0f800d8b000c1300000c0b800d97000c0ac07000904702a024800bb41253b6f04315acef0174ee3f, +ee03bc31e42ec01cfcea70e54ec017436e00fcd670e55e0009e47e80f97e26e4fc1a00e48ec0fa4eae00fca65de59e0071022c000c3300e40424b10d3b000c1b, +218fc33720f2386c9f03fc4ee4388c032f0840f23a6430247680c63441f23bc0df03205bc43898da7121ef03fcfa702100e8b13f8cc33ff443ee01c0af1057ee, +2080fc45afc534f302151b732404317938ec821eff030250fd0024ff02fc52ee2f2040f2e54e7224242f430843f231c043f2348cf2332c32c3fa9607245fc327, +af0180722008d3032427c218437221acc06f024072237833312457c2358f432431e3413223401d5cc06f0340f227b4b2f229acaf7440f228226c3124afc21d17, +24474113177213b817720af3b2cb1c0001fc16002467413d2c1772183c722177b4c128a781299781721d8c721c1cf438fcf20024e7412b17b048796c1d24f701, +0423530d02c50d008d3c501d69e660900bc06f0440320460c0ef0340720cac73720ec0af0340720dfc727121f7803c171701fc2e0024070133242701fc2a0024, +af489075decc853c598501199001242a5000570fd4eebce343ad5e754aa098ba9e42b5480c808fc9ecce10404115c8d43586a88b03b469ee4411803ca4882030, +3c7c6664cf19045c99e269a4046333eee81c3cdaac18444b5c69c05bebce1886a4a63cd4e75fb38ded53883599e8b5005bbfe1ee040e6d90dc9e5a8b045b4380, +a3159ee65463515ac3cd94b65ca1366162539c00701101cce3961c9cc185d1d44964df8cba40406a54b80c6343e73cdce88670b8631a9c8c4065ef0e154c8110, +b74790c871374964eec4ca1b8cc11a50a8231b9c15723ac4ca3cb84f6ecb150455084e71e875001cdbb570d846ee34da37912877eff6365d8d0db7480880811c, +3c7c57640776057cc801579577846bd16012bcc013f8a11ce1cc43fe4476a5fcfd5eaf8036c50540411aa0685c0bc720f2da0655cd018c8d1389ba7c80ba1169, +216990a3225ab9d4f77aadf7dd4280ba5715c45847f8801c0ed51cd4011cc001950518c173a30c877949c43c6c4a89cb7715eac123888b4475582f22b65a9687, +f58ddfed04f43613f3e037009cd7712bb4c1ca250f8b2190781a98d90b2c561a19b4816d18783225bc416e6c6b4cad5c45645388baa000159ee635c5f51f8dfb, +db41d51a04d51d34164f1e10ba485c78852b5ad6d57a45b210426283b79b3f36c90674a795acecce35c5a98b0b3c018c9040784a88b8553310c11008a9024916, +88830ab01a3e343bc35083f404c08345fa9d6dda0a688d88bdf8aecf415194404112c0391d4496991c0ccf1cc85b10401e140488001250a9228b7f386873d1d2, +830284bb076bfb1f0a347b0384bb068b777b266b3b04843b8305847b826abb1d38697b06843b188b0b49b373c0a95100c736fb8338a831480ce072b377124817, +3b843b22207c3a845f72b7e7b23f840301c2cb43b8e301c2b8a301c2d743b8c32872b78301c2e3434438f843b8875c3812347b00843b145877bb086b3b01843b, +4cd425304deb0a992514ed5d38fc42c201dc838614825fce080020540a65ea253b2c20bc32484a4938847b4a867c378485bc2877bbab8503fba885bc39847baa, +8294257dff00c025fcf55adaeb44a914b7a6d70300d86794587c298823c066d495c5979475ca66364dbd48543d00c8970b86443d65e2d844aea54408bc85fbc8, +140d0026e4e0dfe35dbe44b803820c7dfc7e2afd8df460747449511021e0b2f4541490d45c3e50ccbd2a6434c23782a4d8f33dd3e87d75fdd4a799840326dc87, +11bfee2b3d16247fc1ef7f4bfbb983417b883eecef3ec283a001ed3b88edbb03f7eb93bee9d748381cdcc7d9773eeb1bc8c4cce44de92b3d41523acc6612803b, +11eb73a3fc2b3d0cf887030e24e5602dabbef9bb43e1a47f5fee5fffdfbf1ee7e8713ef79704eb13bb837258bff1877c5e38404152a6c4eaff2d7f75387fece3, +8e6b2a0fee8932fd49f2e80c89900fb62579289320804dd8582f1027bd552cd7e908bff02908803e0241d80100fb4530c9c5830c3d01935ccc09d3241700a418, +c0813ba07dcda2004983458c400d6126a6c201010401f8805c6a40f643436440504040a53601dd070053c202847a0d104504f01e18408a81bd07e0ff7e5100fc, +9faaa046b1581a08805010eb48047d500db2b4045960134c41c1781b7b071c98b0c20141211802ffb836ee44ea22101a9318faa056ddc00afea2172812dc47d0, +a80a0421214c09faf81e8cb049480f401d037343070cc0f27c82017845744d4bed20b0008989e2643a08316ac4ccc31a10048181406980417e089b1eb87f3a60, +113009970a01e084486884b8c200d0940cb498ee26075ea1a55242320081b34b2a738a4ef9bae2a1013c0002e240e0d840ac6b74b44edec80d1f780b08e8083f, +014ce81f1c210318ca36ac8416011cd03034f042c1e10b79400b399d2d9486bac385002016e28a05a8c216c00a97c7af4661d83285a8d00d6df0bbf8045028eb, +608d7b9083c41e3cc2e1a9f007e0400bf8300c2ca760081a3aa00048037a6a016fd052432f07c943014881318010e2800a83e17ed9863e2102904ad08d1522f0, +3049047cb039fc021682a1c47807a08108fc40411c41f6c74202a03b70214294211260311eb1bb38eb142a42e5c4a47641710e211d580050842f04a01d0c1679, +801f140c40880188f8254ee2474c89046403d2101146c55f85068d48104e612447cc44ac88686aec32006bd844ba17110d8170f0c11f1c87447c073968f2853d, +b862025001b8180711311133a148588b300c8635a72cb641d7f1ba914826b4a205b0c0293c4f66400fadc541f884092083d4a40fc6e220f46227c407428200bc, +06dfa021b64093909e784021368a99f8ce375850d1081f1831bef8447e0114f7276cb45e13691b062400fb6089481ebd524298a0f7e84444e4225dbc2cce431b, +dc806a0930aa84c64c3962e707e1871d6c43aabb8520a0044fd1d7cd0ac872596bf2de404061340a5c585a818d04a081aa29b51c0824f60b0097605e9c8ce582, +1d9000c5c9be3d453149048ae81f6417140dcf67248b7529386a0bf77c0352403d0cd805f5201fbc818fb8803c103bee0036d9c69430fce2c401b760a09208f0, +811f208a10e38abca4000000d95423be6605a3cdfe89591f8c8fff807b409ca45c9a0d070cffc158e40a012003172694c0f033da27001004aad287bc82e0202e, +9c8844780714873e24927bd0c714492189029ffe8b670c36218c91f98346d6c412a4841372ddf0810fb2914c78074a6d073061a3c88bb9700322411fd11e0180, +2583a23ff80644801308e7456a4794f04696d4830ed32570c04a2800016053a4006bc083fe500004d9a75008ed608f53701f42ef1df8101e72c8620324e6023e, +482545028f0c863e248b4b32514a49cdeec859020fb807924d64e8c3916c892c3540446a478f14231dc025b3049f4c8d3482079ac14eb2474b5e8f37091a7f52, +08091a07c07d90174c741334b1e2101fe9c1c424391f136524d0cb6cc407fe220e056000904887c1802f592952a30578e487e40074b2500252bbfcc4b62126c9, +c468b90f6165d8f39399f006e7006bc8a1594a4bf812973e8221200eb42c137e4422b5aaed7da6134c829b41008b25672645a7a089c15041c5e88ae0839d3197, +048e96e2e6e414bba88a4a79735ba5ab25600a2c0f39305468641fd70691f0096b3a7c35c21bb4a7113048f1f21618642eb901b9347d7e81353a5124f0c45d19, +7dd04c61e37fa2633c886308c010cef10a20e02d9ec2e0808dfc34d96ad7ed3a4485ac8d72f009e630ec0480ef171b9b11f944c22a984b07c12398414c74160e, +71110247cdf20a0721e40c9b91da2921100274ad659601e40009566732ef16084fcbd82b0004c0844e8d34914727d31d27393b880801008ffe104c3e663b5ec8, +faa76deebd438307aae835c16163dc814ac0888950245a4543454c823007c05e1453027e640047a05b21245ce0ccfaa84db14936c366de40c002083bc7404480, +5deb113b9d107e2148a3919aba2460719f3f10309409e294c32146cbeda234bf4900280790100f12ea415e6f00a4835258c891b577bc01a5bde01e2c0ffe6051, +b05d4365d194813452475b22668880eed366da525d07a23e7b08045401388037420202fadc9f5b4454c00d67a56ef22169fd1428b7303d94349fcc7d2c99aeee, +ab932b2c404ab51b11d812b707249e442da160280986ee4300e4327f400229838f93c022c0e5becc26934a1694e93fe5440eec4e222531ef2074708b1b8829bb, +64f34c9214c783c28874720f06912257b13a6b443798193d1c9f10237ffc44f75d2b3290028ee7ccc80e679b152880cc43a5943485b9e815eb696680e718e28f, +530291800b05000118741aa84a03c03449693ab5a382408d48b80430e130b52e1cf0bc24a9d4daa723b61ec53013dd0094a9332ec12c7ce103d615258ea4667c, +1b78dc236231b4410af068770050a1532d18e004ca80a7828abc681259307fdee14cbabe252225fa102e2ea845e8069e649d00a43185a0f25c1cd3552a8fd9d0, +1449c10c5bfa2195a21e4b141ca504ff7c493d68f9fa8f80a2d13d4017434fefb7674d2e11196a1f87612f81a444b807909b73664b6d5e494429904bf7e382dc, +04b9208b43007090bfc47ab3b15cdead23140023ea1f6ece4256e567aa4e01a03ba5d44df410ad0180048005316888f4cf752a9f918961148f68bcae4bda488d, +26d8852fc8e6d3548f86749c19d2853672a824c7e3893cf54a67a40011808b001c005d0f48e4043292c6156a3f61e086364aa47c0775c9832f8383fed014e92f, +65d1134014a7463c385c8bf3a6fad4d86e71b5d5531f475316011ae44cc90c6c719899abb37cb2010abc863540076266e7fae7f5940254401718007a9201e909, +86120055b900cc5f4c53533ce01fad49963743862e0072b9836e100194604d649519cc3635d1a3fa62a27ac68a9a45f3fa011eaa4488070ae01e7aef27961e0c, +63a3ccd41ac10d6800292de5083d9ddc7d591bb4241400061209125a2984a85083aa3fe006f2805cdc001ff8d48cba519b8a5325aa87b4084c5da166821bf803, +c1503cf885a309002896548901516418e6f0aae1607d0d801e38c6b9d4ba94e62b9b888f51a6c534aa42b51a248c18a9c9620a0f4e2385e8e8542d955655222a, +ac8bd53336560113c69a2858f1c1bc4ca2481dac81f421761373a604d9712e7b8937684755cd344a9c8d8dd3b0de09f2fa85f578426e4ee8ae25552500a5e227, +6d00d572f088d37056d54a519d241b66d40609f4aa7da0864db27ea0bd027000f0c9a7fc0f73f1994c2103bb25b7f04e9dba53eae93fb167bb9827fbc1152180, +c5c128d3c2bb968b8be0838bf3237fe2d6d46601580031549ea8c72914547c5aba0c405b6f976dbd8074a57cfe019dba42bbfc95aaea220a2a455515247d092c, +277a4d26d5f37a2ae22fc6d6d0305ba30a4883e1e9c017e41cad9d93b14a58d0ca57b1aa592fa75aff01ffd8a97352950420b2ee1fca5445aa5aba2ed60711ad, +76ea01008b12611f0456431600078021171beab00d7f15b0ebeca7e581e18855b192d32c694eb12b173c2703582f18d2af9ee58880d7e9ca90dcba5b03e8f774, +405926022d5befb55352c1a600b7e1041510c04e7b1c08c0e23ca855f282bcca2b328a456c0301c7b10d32822a7d0007a8b0ca92c0fa193380cc26122546e6bc, +0201fd62981dafb2306e79111f6088bfce4cc2891957a8bce36c6d818665006fb2e2cc08c7a1121c22a21be54aa2892af08b8d4b445e5008f9a14160542138e6, +525b3567855dab4507004fa7484eddce998a846a1a01025b124e81e8a42e3ee2b0a44941bcbd19205a97f9e01a2d76e4611a68b3b302801eb3cc9ed9e1a96699, +97bf1404959a958581738104cd4f1e7c00a9b90f42b065f15b14a7edded9068f3c9713719d90456a6402550901dacfba42a03fa05935621b14738fa6adea96f9, +044d86db6e3da0c3e792b294071aebdaf276d54a047a8b316ebb65e541fea0951a4c0914d2fcc9831edc8c8c2912264e0ffca86604b78b52466c0129c683d494, +4f09ba16007440ad71ff01c548ae2221a49220ec2489ce398da0099b482e0bcd01b595079bc2db16e6306dcc94407ce26a11b6c118208a52d89589b33c6897e4, +87703190e001488834a0be021b2003c034baac09e9ce5af7dc0fbde80195da94e7d214898cfae0bb5df6dc9255ee98568b6b0494ac270cb0a825033fa0121487, +dfef1d0cbf77c0348a0913948e3b683819b02cddea5b958155489558a440e6804f01a88a6b445ef709c62d2dae0de7795c87aa4a0180934cdc79290012801f5c, +4d04701f2451f3474579b05e24cfb384a4609a289d0232e61000940a3fe308188052811113b4b34e200b05e0955c5c04029f9602070457e010ce3b70135c21eb, +683dfe401bb0d51e000ee190094ae5045ac0f2902a2d80a62da0bb0dae3000073e333b244fcdd2bae1448f2ce257cc5e691c1ad4bb2508e701e3a07fc010a397, +349c14dbf0ed8501763939e40b2b64857e61ebdad8b0037711a55202cc127c708f60b871834dfec80c2d8d007b16c0be07d67a4bc8f39e9a447a55efa1880761, +ab8fc0bde7710852efdd2ed93b01070d3469a7da3db8a2c3cdbc1d572450c8725000caa50d4c014a8f6ff2951511a10047f6438881dc557c04a920c1ca7a0aa6, +0b400520bbd3770e3697c1ad95e415833f0800b0497d8347ebf23334b69296d3864c5f4390fc36ab067e802428951500a7c3d7377c8ffb5b5c15c2785b001cb0, +453270149ec29eb18e7b65e0a6c40ea980fa9b80634c5d53e25463bbb6263440c733363f7c009b7e1c48c385a595c2016d075be2272a0827dc074ca045b4af97, +600106def41d8aa3ae75455838189202cc01775407c4c010292dc2f28cb58a2b5bb826ca042f1c5acf3816d7a590b9c3c3e1179c33187e619854dbbe9285cf52, +e0591462b11b9086a8f497d43154cc2e005c00266011b481004eb053300821a1c5313207e15b8c03e17bbb61f730201e219d0d179fd8fd5e1108426100806f83, +d94b5c706f82d89da2981d3cb4987b1025b974ca5f54416bd0867f2208fc89fb292ac8f823a23d00868607e08b011d504100a62013fa3770afc5aafab9a2c075, +542bafb04c68712afc4131da1427780c26426d11807e701c37d74dc3274cb8b1e3c31511e019078ea6c22c20417cc4f0001440a5487a4858c5af4422fc03aa53, +0350038b900d66814e4ef03b2203b318c86fc02b3c0f80ccda16892b1ac03366af4716a73f91c8a8160e83628d5c8acd2058a1f0b2ac8fd4f107d9001aa8ca08, +d9114ccb52617100f147e59e8678953df0a500b8416288649a19def90a9385ba27ca6b8900fc73c4b9341cc54ab5372d05712c1d5f4a2839aa7c009fc95e66e4, +0aa2036a52571a5fd9442c35a60b4c80f70d32def7be7a461bf0811a4a161d06380ac243ce0098383832f7150bdf3b004ab43b7541e9aaa44d15e17a99947e96, +9048351ff48056428cc3745d4dc4fde0aec8f40fa7120b5350c07c2409b96f0b62613d487c85597c5895da45fda6cb0c415a51155fedaa4b4b051ec4077369ed, +fb4a6cc026f3006ddd0363e09a4120b6fc81096066c0b9a4d3cb1fa4002ae60f6ed7b924b2110877130877994b22abb4223f817047b9b2010118573bb8198f4b, +7bf6ce01e03c1b8d87926703109e07cb25d5734bd5ce830513d9e0a869e72661830a109e4597943180aadcce740ff7642054b8cb1a910d343691b2c14555a51b, +41354067fea01f2cac1fb01168461ffa8c0d0ed9824e0974300088ac1f7c03e358847e600e8c733672984dae77d76eaffd001e18e77ed00e625200c4b3853513, +1a742cb0d0d1a0a4d8203b646891200111dd0f70010c03634a6bd0bea040ef02401703118d0dcac1495c064deb07c8a006d4cc1f60038ff7120f0d0058da887e, +a2b757910600648c06a4c0a2b111c5c76956f0a551c144c3012d3868d8001670809061035c80c8b0870d80c135c306bc1e0505fa9998e871f5035560a1950193, +6006eec0945b4a0063762c3a0cb09d01843bbf8a0d1058b7f0579ca663d8e00ed8807ec56938860d77c6a2df579c9e48f98ad3565a7dc5e94583af382dd25874, +02e0013e44ad86bdb88b762c7ac1b2857ad8a0bd830dae4012a6c4a82ed546902f77a0537f6aa02c26cac4a974478d6ce9dac02003e0137c400ce40d4fe05c5a, +d1572d527d3599cc16c4318da5f2021cf3c5ae4781e3ab45e9017e456eb4213d40c1430e553da852d422e335eb6e8a703a817f136c64e0ab6be385ceea723100, +3c80658da40287b31a96df79d7f11a0279435bc34edc830db6310042817240d70eec58a5f203ece459e55350c03f40b500440168203fc0581f169745e762b630, +1d7b8083b5b153ab91c5eb95bc38dc18ac611264074dbd00037aa02a4176b036f5c0de2f50d51f5c805fc3977f1db07ffd165c7553d3d705465ec2814c0c007b, +54589b896bb045d7ed013a6fe73521536091e2d8030c166fe06b20d17a33aa8fd7adfa2d001ae066aa72ecee9d6b507d0fb025d42ac9ce0668b6d622ebb97ac9, +52c6cf12ecae1df86d3c5f7502398e4c6906002ccb5cbfa76ad3ec5201345fe73a8266d4a68e2bbbbc91592e5fec0bb21fd8145c5342bdeceddb332d7e05f3c5, +dcdc990d168010e06d2882b84ba57886b3e8a4aa1cc04b74525b62ee89c22dffec974b2507b838dc9092b474031099ff21c9ffbc4e0a0007b4732829001da02a, +704f529b93c2d0574ceef9ec3ea96a0729361fc54ecfb5cf70d7364c28e2693c21e70638ddc6192a1198028ce8cd412202bc005d2bb56e2781716adcaed6d614, +8384047635d87cef2e9d902911bf2137769ca8e5c6dca26b00ce1b5616001110ef2420290c0e55dd81135095d15ba77e9445e0cfc25d23aeea781a330f0ed652, +ac0828d51868938a800a186fb037335927bcfddca573024f999e650081a29e4e7a36d490bbc78aa371c6a6bd5b2a0020170563834cd88dbd41a94a43803b0601, +0b334729952320ecd6609ca85233dbb614ce836987f6ae11fb6e18e77a03dc8c04a8658c9da94aa59ed9c37f36100560b17fb4ca7e6f07100421d1beb7c401ac, +c401c0a736e0c23a4f09048fe4533edad1cc26154000a44a8650a96f6fe0acb81a5b9186676de9fe090764454130b3cce20150c505135a879c6d91e02dfeecdd, +b0441af706c8418d10e2bc203c27ee0ed86f0f5097ac76ea868742a80dc4f6455bbc11757189ed55f324596e0b552102ba680153bcee5295daf8ea9d53b713b8, +c87d7b3c796476dd10ef04941c75ff09736f80d08db949b72d576a2be70073e9dc0b6661f104c8bd6eb57198be32e786f706b0aba5022b639b0368975d89c92b, +477aa121920b8bedf3faf69c1de02d513579e78fe5cd96fe39bc5343872a9e0ae171bd5b2a006fdf3cf0e071ade0d46e21c00db0ddb653deb3f1754e6f278ec7, +ee88d6fdbaa1f601aa803d4fddfbbc732bb7bf8eeebd630df61dca4b65074031267fdc1d80487c721a94815deeab4103540eacec08e216c10022ab98e78b90cd, +88f8ed57ea0150cc9ffbab077018ec7cde245ca27f73f5dd6f6dbec8954b155145f0fe9d187c11159ca0ccd169febb67ce6b99b9eed63cce0700376176d70065, +3dc898096bb09f558ebaab8ce2f61155ffe7907b89e86f4627ed13e05a81040ccdf30645dfa83b9ce059958e73f23dcf23c913e4b93fb0064c4f21da5b94b288, +dfd5a9ff2233510d15aeb589460138019c7da53c8cac93df82074fe29dcd8ff7a55043f0a0e0bdf3dd29808143b9072ed1611ebbd7865e98690990e102fc8887, +aea67df019f65bb0f5cc6e61f5d27ffe3aeea906c280b94ae52bff6706a9440b0dcab1fa6467e8132fae1d60bf78f2c9cbcbab0ed0ddc740b4813df700796972, +fd07cbc50846e6144d191f6e220ea08e23ba03eadefb85316adbb12b6ef7216ec94d55157b449792fca8227e06f86aaab2b36e614e517478cb9fcb7f5edd009d, +099828f25d3ad47183f8eac112d9ec37d4bc4472d16b0000e3d6fa638f7702c1f33009024ec7d4b6812038d91fbb2eb100954b1e745e23aa101ea1de44f91400, +40cdab064b405542e4c0ebd6e5518955b05fc7fa9b48af0ca7e9eefccf14001454838aa44a55c04a12c26ef5174cc91f468b9d00483f929ef74e3482b57c070d, +1d76b3f60a5ebc0c2241a3a3518efee2ccb1d34b250ac0e59f7cf02bfd4e1c1a12944a15e057ab815912c2208fd8d0fa01d387106c74d46378e24ab8f70b8b4d, +c1457a5dc7e643c5538a068dc239b96ef5740a0150005b970abec08d729c9da71e543f57fb6d022af1e30b8009f0cf1837bbbdbac4e39ffb3cdf02b002f00983, +970fc8817176f4160063d5a0e041fa758cbb6a10f0405a05167c35e8772fba02f5a095bc17d41d49f2c10e188145a0070bf00d80c305cf81a49ff4c99075bf4a, +bd5aa4b31d35a00635260003a2b3affa40588479b006083d1cc61d35d864457a4a16811ab8684a5603e54c0d24d98bf6c1a6b706c6391f4c2d1f7403e34c0dfa, +096a900a54e5b72f47016001a5823e9b79d5930e55da0264430d68c1b4772eddcf05aad2d9bf74dca85216c02ccdd0aa9634a4d760d44071a7a602cc3b7f400d, +25ea55dfcee234233a01becf04fb5e9d168d1a8402374d0d4466ee271a352805358805848c1ab402dcd7086a500b0e1a0ab27db40cf71a82952c40c06c7b633f, +1a4881981fc9577deaad80aa7cf27b874ae59e213ef829b4fa7f470dbc0089aff5a2df77d460a1417ad5efb3866fec2140cf02f5aabf6785a306f12c4e07326a, +1c94d2ccea3229bae002ae8dd5afb8236701e09e05788b02c1aa7adf03a63d7d7f7ed5a285f60dc83f57e7430009d0f3162017436d2429f7f8ee41ea6201e8f9, +30dc0534096fed02d4fc02986eaa12090450956b0e8c3ed2ec076b6f3df667feb36910fcf0fa0e02fa2ee071bb00ad0f7a1400f5d5fdd4afbc3746c72d0097af, +fce77af2537d267380ef62f8453f60277fe347fcf8c27ebb5b2fc0ed883ef80b7ac3c3bddae7211852a58edfeae70fc3a2e3c3bf77a601663645fd2e952e8082, +4f2edafd444a9e4c31454c707a99062aea92999806c5a0e924eebd4ff8009fd7c0fe02c2c57e57fc7caf72f45df52f35f27f08caefdff976ae5b3fee9906f052, +fadf90f03fc8fcc81abcfb1e94b4e1ff9ad3ffcf5cc4356211e8bffbc7809490bdcb6c250a400c10812ca8a1fdc761cc65af8884706f74a69010e5411520f483, +12707604207c11ee087521800a60a524aa1403801b03600180b66704cd7f8980bc92ba1776a0762c08b4540b1026a57bb4722c00d6d702e8e4df6c55690c3040, +b100b003e6a7f8890df41dbd1a08e8398726787bf5c9c8360b9022705556d7fc550b50ab20539e52ea9e7391fcc501cc7a2dc0edd1b8258045808f5f1e80eeed, +564e93ab23a1e406a5040645b8a75d185ff17ea71f1d244a47d76570771da305abb0e7d55d1e5d355c57d1e73c01ae41139d9957d18527cb4e18db7231e65147, +2d001761f59136c400cb9d8ee50f3c6e51552d404e5000c8bc7d6a0243e1a6ae469c7838889cbc8116f7b01172c70bb4e0ac600678386d80522015e82a507158, +c38323df5507569f588d5cd1009482bd5db2029da3f66537e83673456f5305d2dfd5492e4072c3d43105b01b0f0e00206ec3d4883a0880ba9f9d25df4508561f, +b1e006d65d404e878045871adc4e6c60105dc156d6cd6e347e56df11e81f24819880fd150ba059b5323947409d34800ed609d6256f1cac667a0309e67e9c9458, +402ecc6e2b003568312821d00b811f0001825000b400b358a5920c502a984fe5781fc48fe7391182914913d48be05c45d7e575561fe8a7f8b7a18474d75c4987, +47582b9f8afae1f2a009ec1e1a4a1bf0f7572aa57f168134406be6a15500fb05bfcdace007ee1df10144c099911b001214011d8ebc41a7340a5271c55336681b, +8c4d809bb784cafd209c849d13657698135fc070354092a361f2f6c40367d9f40373d15e7809adc9ac495f4198ed4a3c0290d27841319426f903d2802420fe3d, +4a2752461108c00241850497555829ec12ce1f324e89b1216833a40414c2a4e05805003c021e494aa1b76426480314444d141fb429a4663c4842213f77557980, +fe819441ca59854f5c23e10e4017da859d820c44611009f4b8601c775e47a8e75100d800fc0312720150033c759cd492598d200d3001a5432c020f31098e85a6, +610d407b550a278433939f5165e50f791606c119e08a74161c29494a9b73612c0d0e5a7f48bbe13c171bc80631453f68310703880179401642b8a796d81db7d1, +6e800dc22322dd149eab0314085a5345141e0c50ae01006586688052c11ace4090866d8069083ea419e201a1617ad2ad70cc95009da115f88240ca4586f660ec, +050eae7ea85f09a74867d7cd79dee037515c171c5470dbe0a8016f381882001b73d41180f00ca679ba00ac14c6c6b810d24952310029750c580df6868f817298, +55388456df7fe898376815384fd18228bc606bb93a1bc01e465e47e1c900fe82541c7c38c1c987793844057a02e5b487b007b3db093010b6f8fd0a9047010003, +fa07e6e159272ffc03d40445a0d5471e880a7e53fc078b151547555887595c875273e8b6cd6ed2213740b1170d8802aa861b5e51e139845d09882f99c396e779, +71c5918328256616910039e2ac202c6022aa2a01e28068e618fabd08269c0b1016781f6e7364e0175c7c281ccc7570de6de0766866a5885909b3db0db01e6287, +edc577c1ce9920e483b6446ed409401bb4551d9b27f042e1988d88b84734a004a81d0e86df6097681f971b98899ec3922085484d1d73342286081900417173ec, +430eb61c3277988373cfb15697280c876c9f59ac564ea504e0739e920e60b661db2171de177682632218f279668bc57634e0bfad5bc9c50f20a1b163d1413542, +00e0a9f175ff1da98ec1541cbc3dabda36000d203e0039420070008233b88c39de6b185ba2030144afc1186e00bdc629681144030dc0e5255e08824426f39204, +d2abb500276028f1369060d508d0000f621bc02cfe00b384c5013f812ca601ca2d050043c00678052148638b9c65d5dd0fa84a3b8023e51dd698002870123410, +aacc41f987e1c080f005280467a2cb1027e02a5e1910c00141aa6863ad8a0243a5e2b52812dc6b258bfe819b202a8680688a5285f252b10daedd1e9822049000, +e0353b228b75f70d27fa83751740088f31026488d461a1952900233a87d0a15c5cb3e02fee1dd0c03680adc822305de741badd5fe7a7d08ae00b8690c4002b5e, +89fea19f1826ba3a72811f6296280e6e0db6790fe29bc70dd0c0f98c27a2f1967f70249a7949a241a190b836e837e7a162dfae27031482e218f1603df8af802c, +6e9eddd8262e72f2816f23d72837a289f00022a3c7a51bb2e1d100df05d85700b82faa7bf589d7410507e9380f5d2019e3a0153442896962bb21113005da063f, +4a818219ec493b850b86e99890510616021747bf5100e400696c2c626af1fd902e14003dc00831e0c048f10055df0e40da38332686d1083be0ae97347a1d2062, +2160afd48ef1d9ba52b43137005202008987b4e01114000c167b446613b81407a84a3f406023305a27766bbae3ccb801d2f82d0a344aa9f445000d942b9c0fc9, +5113d48ff763fe980070088c1086400704d3f0f4784b7482c5c4f63820a2031d5876c92fa2976c8f7c2661cfd1b3adfd009003e11686e0f585240d00f0808130, +df94359d62d39612a02e18001846b56200d42c1890321bc58945f00c805597a25c451ea0190c009290ae18189761c08be08f74430029000c43617719c4fec823, +f919e1148311f5d0433819060808425dc614d14403c033e0b5d8aa9d432ca4ac54660369900928647943b698252149bd82d322abd6307a0a8c400e4254760d71, +108d18d90289d142a903b0c9e8a24ea8405c05de0a4c914f5895a80b0c4002c95352233c03a1c0f0803347260800a0c0e194811599246b030905c00fe020481e, +bf40a63100a0023701319415f907dc07d45880e4ce11b005f5905f4a870630831504280903801f700510723c0332872ad833700a943022416ec01a704a209134, +42f8d85e886d780f0240132004d448f86cfdc760e15de00ac60b448297109be40acc249c24bbe414002d0800f1405562096245de018bc316c3ab54001c929081, +54d602bc007c808200d9a3fcb04b1a42cf800c5115be3d1e20ea5ad10333ee1d7c51c39a48400d984946900e5ef6182e7004b8921e011750fc910b1143748000, +895b0c15b6d047145b5440752b630e034e4a500008011747b7c329923be8015058f71399023fac0a3c034f9fdf413dca229c3dc300916026e0fe25933fd48990, +b3790438e173454be218ca0b4cdb28e980f848964a4240550f53a4dda17642c07fcefc68259893762de58074b03d4286f892fec03350022800c001585849405f, +282df0400e6280ac045404fe8033500f06897d910ce49e044bd9b66c0a2b8423437b71047804f58535215427120c0394770286e47168f81f09014bc4d7e70e46, +7aa10299c0dff184c469ef4e3b60071037bc03b92250096af008ac178464e998f7a80d389044a5481e3cd016621b8e6443403151f0a0183e74f11c3ce030a48e, +3261a9e4573a5348950065ead457ea41295b6c25d31352f504840b84c09ec5071798898b0457014033d00c5c5e6f0f7c80daf0126a4035821681334044a95244, +5baf56048c17a3e401401eb052d195876abc066639b699963e1eed8503205a6a334a4eedc503d058a0d4bc5c83255059e6e5307440872588953310fef520a3c9, +1251001401dc834fc0b10263bc42c9c5ab8211c055202a2f92bf9933a06e8106e80e605c1b1036482df51fa10257e002e00ce091bd1a5cd98550f7908f38a199, +944cac013f4e1ba0f8572aad97d9a53a8254f411bd3dbcc64d051d80007471af97bf023650088e975d97bb1011008f7c076829190536d0cba0001401998e6244, +f6c812c048015061494a11011a422bf61190f30095cd246f185230607e159297bda58575227105fd011389339005a84a0c97736008605c1aa5e0959e8f75d969, +89985f100909012c4ba604f4a557582aa936743e9a57021407d131892c9b4988a4b5e8290a4b38e489d04a0615ec29344c6d40bdf630ca15fe22e4c715b75b2c, +983389217071689089980240a1d8586a02a56644c06209d8b997e88424d83f007481982908624f8ea68d152a4c60ed042e038c6943b60f3400480af0610b7d37, +e28071260f546826688b1ec7e30fc8030c7b188f3fd00c60000c7b140f50290090435c6f59526e598f9647861da9a3110227c0209909cdc012268ac92350913c, +a6aa89708195cdc08d43bbd70cd895a295bddaa6592a2101729a0cd2e63667babf2155cd80d0a669a44a21019021129033c00f7434cdc06a1a1d230f7003ca59, +01a003e012c541b48676c70c2808ea424512adc1230803289039926526fddd09ca38ca8690f10bf8dad508cdc0b8f159972ee09aebc561c23120fe75028385f3, +4071f06cde21ba14ded10c5002aa12126412a019040038c83064195006dc37f113e14f33a0cb855434032fa2a6492ea40cf073bccac96211a920481eb7268f60, +25485c7c9048d80c4098f10cbbd225e03934599236b21986e6316550109cf5669419b5e9968939f09afae64a9780ec1f5640f326ba69baa195c564c54101106f, +6c6e4a54a7693460b0a59aa91c12c03f6458260193a0121061f223be9cf5e6969daa79018e67c95244c24f58002801c2501e676624126002e880a826a70999e5, +9d08676e78b6300d808a9254ae3388392735033400be497158742226329c1200aab923c970ab6608498749243403bd9df8e6675600200175754a00fa246e1601, +01e724986a3a9db326ad98e0a999340b3d9d7d85b1892e1dd9009c02a790e1ade610d66a13270ca94c814b6422ae8dc4179a058c91286f59eac20930040c1259, +4fea18797a047be69119120002bd908322dfe0129045a89af82d804bdd794c644eaa5103c53b29a725aadd5a728507c0fb44bf499d951f9458124022389d9c26, +84095f3e1a508edd0e904307fc0e520acf0a4d611bb4141d9d6a461eb05e0d2742003b0069f0b7d025e1733f1d04b076592af59c11dd0d7773e529399e41a7d1, +9825e59a3ec8ae69c6251e8881821f51a34890f5684e75c2dc26fae82908181e17c2e464a876f5152419aae6d6e174867aee1dccc0f2d783c9557082ce510190, +04806b4a24d4031a6026300390007385968904c89aaaa6daa8aea9729e5e5b029c405dc27eee9f0c9a2050a7306868772192160133406ea213040c5544941196, +5066fb27fb296cecb1c89840826e3358b8825666285d014086c09565104e6723c07265ff85173391b343059a81d608cc904ae17647df59a0e49a4ea7eb3913f9, +9d2dc024c17311005c012c405d317ad202611c534015e004298146a057928f902de5838690f827ff0001335612a0c02404280013a7fd3bcc4a36e86576962464, +2b5d20ca7f0ca2853e92941350957c7d0002f0803fc322986aa29d6bc350524599afb5863f5d20a88a590038018dc330dfba157ad10d4c888600a0e70f300343, +263976797e73488041e144d18a9da2aa1ce8d8e0596cfa109c54c2a647406c1ef5a0a0dc1d67c90c0a89fa034c05b20468d097e07687c6236879d00f8c2a9012, +68217b310dd9400ea4de03f7f188a0858b6826f5f6803dc3525000c5915c0c1ac29516c132a04fa809107a520699e039f03bfaa17b873a20d51973669da4e6cd, +f67bee1dcb803430f8993d2e87f3e8d7cf8e614b9809cb407c5069162eec097b09fbe729675f895984a322813100296d331403fb453120b2329aac84f3dd69c2, +04f80b4be4e89742921746011ce50dda4e908dfc8850405d5ca9d404504187a238d999f4235aa13603fe680590f22c03489012611bba0c3047ba17258f3fb00c, +ad160e694af05c358916a287685ff15cf9f6f94cfc879f91c7b8874e782c56be9513309740a3f5d81363a97487e286c501d663400a5b2209140051802dd15d45, +8ffd031dda91944a2a61cb00cb1787fea2a0a17904cf65872a86b2009581196a85170508a19b0218a348e093fa33922816694b8a2118a528a23d2921aa898e2a, +fb0561b644040065906a2900a08dca66e960e4600120055492caa433214dcab7c1139165d5d855d8324a8c8e7855614600a1f7aa603ba5125100ba5523a403ee, +27fa5898ce7d2b5de4c04ac038f07dea98d3cb3230d4ad5b062267e824a12484168a40d7c94dc995e2b929269c4985b0792498840bfba7618097d81fbe2e6c13, +57919b26848b85548084a15b5c054d410342b0a6ddf8041a40735f93b02d0400bd274729533a92da009c007c8a6b08967088a404bc8b4f1098911ff53693c4f1, +34491006a907c8b006f004f84e6fc05c298b40953aa774007f084747e74819528c78e2b2b6a10c4fe10a1c40744a556c9416a29b68ef576b7006803a1b42549a, +37850bbc291d9000d07de61120c06f9a1a14f7ad7413854fa980e72aca8af8c2b3827edae1f55fdb006ea77c8366dd88c0a7e5410e329f666e10299ca07ce73e, +a574358232c0f8685579a05a68a408733629b09fbc8bf844f989049c9f2fe9188045a00c8002f8665e292e71844d01ac08af184767bc189f6c04e72991039cd2, +245baa45f30e90015804efc0ad67a24d612a0384daa2870b57f328038bc0b0674e71e8c5a88ec0b0a53ac007107a93e0d967f0308b55013f9afcdd138048a604, +67ea1630eced66ca7a86698c4ac1fc7ac803849e0fb157ec07ac2fb49e3f800e50d2280376809e2a3ba0052867ca801e9a3ff00e7401c6d9c6993280a8a57a0c, +4faabaaafe0aa6aa56c0ce909e11a9fd03ba872a7505cc82f66a5600f7d0ee29a9567b6682327039e70f28032e112d75d2a94a59014b12b4001630ecfd66cac0, +b8e3f1290318c044c041a30c8000c12a312a0ae0a62903247c31aab5f3a6da0ad000888c3230ed40f169aa380021a30cb029d07b316a75860aa02a91aaf19e15, +70f3f903c940974645900ccc7ebdda0a9e48180bc57cfc9b2a5f8d900c9003247ad34b32200c3e782200884c32e0f02ceff8aaca000310aca30c5000168d3210, +6da0635680dfd3aed9f5198a3a292ed83b860548405b1f319215b0aaaa7f58806482c08a0cd8aa61ac2d80d2b706307d2403d100db010100f425004c2a276826, +0892801d1640b79dc361011787b78605562a650183c51b07af8605bc41f820b1dfc71ab2d6ab8754fba6c61a949e83754a58c0e269b11e7132a4a32ac42ab196, +097c59a914b5ee1dfcace71ad3aa2b10c865ad43abb95600c6b45e49f61b16f033c8cef9ac402b3a941530b1ce4b9b1f42ebc93a58587eafac2d60bbaa08a84a, +09d13950704884d07f14c3f43758547f9c49242390da2944e0553911eadaaafd10fc89ad75c9dd0ac97a71dc773aab9bebed17654582badfc9c0c8494b95ad45, +ea58d2ab6d01475698d5e8caff4d66ed20a5d2e85a0084ae75aef1dfdaea02a84b690195dbe7ba21b74de67605c0164032404eae5b1805f999add0fd5901944b, +da3abcaead3595a5eb53b9d9fdaec76657805d454bedaeb7525b004b54bb7e5794aa606532f09aa914d277b6eb88a12bd0b85d01dd9faa5a2b37b9964a5740e3, +0613846b2b1dfe6424a8b68aad4e21c6403b60abf258bac24b55aaea45a1a4c8ae55c90db877200330575780f48642ddb9761a160132c00f4a555d0133e8ed2a, +07d681b5c87b880789261a38d45c1c38992703a81b1286f29c15e03340594f9c626b0b08299e10bd791ddc8738b60252e8a77060d8581fcae6ad00d16094d355, +6201a08192b3dbf47c64829b209d639ae08e5d01228b85b315e020dcad736b4ae03f60bf5d012edb578009c705dc0cef813ba295d7877a4e5a3a50c01ea83bf4, +82de1bf8ca8465af7a4ba2232fb869fdc20a07c20d9d935751c4326cd1e9f0442c58e5b86c58008ae0dde20a3637c64222812485055896ac36d1a913502bc438, +292c8a2708deae2db0ef1cbe600e1257ba8964a0021bb436c17e74056c9cd70d7b3b61b077a794b27544c1ba3a3000002bfeea1f007e552bfd9515802e98ad27, +8049b9151e731cc01309329002a84a5a88c6c8c15a1828781c84d7e94218a2445015845da3d00802e9ea98007bacf6899bd4c6bea46f9ce62c3916dd41865780, +d90ab6a21005401661203b36f2b2752b9cec70d220ba79f48d74c931f702288962014c17c6c626509352785b40ed67bf1ab8209f6d9c7361ce486865b021ec8a, +1acb7a11c75ca0551740681e03479be7e5c14aa2960195d8baec2431cd62b373b2b56c81737776a5be525c40a85021cec93ab36063e338c8f01dcc6ee4a9e9d9, +ce1e731f00335b26fb0d16b25f2bdef0dcf8cc5a7306ac20c032dbcd0e2777e2e5c8311b691d7332ae92a7304bccfa07929ebb6c84189c7223da894fe2ac507c, +6c3ed9e3a8d8a96d1816006000e5720c00a7a0601e0e1c601751574816780052a78942d0e687d96cfd6c9de8249e897384141e391b5bcd6e02b45fa39a18ce3a, +8c2de4f8c492b68a06af57ad0a995f4162aeac2b5defa93040155290cb07c09ac0ba278901cdc831c22aea83890475058d2275f42822b22cac6d97b1a6286a6a, +3f28da66aca1b55f90bf82588bda91b542000840572b2caabd4e74a2c0bf984140831d033e80adaa579a7c6622959818546452042d070bea6aa96cba21b1a554, +80e8e00f1c03c0920cc4823a07845d639332a32b46d54ab4bdb559d281e53e2957e685528083909a08f42893c6295cbbba9031cab31d233e21139137548c4c91, +474bd3ce6e268081ac95a8d162ad476b8a23493b1f5eb4d14d0f6d446bd776b225b42ae445562436ae5901541517b0ebea1fd86c96acd2782a05cbba52141ec8, +5b2a9101a041ea582ea02a9130a5525eede448d3e21ec6c0a5126c9bb65255bc8d2c961730588494709fbf6ddaba44f4ca16048f05ddf85d286f1478504e480b, +0c7c0212eede610cd008944a048145606e500720100a2eca002a90309ca89b1a52c19e64050432c60190868733845d2b02b5ff2d49ca4e88cf769523e9cd903a, +0d2a74c000a06e90c59237d222bee0475095f80408801ef80140bf01a11b521942e2210a7c070140441f61bb6690146414999a99600cdc9b6c021c030220618c, +ab640092327cbd376868c34788ebfbf807240512db1c107c90ac310063001c5058690cc801aa9219541950fd38016a1938428d600ca03eaa0905408e1be2ee01, +52401140050401497a7e953120060813f4a35b688a0bc24041ba64f36da4d083b23ba0b961809adb06d05224a8c39328c137d261556fa141f5cdf2a849ea027a, +aee9baeab6baa94566c02f37ef21ad1d0985e77c0b76aa521803c28a2a750678e15a01e10bb13991220774b85a8075d617204c28048e063c8013500410011dae, +7b06ed4a19915d8ada1920651c77f32db58c3f600c2075bd0030ccbe630cc8005400308c06b30e480e6000304cb1b70eb60e203126dabbb3b8e90fac031e8071, +10bfae9ba85d6a78fb1aefd2ba7b473114b4eb179cbbee2e7309b65b2314031abb66423120be96ba85b85f1db43b974cea36bbf659a9bbca8b3dd252678068f1, +3a78a642aa3885ee3398c126fb54c17bbfcb845008cf156ec3366ab702080540c540be484ba101fc0dc664809074fa033252a66ea97406a8efe21ec5803980e5, +5a04c5002ba02a3dadb1baa5121a3057fbef8eacdbae2de1b0b6f21648f989cb1f6d2912842b2e6f9a9a9180f216bcee3d146f7a48b00196ee3cab2e1ea6a955, +2098191a005cbabb289b052fc4b80ee4360426f243c1eb43e2ee5602aa12aab6c5ebf18a2055c47f5b154198d9411c2f152f08c03fc09f7abc5ae1b8c0145d96, +754293457f128570bb410621502d25b2ac477dafb3f423f606700f7aef199083f42950bcb58ade8bd07ba92c4fb95d96c03a707b04a0c32936d899142e8c9f03, +ef37e7f7ce0efc6ee81db7c69939bc85011707222060d0025155678083d0b8a17ec6a65dafbce0d9360ca018986f9031aa841a88049e64c7af2647230cbd6480, +0ad0f89c92ad4b5a88e44504fc3bc5c0c64e563a862a0fb5bc622ff6a13c0d64f4bea512e8db5252fb86a4ed67005a00e043babdfe591a500e724268b649531a, +10433210edc67b336498065ca51ada08ef2aeaee220cab2ec50048c516a4a5c2426e8069ba06009ab2007260bb39844525a92d7ca731d2fc4af716006a007f88, +46b201a2c38434a3501c5871d19c54e148f0e3b80134801d528976bdc49f1281eae202b606b41e13004a6624e2f315159a6873811409008c079005edc1843469, +8f8f22013076534ede90074c80e23202143e8c2dc65725f6cf2506bc236bc0d5ee84b4a38dc0f94c810b8c2179b10193c0858ef000ad7d01f1ba725a05ac7960, +5b9a5a0eb0651648c625224bcb15f6c0b798a539d4cdaa650105330316013100d2f621d45f81830b001b60611203fd123357435606781c0524c440a8b96e5d50, +6c80fce20f1003115f8440fd554a1897d8591ec400c00fa4e0fca7eb0900c0bc80017b2866006a6051f0530c154e0e08801420053c015240c14044e776710045, +f0ecf0f674006af0da9dae514ae284a50bed85980b585966aa900e8331c0b4d9806c01d42b00f08dd506a4118ef0872bdfd502681e2b87e4eee0ea55e6559c0d, +99f314612b08f0d08e922774cc372b4723001c2c07d3c1709771ab8f20dfe147a801bb3095039bcea92500712b2e9c12e1069c16ee8927a8db436c4636b5467b, +ecf9c4c35d28c520b129df3551b93030250080f0b21752066fcf301c9e5647aa0365293ed71dc026b0b6115c26dcf2108ef29295a442d0d9a82c046b82b0e858, +0048c4cb17412807ba6e2d212f40d30750318b9501e630ac604ac0e57ab91e8ef4a342fc7b51a0121fdb87009009d42a1e26a263a7f0f604df690b34800f416c, +0d0012b11469080812b7a1c4c05744f4d7e5eeb44e419fe70029e421297884cf26312002a409f6a32bc020502abd0189c2410da4070f1804fc006ee41b109638, +9173ecdda2006cc0981f2a300bcc094e14c71246b15cb100894649916f26564c540c6455c5770b14002df506f80bdd95024024104514909d9fec82125bddbc99, +7f717010180fc61a8ca61ac3c617c7137c3a33a4aa9642460290bf08941b30062c573c002a997dd357011bb0c53ae259e6fd7041ca156af1508187e8ced59050, +e615fa8ac1c54a1d0240d75b20518b316c2024c616731599725782ed50dce5520c10acaad44b9c555c00bc01b4804530feab1307150a414f9a336086000037f1, +9b13894039b60311425a0701cc255b8e3866686c15ea41f8c63c82bb7a3666495737c940c545556d82f492724500c011fa5c04009f702e4498e00201094ec761, +6c260c0348872ab585d1a1bc38d122798e6d80ad8cb2a64872c506c01c810028c707466c5c4d059fe414d36c901a2635ad48c4ae0d1a19dbb01180718d8e2e8b, +1be31ec300e5db83f89a90a34f4200f0c6099ba8c2c19a5ac9685213264095820512f4a00abf27b004a23000000ba3740c037599277c828a069c7f70c000ea0f, +860b7171727cb79cb704c71a1a713c7b2b2c486c5f13da740049f72e2d4dcb60b135e61b5f0e4f42bada3040857a04bc9335c230e0060c7b281d8d409f900b84, +c58cad48705e80c9acc569405b5cabbdf5583e537226c54f92c6e988ae710a297f1006a7c56544d5e66b6a9d1cc6b296a688502055646a4db4fa71aa5015921f, +7b8730a0b28455c7a4d8551389289323bf9047a41c50958026bfc9885f3eb62042b1696b6772190b913916b71bc81795401cfb29dec661b2f5a38f1488160072, +727f4507887e6c21a7166a7c4a2a5198b5770b021015d8c9a88f001ba31c6b6c22430b05001d3058b5b5ad6bc2c0bb2a00f0f4da6f73c03f5ab2460008271022, +30e0da912553c80f4061609ad601608ce2b0cd85e7e1a766219ccffd2b1298010a00b2401b2a0ca0595405058182abe1460740c43fd84360a3bc0ca84a7280fd, +c255b400bac34356122c19030042077a00c4e30f0803f59ffca56ce306f8b4751142ce1df0e29d27ec3bc2c0e7822c77867d37c2c1115607661d371acec3f095, +5709038380c52c12e2f3f15d6e641de022b0307f080c9971b3e45507ec66c2c05c41f040eba00c05cb358f303009483f7711abf2be4c06f40700a4c2c0887b2d, +6062c2801a1032033ec018cec39e6407882d33b1c2432e211d50ec09036aeca5803c313808c692974baec0fc26202978010f991d30ee08033c4c2dc023a240d0, +006d001aa007f87c90af55f3a66003d8e1160076c04f290ce02ce2510693f3a0cbdc37d401648019ad1d309dc9cbc84fc8d71ba034db373e000c01ea81b07a4f, +c280a80a1a9c3d5c0e345201b0aa5904bb788161d6a82feb37bf093f8e1860371c341b1dc240a53a233607d8b5634ec1aabc9cf3e5cc04dec6970be635db0162, +40f431e6ae789cd745e696ab13afca73cd8bb341a94ad101df01b698bcecca9218235f6d8e65e135ac89f9cd350b3ce2f8a0d954627780cdc13521e7fc11cd83, +0e903f8497d4f39dc067f23c2b9e3cc223c40ea0d4d02d3c08ebedfec1487e0babcca368af7607a4014c24c200b4da3b04202fce620c48636f128911042371a9, +ec89e983f9b3c4d5cce80e14c779c3fc003ca0b468be7658bf882580940d94c1cf02c01ea05db810dc9816640f10267523f400c9a805c90340b7e80092a7f1cc, +03f00ffdc9de110cbae3696aa5a500a05b2000303a468353801855230403651049302d7507f867786bdd73e21c200703cd2447008a31f8785ecc44e523fadcc9, +f27779402589026f6eeac21a1a35a0abc10040225f011ad9906a1104033baf5c649c6b5df85ebee71b14c616e06a9266a3160018130c8c7638acf69f04bd0df8, +01d581001067964add018b271e20799a7a32ac12f4c8a14aa06e6ac4182324720d6d0b9cd0cd48308097b306607597a441d8c6b1100a2e681c67c0402007e479, +217409a84ae1016a522fd123701c5cc0573775000e6843a74ee4d1050011bd46bd467b4976348f502c9807cc2441340680134064a46cd4d17940d89507200802, +243a614616007a40c9e70aa65988916414b501520007a001ac3bc1401a50b0da1b84d04de88b660130af08006cc0589411f0777dca7a40a543ea9807704a2384, +9c2941f36ab4941e4021592a4d9269b48973609ab1291d199461642cb10a7c0753016cc701f002ec33cecfb9b4bd6843c00e0c88ec40491afe6008a80d62d900, +114eb17036b44c4cd81a4873a155c4a126892000ec02e16259b1764a26b42e82ba972bc606051599fc887a40576443937ffe103def4de0f3901308008140ee3a, +519b1314f5b470515d2a55d42134c2161ea019080078f4446f05ed472f08fcddee3464485087d0f3a60b1b0170ad081ddc557b803c2a41abf41100cb031b571c, +920744c03463a67a438fab938c7b5088030ea803353519602b6101a013cf40ca753cb8077096485036a545000cec0328c1588322a0feed010bd11a3543e50fb0, +bf9c60e2f1e60ac977d58dc3929ce69207e8b30000b8e755090c5c03e75ba9c4507d0ab4119aa885cf3f30e93ad50ad043f520a0548b04035c43f52190c4c04d, +b00057ed56e7d55d6c7bf5c1b5770003d337f60d5e2368ba7e40000c80c3092ceb29f10173092a3030908f6e487c402f75482000c061b807b89d4d5a0088d56e, +b5661d5acb9991196e35f2775a37c59f08c0c025c055d76a9429968763ad2dd6a3267590b548800bed56cf25f6165d3dc2da41ee9752a45a355fed572f003119, +9b2b5c53522a632bc1ef9677c90130ae5b3403f032235fb200c4a699000c34d2ee9918d2104924084fe8bf29415a0de78d08b01d0ac0601d620d00f402ae654b, +8004cc30d08c05e01eb080f90115c13f453c11583310360530cc4aa000143a040c4630798004d00044d00a416f3ddda8f5281bc426b1b124c70734827d407d32, +51fa5e70b57e9222d0e6f2086a750cbd5c0184a4b940d8183469cd07cc6212b608496c5d00f801dad6c08881fd5673d7020382eb56bb90940f14aac541117c18, +d6653e761fb06397a614007d00c5903a40026c959ff2722509206f5a00d34200865b1db051d801407c00b480626f0a000701400830526fae30a332f49f91602b, +64b5df1f6074fc02b5569755d69b12c400b000f3c570ddd7edc2a9522cb69812bb59fbf90135997f818b9d5a14d4afa301c00800fca094354a7d00c6c263df04, +bf40a6d966ffd92d644e70a90408841ce31f366910c704af5d5725b7cadfb756f0eefc02c628d296772712c8d74f302071401966ff7087867566afc665eb6bc1, +064a705ef75cffc03736931c4f001219d416c13790a47968d50235b5412100e0697bda9fb6951a2771e869da9b36a7dd7f10007800a62d3b360a6064ec99b171, +b2ed8b1ad52201faf51060094cd5070f220cb2ad094cd55030ffc010e0094cd5920743401130557b4be8dac2c0fa024d6611fc02924b91261140980cc00080d8, +d28fcc189586f0d24f2035ed0e48cab5c02f603e020001d305402010660200da02c11291100048a248192f2152f50b1c2fff02466aaf1608806c3f3312309910, +705b56d915eef10bd96fc3d7ff76511106606f0b29fa257f2f6cb2979ab3a1815b9dcdbb729a041f02a182626a9a9085e60fdd95b85d2a056a0717b0b6b812f2, +9918e9f62c0074ab72c7023637bbed13606fb1dbbf0283712d107327d6ec76a880c10d0299dce9f69a6b2490229cdcb53d01402f60708fdb20749ccfafc0597b, +86bf40bb8650ff9b530c07863172661f51b3db3ec468c16e1508cc7bfcddd19db75150ebdab5aa2ab78c537333dd0677ec76f91908802c438552f6521200c0dc, +8380f4e50bf45459dd93c1b35c1864c1f9d35e81bb194bb4086cc1fec02f60794de0b59b6b40ed37c29638bf65bd8261d2201091fd0210f51a9a5a8d71dcd9a5, +eedbc3a9556327920ac2a480844e0aa89283cf63d598bc71f30c9a40aed15eecad0dda637686142878000415af76c74d49e50bc0bbf8dcc5f7af70602417b300, +472a877904ccb79d09f21d525b1ec8f737b66596b030df0b26028024801204009f3da82e6576226d14765fb0a4a6267b62e544b6efc951b6419c49fd48279236, +5d7fb772ddf71ce701c0786f48e177f7f7a06363418a2950c7f489226ff8db9c4cfbe49a8b53cc0a5327b429ae4002a061b8080676c1cd6e4570f3dc85e0c1fd, +7b6f1f16f8c501f6a007a40993405d52805d001002b1ad2f1bfe1d2a9cb73765058020f05d05023615e2d3fca1fcb6734c4def37ac505428b4e10a16c0f90de7, +a704d50a5d53fb19084079be40ce59050c9a1ada5ec1136c62f2fb0ea688aca240773d780800c2c0e2c3dddc666a68c4191c47986b53c80a4da69c28c63658d0, +029a332d1508304884a69a8d11eebdf8b5c0130278a65699f0004c0150b4c134dc8d2e195618824ff77f090070d6495b52e6e2697f6356fc02bb992f602685db, +35822f40ee5a0b0c593dc8e81283018580002734dcec0b240bc831bdb385e90ba47399a66cb445e06df030fd061e217f381c1e87cbe122019680b2056abbe16f, +80fc6711f402e98049902a658a8b04a42c53475ea3aff6029b31bc4c01700888b82102d9643ed5874d89ab100500229085101d78040e0094803772e679040f00, +26be4c944a88006cc0f7ed08d812b0f87349ea8808b80fa11b00003ec034900234dab41422e025f43a974a8780f7d20b51878f395eee6110aae48a0300a838c6, +be4440e33c82348e2a558cab9cfc43333322d0f2f402939cba38716822f20a5e02f5282d658bf70df66ab638836126f48b93dd35422f30f242b1c9e20a0f296e, +e56a868184d79c084491e7e296c517e93f6e8e7bd611b9b7e538ae904f140cb9990086f08dcbe29e02374f372eb21c262502b04428ee0ff474370d0540221076, +a6c3d2642fb555fcdf250222612f30d4872ee64eca8bcf430540b9f402ba35d1389f098e6f02a786008026003b0800fde39f7222a020ece39000b2f8d65b8f1b, +3ab236005c04bc30070e77f82efe75a905b41217000350875053eb07a77649c516f1042444dd0018f97f113a7ea2d38781273af693fbd84eb8a00a3ef8b4f5b6, +bf4479a00718db22016ec008605c2602c0304c4a4b011cb408c0a8ff40114002a031572bb501e2ac0b1003e40038c00cc51bc02cca003940269a81c07e010004, +c059501e8401d336a1161a400778cd8bc09bb941d002bc227031e5811af06c57b59001aec89eb4084d19b8233e740b7022c0ec940773c0b2c14021598c004fb0, +02b608e0d7f9f554a170f00244e665c053f59fb08b23ac984a8b401a511e44012f6bb8f9bb3116941e6401533516609b0c07b8918b4058520070b5e4cb7700d3, +6d96bde51f9dc1e475fe00ff035accb5f987221b1429724039c054ad1c045bb86eb3d8225093950733480670617e61fc0557ccee411030556d508c00d3f91c90, +0fc0a5f9b98297a0be27310214cf3fe0341138287948017700b3ed0f103df9b9440a6d10a0974a8ce79b823ceb9fc7063202094a791085e4f30d29f3f91ce0d3, +070f0681861eed74eae5e7afca0e8da3ee353302eab93f507a1138b851396d8b4f872e0073dbc5c1be356aee0668e8390353f5afb0a945e667e80f3aa0d7a197, +d41d3a2c3055a3027b849eca43d608f4a10369f9b95ff09e59ebc8015e73231086801b20d12bb8f1522300029bd453b596056d213eb4e87be8326a7eee260000, +1d7a8f969fc31c1d712fd82cd6086cc10f0353b552b39f97a7974a8d404ad2a160a31b2984618b2e73d0a1330353352b3a57f10354628d0005c51b609b572d59, +fa25a0aa3b0c463994fa26a0aaa71d1d1b94fa27e054cf521be9fe8094766d2b556f121dba559d9ffe0a4cd52c8c1b3a3f300b4cd5994b87bab53da36b42e481, +43e6085c071dfa1dba2d41ab5f86dfed92577641a9ff01aa00bdfa6a7e06b4e62012fe40526daaa399eb0eae881be908fe08a8ead2417cde52604296e9cd4487, +d95e1809a75dd7a3aa1e72f002d5af337aed771552ea3b80fec019a0aa5384b4e865aaa4ee1140d5935d1dfa1ba0aa4762a001cff977cbaca0aae30067001bf0, +5c84d705c0234021a02a3d0213c5e093adfe043f02f6ba02507dc2c289043e007350fda823b8837c6fb9c5c05e4bf298d1ea9eb7aba20014af4b9306e4af1095, +e6c5f7344f3ae10297b77fd50d584cf7f004e00038400d40fa09d854d849c0145e612050eb07bc400b5b03109f33e82feb8bb845b00bb0d944927da9148ed509, +096d83816dad8fed33d88e400ed2892e4e92d6213b83bdb10609a43cbbc0565dd2fa3a2205b4fa2c54d87db1974a8f008f8002b30b242daa00178a5f9c3bed49, +bb00247c2a7fece9a3444401b0a3ef1d7fd462cab929684b00c42949df020c444db29b09f52ddb91b0d1fd91ed89b5819fddcbb7316634f42e39697db2974773, +3b4e4ed48ad7f9e7953be91e095491295e35c22eb05bd2527deea055011009285a57e68bfb8adbabf0b8d72773fbe44e68beb8d3ac8e33c53912019bbc4a06b6, +0bbb6b2cef04c2f432242808f805f2dd438476a10c6b6a140d5c103719b6c5ad2edc1b2f086489ae634602f549c2cd127e4863defaf01f85ebd944dc3df16fca, +fe204b1141644ae09ed4ab55ee0500e4bb2e582a99ee8b3beeb0fd2609007fda529f7b01e0084ccf63991bfae23e17aab207e1abbb6635bafeb71e7f5c26a894, +b707c5bd9a2370f11057fa1000bc05bf77d5c007194a14235e5e98bf4792ac7b4096eb5e2a1df014ef2f023a366860bca4ef8aac0c5d00b829b1eef049e90e51, +c5efa53ba0d4c1d7bffb08e3bbda60fc8f5896ee581fe48efaaebeff22378e01c72e00eedaef5e1291bbfc2ec0cfefb8023e126cd25d9df09e839ad7ef8b633a, +e7ad89523212f8911cf1fdeae51af3ea78ceef05c02470ba4c7ef9ee2e7709bffabe086ceedcd13a002dae4a0de8a512153ca0d4a5ef1dba08ba80b768585af0, +443c209f636b6a62a8ef014e5806d344b9d7eeb0a734ba0f5ab7dcc5302fa9a99812fcc2eeb090b0dd5aba1309e6cda2885393b61f1bd8d5801d25003d3609c3, +8e8cd55eb809918d9adac4bbca778255dc6fcf17502ab5f17c07067623e0fb2a00d011a764ea78085ae598f1d0fbf2446919b766cf5e7cde5b1d1fc637f2ff14, +0fc8df7eca9400d53c96243a9a09bac04c4d1fafadedf080f2fb852ca8a98560334801ea6979bdffca1700aefcdbd3ca30f18af2e5a0a69667f5c9af0dc1b048, +8fd3fa7ce83c577100d030b3186c403947f909a8ffe9873016812e2037230959106b85966e9a72a08d813305f2f5871c5aa6ed619225505141ca873fba808bac, +ad5d027509ddd2b600c6e8022cc0e5e5bbcaceff00a7c60522e6dec2974a9600f479a9d471b2f3961041faf2451c9ae548dff1fca76ca6ab84992cec7c109094, +e4c3d915290f9bc8d0e3f4554ead2242579f6414b770d8d7c350067bf475897c8379933ddbb04c8d373cf157005c02f9f37fbad0abf0a4ddb35a8c65da1e90c1, +d8524f584ff768f51448b64427f05d786a51a860547b11aee6d2d725494fdaceda20181548517d65fc07a0a999009dc97743510fcd636b66779a657bc1c963a1, +b8472e600ba0db29f613c55ebaf236f5f0778a7aa914c217c2bbf4268460f922351abb467be565b923006df8dfe97b9f7c8d900b5821aa94ac8953dcb6c304d2, +406a5fb7cbef61078c8d09617ae7c305f2a5120bf2a0531caef0697b2c0ad95bd7d3cbb414650f62de5a60acded7e31cde910b94cb5b6dfac181a4c61b66e1fc, +fd1edb2ff24b3c26617b7160bac332dceb73e95edc1337b39ded4511f0dac7f6c1f6bb7d8ac0d888dc94b3ed452d38078fdaf77291006d4f63536cb417f7061f, +ee2f9837237d4ae0c512d99870a97de2bc24707be0f19a1a3988796379ea5bc638487d4ae07d46f22401c6fc24f0dd47c92b35e68d0bd45edfc8afc3ed453b1d, +71f7078b3d534f5a20c33102365b23101c10b7d27784fddac01261dea46a2941d07d4af043d7f198f7f83df9fecacb38473881457b1105fc049cf6c3fd831ec4, +f3f8550ea268c647dc318aff3d45ffa74e23b7ed95827cb759df5ea41f3c7dfabe4222e2330df29d1a3e87efe133d81dd7eeb0cb86e13f5763f8f2dd62d25e4c, +5572ee2468d87f5f773df8c2675620a1b30f3e8bbc619fb67fd83ff2897581f4db232095f598145e805455c66b6a3ffb7a8136bfbde31eb8f6c67bbe963a6602, +c73c340f1328efee88d67b6e5f0050f694da223e7b5fe550200d6696a08fcd09dee6e3f9e5e70a5f45800bd8d50876dbfb98ff2566022787633b6e5cd833f96d, +7a5502201af45e726cef380e0269957fc50fd925f0efe002b7d622c1ddf52e96d468fad689a2afdf13e93b0d9a5ac6c9a40fcd13f80a776470325ce524a7953c, +051d096c1dc8b78c5e27a084e1022172f87c59be5b70154d0fef4d390f9c8ce5bbfaafab4860a12fcac9f305bc415f8aaf0fcbc3079603d86d598d3108054029, +1260d307b8005f2b36b05fc0d8b3be313cae1f2641ee0240e8fe71ae7012594e279d7bf959c5d72a0ca29ad6368d9ed72358fbb303b7cf23837d770acef740cf, +49b80cfb45322e126ab618c1167f4a00c55ff173da0400302d2e10eb0ae173382a190f5e2a7d02b1f49ea3d4fe4d7711152d3a7ef929b5bb803cdfd3b722aeaf, +34ae1eda058001ec0618979e408d700b9d8c9b013a65d051a61d5ad2fc37ffa6bfa71dea72fc33bf243f245a1ec0e123fc253fca2ff2a7fc84fcc838d330f29b, +02390b012001343f84ba6a930210ea020e4cfd2080da04010f018803533f06603830f52300e4c0d43f07a00e7c017f02a0c06f760bc83c44fc7ef1f7c0061897, +600006800c4cfdcd24cb77df1f0f6cfd9802560704400ac848a0030c003010010006040036c01b90dc8f0cc0fda200297604200318147d1567bf7b015fa9035f, +003bf0f8bb03537fe800d72ff58301202f56bfd70f0640005e0020803630f5c7bf6cc2b7402fe08f50f90732b700310001b0750402f1b42dea010006c000e080, +d6e10a1400e040000020b00080030dc027da03c11150022200a12e0130f73f10a84d1ac0d86f504c00b00225002080007b00440232000830734802000209e94f, +00088802c584fcff2830fe0ffec0c00240002001f4fdfc00e87f020009080220032a0000900068037c0810000f30f7235a2c009280d5a1c5100ab00030c00d30, +19fb03b7402220fa700bf069caaa48c0e56ff963fe9abf453f1800ac46fe40007dff39b05e54008e00a8402900ff5b00dcff1280f50f0c580fb803fa3f288000, +2c2907002ac084000020024cc8018008700090022c002870b2410198022c00380003000e1c008880577fd69ffa6300a8ab3141d5ff272cfe8fe4fec02d70f129, +fe16c12de0d0c469a30094bfe58ff96b0138feafbf2e10f92fd8f4fdf9c0fd0f0580f70301853fc6bf3fc00ed00180005c0030400150007d00a84029c011b003, +5fa223e0e8e30b3226287dfd90be7bf507fdf53b2d55d7030a949fa2c0963085be77dc027d332d253f700b986faa146fde2da084afee56b7f1f22d600688fec5, +3d6082d2d70fe9bb16c12d403cd352758cf649a81b4e797738faf8820c07e39f3fa4ef5efd97e80847d7dbf56b0d4a5f76e5dd5904b780d91c869faf9ddcaf24, +6d52ed979fb0f971814f2b855804b600fb72cad19ff7d0066d9dbdb22c06e000dbf580dd28e0026d7267aab6001107c28feb67f11dab707aa33f45a5ef5efda6, +1d38b0e8433afa5b14c24eecfc384065c028d0fd8d02309cb60062574e7efb05d00681694a0a48cdedfc380048dca4f7788e02301ca9ec8a8e8e8902e5e728b0, +5de8dcd6b966572aa17323e79a5d61af45600b1496207cd880f7620bacd055b0b6b390ee439ba6a4028f424ab0f3e300bc9abd1a29e026912a910230aa3f600b, +c0e7ff396d708495348b01384042201b55c57b49a580187f186f11d80206282d0044beba7b49a580c16b2920c65b04b640ed9e2d70d947f4890232f705ca1483, +0206272d550aec49f8b4a500cce10fd8345fe9fb2f3f2f072f0a24cb3b3f0ec0f9390a2c9ea380007b01500aec49a2404c7b61ffb801f06a02348d2d1046f76a, +65705fed2d19913f269d97552fd45b580c1aa85d29102a08f85b04b60021dd83201b10e71fa1d73ca98c71ecfc384042e728b0788e02023c00bcda5e008802e5, +c0a72c0ae8411f2febd6366a594ebca67052c8de610b8cdce3ef514401300ac00030fd7b872de022600b50cdf67b14512800c3890257a945a228507e92029ed2, +29a0f62acb62000e7befbd837aecfe596aaf45600b9cd3abee8bbc048f8e95025a04b64040af4ab187aeee955b29a0f6540aa8bd16812d0067690bdca5337ca9, +f4f13252a68026e72800022df2a2801e8d09552a99026197a68026c73d6ca3c96aa780fd660a50559a02ff8e2d603af7e6ce01d5ca1d109690149c8993b36411, +31974aa240e5660ac7b17f57a240f9592950fad252a68026c06ae1299d02f69bb6800914561500a7167380697a0a109ae30049c19938394b299902f16f4ab0f3, +de596b4da9240a80fa12ae3f04ffbecf240a804058a629502950089a029a9ca7c0f4520b5cdea5d2187af3300798a6a7043b3f0eb02ff3e768729e922910ffa6, +02019bdabeb08ba7794aa540e7e529952d61993f1267bdc2500b30d04c91e6ee2940559902b8bb3f298bf01c6357b4a26197280002adcf9d40830f61d6b89902, +02bc14522a8902200437839381da8d029502019bdabeb08b09a7efda05678dda872bee1db580b4172800027d9c2cc2259d28000279729e92ef49bdc43da072a8, +b3188003240567a2a414fa9e0a4cd947ef93e0e88edaa10253a03ec4abe43989efd4025a34f84ec5f19f37e861292ab0ce8f03eccbfcf901d0c7c922a48013ee, +da5eb28f677d29e5a42ac59b1fe7959ba980d5ed0fd4029702a494159f496199794ee2fb2488bea3c553f114a80ff12ae06ad402e7b62a65822e9f37e861692a, +5e98731543a300405c2e97fbec77795e5a2d10396dd11300c73e1b2079a502ba053b3f0eb02fff6e83407f09e5be5e702371d6830fc97ec82ec0c3e6c7b966f5, +e18bf89542ea38f8a00aa08e9f7229f08f646f51ee51440134690d9b1fe79ad5ec3efe9e6950eee1fbf83b49e60c283563571f8933e05cb0b3c36c7041da6ed7, +ec49a200085406f33aa202188481cd089d0a1c2c0676829f2a309390d610ba8f004a60606ff83e76d73e69adb86b6ca4fbb83ec5913a9202bff8f943ea480a74, +c82672ac5845247e447ec1248f2009d087b891aa4044460b29e2834ac708657cf939c56b6ca680b97606ef6397026c7b3f5cea780aa00b064449fea77c0ab8f1, +e13eee410b2076e5891a5a2ec03f481e63df3f08938c804930a0c7189bc6b26470b060fb3c0225e0fcecefa3940ee5108010108bfb03b44000403d50d6686b01, +4b2fa0b8ea8f8d40deca42cd23e40244022e79c0af41060f30c5d73e25e0303c09380c8f00db7eb055791c2cd83e8f408ddc0884d3013f9fa422c03dd08f9200, +9d04f45fdfd2f7c180b18f4d4891b940c5c00801f0bb3a07f40e81b37fe2f308aa0b4c0b47beec277cbb56f80283e4853f0af308bd4069b5046d11d0027635b6, +40ccf03222751e8d4890b3580716012d730f62890719398bec5bb4bf77d0020a1858943f400ba8a430c5d73e25e030306030c5d7fe1070b082edf3089480c300, +5ae10b32bd481075fedd031ed6f7f2edc0cfb29e3d51c72b1527256c584b3c423c8224c0211700ffe201800030589c0b1e5e4b36f63d29a026030010c5f28d52, +ac3bb40081bdb01de61afbd8841bc90a83eb6f0a1fcb5b1e76012eb807773a34827b000d3012e9bbd4002351008ceee068d78b0f1f8cb807bce2dffdcd571e74, +3a074017ad7d1eb9c693ac805259d08b570321b20171fe111d4fb2024a6541efa7dc0a28350de7dd19300670b2024ae54ae5a7dc0adc095100c63e3671e4b202, +f086942879bd025202623c4161bcb001509b0c7faf5000b00a28959f322b2060103c782b0b75a9c4964d0b60dd5bb40183b722743c64ae00ac80185fec87b9c1, +7aa9f40a5898b480a2ffc54184fb11b634178006430b740088f116012d104c804bc01b5222c0c90af929b3024d02f991022625c693ac8052332da03e9db90405, +574e115e1add5feb182ca0c1480389c0681b1982b0721cb302228bb7060b9c526062b3803da02abd8cd002830c4873014e186a360f192cd0b7faa25d0014870a, +7006cc01b3182c507f060bec29ca4a6c213943f4d72564826644a9040bf4d42329b1c11910e66e1c6f25d04c01000bec06840470ef489e5fbaa9793974805d8c, +f4c7cbb3402c44f4653d97d4b3c0414a1a104810ec0967143262ea6744656fc0f334c72a1288086c1d06402ba4bcbcd3c00235cf2ce00cb0a22301b600235100, +426b0dc020dffdc1807790d7a1b28277716e70000d800210395b00c402f78f80c28e2000ac022886b3c025a44ac5024d9ab3c03020fa4bcdf7d495ba3120fa03, +37dee6571b611500041222400330c857c1717022c01bb00684877815dc714ca107bb2a170527402b800210802b2b688514c27a746ee0000d0261c7730519c602, +b0c09d109511e19991b0802df1081081e40fd380c340991cb10a00c1801b0b0b0f720b1c028020b0b28277426b0dc0204003a00004e072a7b10085b01e9d1b1a, +40395da99bef2f113daf2de1410800bd8e0dc020dffdc102783947051fb13b346e50000d80022004a13ff60229c27a743d562ac5023e5de4da02fa42af131db6, +8a306804a7347401a60ab9120800bd40ef9bff8d3e0a00de0228c673e539c2020209a1c28e2000ac82aaa53a04d3b044b27dd0bd3a040f01321012e8104c8352, +615e64523cc3db635647798f2a5794f6d7664f7ea566b3007bc72c7050179331672f1132d081ec10e300a23fa1390b641706a23a044b5da9100b840a436464c2, +0e08132a001530a281985e1f7b872cd02cb098550a83c6f5a99cfc310e1ab4e294378f800a34562ca6b740d6a61cb7d5654702002ab0c64b4bb07377c22d90b5, +80a81100080002f855a4c0edc62be464d9599d6442809763aa340b84d484c03923716011c802db805ece50d1e6f4a78d06b905112ee9242bec160501587130e5, +12da1dcf90d8dbb8487bd6170f31f7d9125403f4aa3f200b5058ba6bda1a0e21c3909ac50209912c4898040b5425d380c00e93927bf3a8472683961ce2db9c01, +aec079b14d97da8112db663ce80ad47ed602b684de5b0bd8f60200d2407da2f7550b940acb00e001d1bf09cb02ee912a83b4b977c802a13f1fe312c2a4649bb3, +e4804717682633fd85548d200b2892e54ab000f5f0fed602ab52b0408bddf4960b74effe802c706e550b1cc5c162f757e89f68ca02db962a40215523c802a880, +056d15bae481c08f81053d583c022ef9b200d5dcabd902ec54b2401e20fad360b02a1cab89f00b9052ea771d784b4900cdbeeb1ff29d97b0c7f8f5d912c9bcee, +a6549000443819f0a1d587fc2181c819c1f0647cc118b1017c8442a0e76a28b6e0b3821a503c1c154c3236001530a2a80b54f4fe802cc0d1680bcc62b080cb46, +814a52b08009070b163e5a3e02801c90aa5a410f781674fe7101700b8031b200eb0557f003782a2d02b4542de0c6da0297938240c2c9230404c302358f2c10d0, +c8022a80e8bf299006ac013eed2de06ae21797197e0414fd0c20fa4b192480b2e42d40d0f803b2c02480b2a29a47d16e03fdb03ba82943c4d812e831c6d627ec, +09b1c0ca5e2abd02d502309c2db05e980b181db28000a02a7b5312e16440ed77e75f2ad9022402f8db2d3009de022e1bb28096ddabdd02f600caca13ccf95b04, +ff554a102aa80b1d1fdeda2b30caff0388e5bff264411efb3c202a6b4551115377c61d508df11717973354549fee6434000ec0e81804428059bcfa79b64cc710, +15d1a701ec14ca0ab51f2e40d3c40280a27ca73e6db42b2bb09fde40a570c86ff6da2a7589b4393be2821507cb00e001c8d0825f3ac393b28011100438ba4c80, +ab6a11c40210b94c746c4cba894196b6b1000efd663b483102bbde2d40d0f80308046f8028502ae5dfd50230dc2d70b2c024bb60f9c3c6c0eed4066c2b858d6d, +718b080de4140190c2eae518548071bb84c104e53404b801763d12359e06017b6099dac6804e0c027a3943c522c224bb01ec140d016e80b0900c5cd7b2f1dd72, +4204360580b222e63f791400b980c87245100b3cb915f4b8b4489a0b08a187b02ed894b331a013dc14c183b272e930c9c402e736d14701ec0ccc82b9c0556a11, +00a4b1808229803425c606748071a90b100fd60285148b27d3cb23040232811aaa3f100b645c02482281b252fb4901309bca4aec2ceecfce8afbf45d2e502a50, +89910e992074ec12f033be111b90b0ae9a751db56e2ca004a40be4c6de9a2e50050090c602ee7ca9bb3f100b543420cd32811a100fd602ddbd3c422010230402, +cd031a37846418b0466c40c29a3c9412f604988009a06ef8eaf66abb008a6154fa90ed02c55e2ca0af4002f8466c40c2402ce0d2803417c05c45169c0b4cbafe, +b39f897da4041a3914432620b23018d781ba40d5dd5fe902de09f85600f00110ade9028ba72e80b8d492f7159d02aaeb7b720aa70483fcae88b18f4de851baf7, +8eb9c8eb02a5d94400c59009882c07c658df2eb0e03f6eba02ffd5c78899e9022c9ebb008a31ba0c91f7dc7c1023a50ba012d686119786a08fa112ca66329c2e, +b40b2cf839c8dcae2ec0c4cd7d5fb597474aa0911f18989907d625d7cae902d80f83cfa47060fc514908597cad8f09f0911f182d792605cccedfe902d8474aa0, +83a68f9a2944090fb0772a012465e94b2fa0ab9169334448986fc40624acb3188131c0b90b54a8ae02b5e6ba1995d9cdd77ebbc0a4eb0fc09780bfa1691e1018, +b10109eb9ed40bd0d4d64ca1e957e01b4bb82f1e82f61be70000894fe2706ed38803101204009278ba8085090b406002e7b4c1df40103c64db4b05c02ee03aee, +9bcf008a818b6b90e0e29ec0c56158990b8477e5e4338062070b3c02187dcb031de0d9b891bd0094dd94fd37080fe20328c68181daed020260b0c06bddabed02, +998600b00dc4d5db276f74e623000802c002f59c2ae50bf8c6cdb3a5922f30916aec63131af3ef360ac7130800c000d2c01a2f997a5ecb9d3db441e0a1f208a8, +640f6d1020e57db40b8244b00c78091a35e487a4e179d35a1f183f0301a00c2827f90229c1e82251d27e2803d9fc35b0b52f5187ddbe80ae40a631114c09f4fe, +28a09fbcd18240a6c001eee813090f40fb24b7524a74b974a836f5ed143874b9c093d58d20509f8037f8b8748077121440a898b814069af58a9dd8dbb8298182, +a7ad11001a80769176c1230d0017c044eec5500c40271a80f43e086426c002cf95a094002008641a0800d780458d511b548252028020906921006c0371b5446d, +8b4f06280084b91310f9f56abf400e820ae046fa0220cf2b4ed60c9004c628407c0c29fe0b9404089e02801e9068c202b800bf80cc5f00149f7502e340bc4d1e, +3301e3334262412b7d4301ff8f05397d397d4301c8850539608b9058d053b105c08d61414edf4c401400293546f3085203ebce2b2054266c97cc6d400ab08001, +1721fdb51f0544f49066088900000538edbb0684c7f4fd047fed4301f549487f05397d43014d4248003f8c9058d0ceb350000814d25ffb4d93d037324a784cdf, +4d808210d25ffb5090d37781bbe7f3085990d3371480d85a5884f4d7fe1380c2502984f4d77e133014c03f84f4d77e14fe13107684f4d73ed07713402484f4d7, +3714c09c8e030ee54fc0b57129500fd0018d2030c01e40df4edfda0fe1317d47d25ffb5080ea634110d25ffb4d0083145f10d25ffb5180fb40f46c414edf5080, +13f05d84f4d73e13e4f4cd0444f4d037423df4cd044cc516041cf4f4bd042c112024020013c0df8b9008007d8ea67601220030015077f787f4cd049cc2970642, +900a10090086053d2a60efdb128700f7be13b0251c0213457dc21a000285f4d708d0f712308bc102b7171780185c0800c25990d3f712e072807dfc09d0f71280, +07b0bef86701000cf00ad4ef43f90060b022492902a79445e61ae07ab672b70068003e08c30103e694af80f92ebb0f0083dc02870020080c58bcfa163483f4ea, +d4253491009007c4009001c7d24c82078d07d425a8dc8e307fb043c5087840a9922430c77b042794af001a9e496514bb02c08a24c529ef1d989b6b80ebd9cadd, +02da6e269551ec4a4852c380186f11bc23ac01e5e72d00ac562a0103e6661e10050a5a09008fb429021e504c080078c017680aca23e40131087840312100e001, +02001e50970c3e9273b644a73029c005fc0ac8b55fd09ab025d0677a4f344a03429f791002001ee0532565c80d78c06761261578f008784092c01cef119c508c, +811a1057ef0185d4c44044e60a50d0325237257b2a2b974aca046ac03a813e1704f702bf992b70afd0698804348565f1f9790b002b92d4300767070c989b6b40, +10ac01a3141b87198c33600b7ce5f5eb447822675c12030a6cc0000542089001d812a3cb3ed00f078ed352b08009070bb0270103ff8e2b204d0961eec425731b, +c006b8005a7219f02b200b60f4ee09199971590c7c1efe80b00019c006b8003162c5c0bfe31c60f4b80036308bb106ccd25c008e0b19c0061036d007ae003003, +33f077c5c0a75c0ce30a9484aa5431b0b4eef3974ac540cd40e41d4bbfae47c1298f2b1030f76ac5f3be91d25f2a150380341700304006e09015039bb02b60cd, +07f618870b6007e7c315034c0361467be52ee90813c5360a31f077bb02ba7b26c45130ad0b07b3582c821b5b0c6455ecddc54055a2085c2a24a3545531f05d84, +0e02c02980690b002898eb26ddb20dc87919033db53fe00a00e4240444381920f01286270b175461ee4704a21e00f7246c00c7c000d4b279b90f993110dbba02, +cb879083ec472d8f07555f3160fa092aa313ba403c6d22fb767ba8a5523110794cf51603db3782b46e411fbb53c01820864f0001442d7940c5c072b1d9030928, +014e6b5c1e033fa5da5579a06c1d05052baa5431f0ff90731897c68085e90ab0981a0387f0ba1cdc500c2808456463452e104f9bc83a5c0171d2540c44dee884, +96554107023fa23147a9540cc4b6ad00f12f13cb0614609b26b4371f5430e044b24daccb4421bd9fc67348cd604bc967249b817bc5000f612bf0ec82061132db, +2200e00119e9326d7d2400e001ce057cc07a717ce301ce052a78df25ae1400c7b0dc4a015615c8220ce76e0011de9285024829744dfbdd55c0fa9a08d8894f60, +cd126c20188f80072000e00120102ca00080076075c6c04a021ee09f19032b81416aa62100e4013159544401500c4895df0122cb5677723f0cdcbe02001e506a, +e441c0710d388e1e1048b00030200004080944c285001a02ae203618050b012b4101631c0000608478c0754d65e6840001919931b0120800949fc6c04a2000e0, +8267d1984f0081d8d72a14ae13206606864c218bc860fcf1a34a4205e7b079134c8a3869c22a986d8f02f0006208aa64a45002184006d3c839e2c1c2d0218044, +008b42c140343802d80b11af5e81752d041d347a03e78103193764d6a6615306374691ba0001624a66dec80141e6cd1de8ac905206691e101404f051259982de, +7822448efbf8144c8f54aabc21c18efc1b4116934172da4a491319e1140a800c1f0370e06711d644813128c8282557af593ce630400764050850f017bd829c50, +b2ec0080c039b1b64200d8c0145cc443008a4c63f78ae23465e6ccf12a80d768da8419d302291939418860744c18362d6bbeb56b4128053b44e8b71ce11f0944, +c722656829c8115ec9b8f18a84fc1e627a6d3f240aba061a91872202e010667ea07b6a8a09012086e818ca00f08512e741f47bee372ca62ba262b5821a614900, +5050be426c2b51413e089f8ac1c346986e98b041fd6aab518f0cf514a99185df0d017041af32e84024f1aa0f43046036917f842467c61a6fc6a223001d160b84, +0a9204c1c7220bc00c36547ebb804bab01c001eb02f916bb515128a796d10594ce155bacf34e00260a3a24493ed12c6810804658288810023c14048b4d0030c9, +337c05a10b105e2d28e3d72d6e0d438ed75bcdf04baf30daa8548fbd397c782ba30c1d40e0812e321b1a50a08a39c2380bd02bc500f806040d914035d1a094e8, +5e431105785e6c4422a3d7ab3e0a1244ca420026fa0fd582180b3a935d2e8adcaa533e4ff404409007a758b9c7434708745d0fa9452c5a06a835149f2321b7a3, +aa62db9809381004fb0a1a51e5ee7af4bb23bb910dd2ef540fb01694acde1d2c3a417432af160a00a980656ce3e42400217504c05c8e506102005f7689912c48, +ba39ecb3e5ad993b5b9b03fe9a668b0b71c917807d652ef4e30d3a92f68a693c46dcd4188202c47818038ec500b046bfa246e4eb8e0032d00bca584d895ada6f, +17531c070dc5f54464c28ab786da70c45c952aa0194ac4b59052e902fe7612b71f5640f1b0bb01dcb0cdd5108b9809d7fb6ab92da2a5b3db15057802d147747c, +dc9fe6cc22e6377574a573263b6de645917d7f4969a53d93552ba850a1f72415e38c37941600908cc22138608e3ae67a01c75148b11117119713c080141a7143, +0d7360010892e086de98238f39e828a34b76109a48630c393a40900106186ec080230f39d238030d5c363c246b8721de0b41fdd1822ee046137284207f31d1c0, +600f8463e01ea4c05473df7b047124651d12f084c3b841088c8c89891556181fc1054a0340632ce2644f19e46087329040a03ef6d1610e0d31d805044160031b, +8078e40d1543c91e4700b940d125342358cc00d4412300285c478039a4410f652bccd07be410970f7fe2f98b813c17b8561bdaa29634b8c1212e258c30022038, +3b80c322088682870ced280019f40a08310dc2de31b05110405ed4271e108c60f00c028d3105234408a120057086480a6dd00c00c82280262b6450b967102400, +06bc0e19002ed447194b5aca1297003014c495b07c652b674f2bc67600500c7cfb9240045bd1ac08859490250148d89f2b79209cc08402b0735f7ad6d39e117d, +a11b9d06010008a7470ef1c10db1420035eedcf1473afb0ac2781c6984ce76d77083b1a418484c20c41006371c4e0e2d3609c013f5e9ce024cabf0079714012f, +a900d07858458191b8673e95e332009cc0214fefc1e39dd36a58c60cc0dcd02a00ae600900c2882351373160116824ad298eca41c326571cace21dea84143ade, +032d930c65b003fe8c156d5937c192084d46f3d9240150437aa460eac243d8180180a49a49a99e02d040d4970e94a0ea019e81bd6e468600b18a5624a062ec19, +1a9100588015bfdb4c94aa16edcf4f8359e3e9a626124c4d1ce0c08630e4418380727ef3006448c36017071baa80622401aa8838a28b8509caf0053a18a69aef, +339f49c11f8408728030d4810e6f6841219bcab30c5e190768848158649148d00aa20822599440053458c415224d097f3ef5e9e69d08e00c1482ee9ad702446c, +2d2e055b703b40743cc441e4268f9f60be15401a5878a71953bacde450480bcd06e056f1869cca87305a6742f3111691e0237670804325e7bc78e7211c0a800b, +1962a16f071f96df631916e65e7fa2d60b8d73b5b78d038c70b0a505694e46512122a94e0eb9c1ec49e1d54d7739171a418f4624a30f6b12ae00d1b85376f3ba, +80600c6f70c3ff6604240214a4f08426563db6a30f50613018f87eb82b0dbace46c116960f5912b9248d63d26b9167d8ae86de103568502f11d5115e068ee333, +e4ec29431f8dea1e33b2d2b84ece5cca782703b844083a7535f483231f42b77ce9ca6105d6c56e72b9bbe55a3fa176804f1a88c8180acbc71c416601e6877610, +9fe39561fd652805390c5a2f744881060d6d28cf5e227818e1194070b83bc0f8a06610a0a03c6bf8f063842730339adb72180394bde2145500fae9063bc8c158, +b1d21a5d10b1ce2a8087328c01b4699042e02cb13b1608cac7a5061bdccc8d11251739944ad6e158141038932f53abdac008c47a4b5c6687a00609dcac8e115e, +0028831a6e4d87c75b642cc13968ee3666618cd00150c8b6212e147c1c35a8e1c8f5e1e6b068c6c1cfe08651e2af816f0d10210db3baf3afd2d420859ba13142, +797053010b595030e69fff00287032b89e80efa58e813dfc114a202fff26e50b0ec7ad06e054c18a4fa90170eebf8c81b0ee76bf45a94c755583016ebec5081b, +b186560e8c1eca0e11235c0013744e6b43a4ab21397fa8c2b06f7e17840d3f2c80000ecca2e6ffe467a8039ae9a06b370844edbe18bb615885fefdaf0d9fde0b, +de86117e400a4849a359ac78789c350841509fd7a584bf9b3510e0e63b8c50019863b57c0c572a80bc3d8b6934b3d2206e02007bf8e931407b2870f0fd7c10f4, +d841e1e6288cb0029b320ccb0d7bc6e610dad2b61a686f8e707317c0ed0454538fa5be355bc41a600a3e51c6d556badf82240fc3b9016d66031eeeec06548b81, +28fbcfb7a4f11d5db0fd43087aab00d7f3d9fc3962e0d61adc67c1bdee416094c3e8ad51ba9f0f010d80f51c260cff23fc39c68206b5cdd344f8fc0ff7dce732, +fdea6c0c8aafe82efffea7400766b9af43162318fee877d1b7f9e726f0903cb260c10001e69ce6c7b5b5be21659040cc0631d4e10c67d8b34008cb6f7e8d975d, +74ac8fc4e02f4040c00c02030dc60a049aceccfd7e40ff92e86f477c4001cb40e7fbccc00c28c82bdbd04c0ed4c200dddc80cfc220300008a8ebda0204eae089, +e0dc68cc0eee22f62ef2c27d14b0f540022df7f04788f2c0edd640eb823e0db40e7660ffee42056b4e3000ed6c03eb8fc87c662cd122e80d05e9400eea003006, +2fc2c082d4b0f0dacccc7fda0230ca10000335f007770408cf2c28ff2a90e4ea4e8ec620080476b02f958ef07f5010300e7260ceea6708f706adc70a8203d988, +a5a40592ca0c3e8b2c0ccc80e63ecd0a2c62cc13e390ceec6eed0d2cc82d86f04069be902c6660ce049cc00aa420089a2f3003ddc2f9de0050074f1092e2900e, +100c83c0cc64c719819250cea8e904f292cae1762c17c36330b460d080d8a00e57eea208f2af07078ee5577820e604e34fc7726ef06e659a0d20488330910eee, +afb2818ef451cece3e30044b710c7ec0c122ae61bef0519d58aa91dff0afeb4c23081a870804a6f1713d7868109b111718bb8e14dd2f3020238807761159f46f, +45e7d1764e22a1c0691d35322401a42200b461bb08321ba7fb8921cd6c1b23b26713459182524122142c421b3e822143a28f0ff810e9cae04c764ac122b2e195, +8316174018f1c05801ab6630dca2251780d21561d17d8a120f27d72092ca8081045aa005402005f6d26058282818510031084aee56c8ead62952c1eeac0f0068, +0621b1e4ac120891cc03e9d4c22de132a02cef122f41c008e1984a916a120873f427e49ab20e62d16f288f322919c80c18ef022701912cf7ca8a3d7ce4128130, +4c1329e5e070d492c8f5dc07318392e42ebd10086dc028551433e49ca008a860482a29e80ec60a30064f70b62668c60640800892600a9600202f0fb30cd732d0, +f32dc6ea3961eeff07d0202f7f73d438dd47ace6600d6240a0c52cd136c330372dd722368780085ad463310ff32c5933912c6aa034476d0c2d4ff30eda620dac, +3a9b730d40203305f5ef3ced133ff9ce280f6467ef823217478a6039afd339755ed03ac933aae872933a99f3f39cb22f2ef50f27fdef3052bacee540e0b092d3, +7925eb087347b0126936e56040730f4358e0b025df70142589720893eafbf82cf1273fad4adc422809b2c5d378a025bdd0630e4480d46891632dccca59404004, +cdd670cdff5c1030076a872c87922769fec77f6e341387f0a76a5e802ddee005056a2d02e9e005f4e2070680455b40e0d245c1b0048690060452692bff620ebc, +210bc01b16824f7542120c424742c900cf2b4a8e62b4a13fd0da000e34adebcadac240b9f40cbc142035f50f01abd4084b710cb3be724762668b76e86c808c10, +9814357920a91e0e0115288f26697108f3982dd2bc0126fdd1b03be1d04de9acd02dd8f08768d04a05a47408fbefffde9c0215e260fe80d0e1d452cd22bc0108, +071087725acdc02881ee82550ff47cd065544e69d4469313f055996a168110462fd8c22d64955693d9c37dbe0e0dde8052ffa4a07efc0d150475720c78320d7c, +01e955583fad5f8fd16381c8f20cc3f4350d9c940e82805589caf25cfdc70ae14360ffa6750ec6e0125b79f534c9140c82927308a75592ee64cb2fb1f32dd4c7, +26569aa404109b40a03693530622960e055a6ed62cf60dc6c06e0d0e5182c4a3003c0694ff7ef5cf0e726f0cd0a005c6a7d55781155f5be015eb08b4eba45357, +11eb92754754804bdc84e8349191e65e72d67d761629ddb00266430fe96c565b65595692f89581ee4c564a2228397f404e7f90223ce835e6c60ed02d4c943649, +57e91529c2000e68d7963dd60201a5f68f6c07832fce366d5e89f62ea6206c73af5634f5706b63d5700a86600a92202e633f8d0efc6f629301af05de355e2755, +85a81538977a4ef76c71415762297668725b960e50321c042c221cb6a37143e737682996644d7615883aa300c241251770425041419df6558ef66a8f5529c61b, +f289dae02d73af6f57cd23050f6780802a8915a5f62e98b7e11424e15177c406dbee40db3857b5fc5d817315d7714f00e37363d76bd380686dbbd65e5581738b, +de00ee71c4810b9c51521c54c47e43c7971942a77c5be07c82a6448848d74426dde20930d04e6d6f69074ff02ec44d78f5c88f162b807ba38337f0c6200f2cb6, +4338115338d094aee203f46f376313108109b183b9555dc9f74f5bab552dca90f61b03145cdf9316188b80dd00ee560c02d87d5c35df202ee214d42079c13005, +af6dc19001c0512b29f3606a98852fc8113089c5c05241000c3080726cf3c001de78d887e740dad47e080e404bff12eecd78832081c90207df94b2dd8e4b1c58, +e5f0f828f4d86f87c8f82e86f203e9e76008a3788ae5802fc690b187c734397963470cce2d0e68703201092f891d70605c9fca01851835cd9bb52b4b980e6860, +3eb90c08a392cbd87246bb185f8570ff30acf88ac9228bb39fb8899ff85dd783b88821eece02438c8ee7568629189287e498f3f0f506346fb50edab80cde38d1, +b05d373998a7f48c8bb5f8946bd48b4999f8a9c44094e113ed0d412b92917893d7ca108829988f41dde795b1160c5f40f9e5d6f890dd188e8f096f0a72357f5a, +1472980e6ae055b740eeb8cac1864dc1c122ca614fdb79e200cac173db59d744226b9d75e195edb199d7c4888c03751c917799912769e47a01238d0bd90a7339, +f4220bc1362e08967a1b93f30566cbf90127d6996845151d83712887805bd2105117a9a9176f9106dc688f1675a0a0d7d4426a2d986093edf14c5513d9c8caac, +6208d060a401c301a279f15634fa1bef46990e70e00a59faee87f06d56cb4340e63e6d3dac50635fc962805293f100af2de6e84c4a0ecf97814e2ee556ae09cb, +9af1150886f0a9cdf1b59463748bb99290824f31151d107a2ed4c2ff9092d6ee2808d1e2f8fb787952a419b06f6f0ce6e6be0e0f933308ca657a7d68bae56c5a, +3db639cbeaac3279759b4160067af4b38260000f62e00faff5a20546407fee20426d5739a70d9b950fdc4764df139ac9b5f98fbb998f0f076c9c5bf181b97993, +4f5ee9330cb45409b45488045f910d08efa2b0b3f0b3426b2d8270d28293332c56cd402d6816453f61756acdd50a0f6380b0333b0b4b0eb130f88eb489125f8d, +e300e805b05a8f2398ba070edabf09fb1b27658c0dd462d739b3fb059f9b09bde460bac583f086b24bb765ac0528487f396d1bb3b170bb4543ab3cc06e35ab26, +a4cc1f4aa115043a57fc284e0e46af1cbadfc0568af17de1769a0e22202fb4bab62f0b6fa659cee556958a82241b12adae10b15ff12dddf076a8d5bb2df0f505, +1c5f83a004ce60cac8df60c98bfc0d9e7b1cc7d9e0c8bd18fc06381cc8d960c804d2a0477bdc2e8240c0057a1c5f17a060c641a004e8a099024a000e06b004dc, +1093d0cec78acdc53654ccaf3aabad50a3d9a8e92e80f2e56c4f96a963e018d75391aadff0e5ce9c391165450e25e8c4e58a1204a0c0ac3071fc0ce6072837f4, +13ddaf4f99d181d0fc18a97a05ea85161821b1cd8db9c66f6f9ccf27d56565dc80c37580c16f3c930666008c8f31c8676d94161f60ff62408306f155014c998b, +0c93f17208be59f937ef80c35300e0d0b9f2d577e400f60f7ad051dce6565dd1d6dff00433732f5e8752cc85799227a964c6393c653379cfd1f5af06787415a7, +d0cb60cdf73dcbe3c812dd3736c5d05c373981c005eafdf0ef48fd0df8eed80df922c8f9ae04d8801b2fe9f6a5cf3cd0838150075c003cdc34afe8da3130ac5d, +659ce429bbd1aaddb2dffb4229c9c063055c000e82280defc8bd64dddb41391c7d6ef17c3f45e0cfd8e1e2cff43c2879753c0cbcf8045c807de4401d056710c7, +c119047a06a07e0080228d1d98c1294875a4e7fb5474f8c741726d3ee2e342e7e009fdf068b700d862a200685e17f25d9ee3a1710e40921d3cca009ed3614f69, +c65aceef00034c7311530882fee5425a61de5215085b4052f9e600fad8e1e9488542f9d082f9dec0ee18b59e1005f470829a9001f122c043f7ef2c122df04c88, +7a85c37960b4163f9610c5cf825e8e9215db3e0cdedef9c435d4e2ef2208aa44f3065640f1f31c433ddc5afbe0bec69252f3e4a516d7e4606dbf99bac7c5000e, +000514ff7c8d9fead8757ffbe8b8b2e9e8753d206ec6f23bd3f63b11f7018387f55b143c8532f30fe358451311f50963021db939c5449ff4939182f339f42ece, +578dbfbc4474e89ac4ff04241a087be0bed3f58f0820f1e5c393b303c43f8228700c8864b00e006eec2fbaf67f165fc661290ef6f3720af606516aa59ff265f1, +9044059e16b6722296f5f48c00347925eb33dee97cf43f2fe8ba8a47fbee42fe224e72e200013082330612b131fd316d13809ede955ed863f8134270813db881, +eb810eac9c978397c5573ba6c2339b6826cb3974ed0460bef4a581d4b7a2684baf9050029a317ee15a4049f66d4031f7bfc3979c56955f289ffbf821fe6306c1, +01a067ac502ce363bb0928f8285bf5a3510a8a207fe11469e10a02412d58ce1028058b5659aa82809280dcee70fc2c2824220728ec50900a78601a921d2d8781, +f27ece075ff50017e98518730529481280d566424066855e2f2df8d9987236e317e8fe64e014cc580ada835e2c09b8800ba6982d0887048302b3121a42833f30, +b3026ccfaafa39a8067e3537909cfa1a54d254045184ed2f3d0e0e2e011eacb69ac9070a51967f538d01913638683d8401af051e09378168f009e358193a837c, +8dd49a4cbc5001116d03780128008a6ed30e00c728b003029b7e9d27e71c8e4806c3eea482a4a1db929332d43fcc70113028038ec2593863fd331580dec00b6a, +869010300f6bc0c0f230aad0a27a280409e005e49319628333693d70a81f7a310b94b5fdd3f7c4cfc8c261b8db1118c002ecd0dbb1315db6a030e8c53a801770, +1287400b106f33b169d68ee678b10b209f35250752e24614102de2005e40bce92b23ba39c070a2bad502282208b088261a6bd50f031481b3f185f50763081c5f, +0099cc1056f44e9d54412c115f81002f4c256e068906611b5b00528c514b113000e72332b512c0133483c6dc20479439f54b874460081501261e0e02d516ba50, +2f70058491597c8710fa0054d1300d10802495bf9086c417e2048fc9222b316f471d112aba051c18c5c1b3a5d6033c6422bed2015ec03095b01cb5428d788212, +00c53805a0401018605f12575e000c80cdb5a9852d64ccdce401bc001318420960874fa53c6d465a0cb5b6989c16a214ab4052348b89260dba261e82452f0610, +b480b162a798ce04229b53c4898167f0c0310a244558e87ad8d31b5d8effdb11c9c336ed210d68b70bf401d9281649d0a7b89230f46221c0020dd17c081a2e14, +083c9a1b4804d9e3a0c4401e6052c9a95194c49bfd05066495d4a843a80e2b54c2193050f7ef348e06f6e1c00c557cf4e00a049a112003a83a2ef28007380551, +f1424610ebd42143041fcd87b50a91fc492af44a3fba47e92581dba7f9e6809d0bd481f48ffe100c7240f035a049b21e4cd3afbaa35a08227e944efd310dddbf, +f09131c9c7854688208007ac99e6c38f84ac037e24127ab1bb75a7819588960a207508e14246c2aa4a3a663dc2c793d72724501ee08035031dbe115c198af525, +0f3a70ffa0c62999922b7707c2a47a548e968c4d5cb23b516806c8802b0980fed9f93aa0947c6d89bc726ca049c6be1c051eeb54ee8421116c000d182de2e8a7, +dc80612e7d9539c021013c30d8f48fa217139c8c5a19ca8b290607fcc92c2928d9d7eba2a4423b939cbc77ff68ffd8c94d52a537d9f1baa48862800d58937da6, +abf492b2f20ed44a4dfec955e97f4cdfe608511031598428931f50cc91b998e72b24c00638a5931c908ab294aa0f53e2520c882332907b1c506ee0dc45a49256, +e5a5540f1cce07e0325532a76be92ab3c92b4be5af4c449150969eb259e64a51c6c958999c8ec018faa4b06495c59250988c54febb384788317927c11cedd395, +989a0fb803045303fdb2f8b44b83997435992e5790a1030cac6496f7f221014bfaf90036302f351fe6549ffb309686b27cfdc70f9dca3fd90176d5293fe093ec, +0f0a983f08053369375c87ed801db1534c763932b5e5bbe466f20301e8521c850063523c8d29e6385028b7252dea0163f4930c935f62cbf0da4bda872f871a9f, +210664105fea3331499a606e69324afa2ac9a154868c669f5c1bb47c73d2f222316005204d91c31719c0013d1fe873039e33536e40067cca38543f1eb0020091, +a77937c166de44369cc35749e005d4cd6aaecd71192ddf6606caca708b012a409a4a9369da8f0797bf20a0028ae6d9f4e5d5040cbe52ce55409a244d63563547, +007c9503aa5b0a420ab9e141316072ca725a9ea330f04392d938c5e6b36c9bbde3217c2151da4da9b04d7289354dd695dd9f01d15ea870e44b85193dcd172035, +f124e2497254e32bc59c14581fed83a8b8f378eecea12435e708867440cd199e7f04345710e6884a7dcc01db0980cc54e692a69863029fc74505d34c6dc23806, +39e180d806886619d49a09e189011321382ac8d000c9247431c683790610e26c9a1f995be04c91c5a01c08341c9054926311f481e4f107a06c5acaf3ede81db9, +c870fe3869b6e838393593e7ae249c56056ac828820286ff86a50242732613028000191801ba28500f50f0f84f1be0c5fb090dd79a1cd09f228b9f6cb2f1401b, +27146e42b915caec0f0a43252809d59c0982851d1450b681b0a1810bda8d32687d34cf3b1a03f2489ad16a080d2595c6803ec9a12ca80c4ddcd20c9dfc732e82, +61612b114d4a10ba881a10adec1f99fc813b399fe203efed627e3a1e285300f8760262000e00a21ae571666c87422d1f8ad01e559484a80d385c8f7aa12fa77f, +20411bca936e4c49d10017900181d20f41681695a113145f50726e1dd28719282deac502a974d2805ec0a329468f325105b800d05947f3260221df22cba2f88a, +3fb838e71353c4d1d7c0afe17341468f06a602979253d4af97686162bda337b05236948348cee7c9675c809b65e9e4bd81e6b49e3a150a858a424d6585eca1e2, +e15f73565e0c10852606cda03a488b8ab0077d20163c50ca701f278099fe90a9692b6573ff840f5a93d30e488365102873cbff40485574087505780a22bd84a4, +a4e956f39e49889a66ea41ba8ffb47a9180017b8a65a5c015d886224689f323547c10f18809b50e6c5aca178f27b77a194350037f5b76bead329b8a3e2078ce1, +390ba7a9e4a32d300345335c1e26d3b9d488793e389c12485d21358521f51d916a056c54934a2f770017c629d5b81af8bd4b4560e438a01326a715404e9da91d, +10556f2a02599a2ac2a42875083dd5bb99a9a4b934c1186ef9a00e551fdca7475694a1c2a02f3a535486af5ca8fe991f52791ad56f59b953a6be81927a3e9051, +69e48dce282d6a0003f233716a37b6239fd6b29af6f74e90036c4537c26803f1054ee113cc0181969ed0c38046cf3fc0508f5a9a5f3554ad95a8f631987355dd, +5668b4f5482b536b127e147332803459229ad20ad4f4e5866032989ad80401b6a39b32d44c114d10754dde49fbfe27ad6c451bf85ee261eb6648a90636c45786, +c2a332004469110dfdc2602582bd820b6e93949acb14b31c0d651e4e90b834a112980a7e55aa65b2074c85d5b817f09525e190617d3def4801aacc0c8e1cc1da, +159d80c1c00616df09f08140fb012035afc64cbb9e5131e1b7f60040b45b0b3393eaa1ae2f0801c5cb269d9b8789e70ee4b11c5fa0e1428760891990f18d526f, +327ff04d615894bcc805b75a83ad3a1fc802222c33d22b96c40ac0f0049c001306ec494d4e340005d2841a79331e32d4a55460b557ed984070d5158cf5890958, +6021ba40337ea033e821694c430038007a38255ea1b20000640abcb650ab6ccc01f64f13589d2f679a6791c042447c95d855a470f8535bd8580a3086ceea2e54, +0461423e20827ca21145901a0404bc48023f282401a016aca1202082ee62260ae064a1ac80781a07d0194976c95e03b13c96fd1a0b3c042206c1d3c81942e21f, +106820800a4095180c149d52443cc121aeac9010237a564109a1bb1895d3601ba2521048c191a8b2c7280821004fe80450f003007145ac4832d02c0098b20aa2, +016025dda43ea80cce7a85a0e03b0c401968009d002c7c961300a01ac8078361034f50073849a8f869858d34d34089f80f480e56a5015f82bb60efc2c09ab0ec, +1410590cde488c1400dc929908a53fe6f00c7c833ff0054b7802e9a7206080991800026021c4842f069657682fcbf64b325610ad4eb3a2dd490b862c80138044, +ee2d0428b82be0def736def88361e0021a706fa7cf30880130b801f79600145c18e8807b0b009cc209ae406bc100a56ab70080208005a7e0843ff00f4cc00748, +04fcc3a0ddaf19c02793e1090881265059037000d60524c8404e9908a6c036a0a0e32e86842b6b4950704300c2ddb741d0b81217fda48ec582807dbb045a8bd2, +103cb8ee01a00c01e9260f234ef80e006cdab0000066ae18048b80b8238e8095864067d88937d1583251280ced8028081330023d97d3468043f4599b4b32726e, +08e015ba43092002a090bb0040310c80963816ae412066ee147ac6cae0ba0660007764e8128ab21b9982904fdeaecc3d8ccaf013fba1bb7000045c87ac615188, +805e9b4d0a2fd788818788134dd75f04773f84890dd1099e10260cc4e1ad0fa2180010e03b61dd844d0dd9b12a2790576bc7f61a3c4d2b36ecf6a89d1b66914b, +fc8310400dae6f4143003618b85e215ce224d96a5ad53b6f3b72679d83ae8dbb0038bd59573e1cdeb01800045048e20b1166ae56382965f7ba65d62b508699bb, +a8c4dbb5d4ca5a11396892d41d00efa000eee06188894e40024ee021926cf1185cc635bef2d61f74c30018007af20f72ea9588d8ca81387de001480a13a2015f, +2079100c424b324aa22e00edbf701700f80803e004b012c088136c0231ac4823498cbec8b4a35732f977f5b60e9ad4674ec0082684014800bbd58e6e6049c0df, +22032c2ce19b508248d081c142df0dbba45dbd5c20e8ea07eb2adfa94b11164b8391ae45d9172a43b6b000cb0e0a346b8b8021085802083e0cc218b45866d2fe, +0688c211d886be8b14fd5b7d82669fc5c4c3001258b6bfb0c05fd409b0702870f182ad6e0c0ec30096c27e975f14847b906076718255850a054666c9116da220, +300616421003805f1800493c84370647df2ea6dd0f7d18278d98eb2a8081f276b25b85c7eebe401b9c181e7a0500245961388d34ab33fa6c0d884c1e9ec210e3, +1ae9261301b0740735d85e441c311cf0162a8b015800c9030065224934825c0c0901d00bfa8bfe3dc23040080ef8b1f8c5016707188c2e2c0043562f0548c27a, +ecd8ddb376764370c21cfbe2596289d95228008b97551049f5079c207d5a1faf08e13a315080f0f4fbcbe11519933849c038d816848fe08b03f0027ee12af5c5, +8bef341ec808b916f0e18efcde6d8c81d76100caaf112b088e40be4584130c034118000670244c2f2ec22e37c6c61938ba0c209f04638b72026c1074a3310ae6, +774945d35dbc4498c00981c8b0e487400431c109324ed0f46fde6dc7098310e858ea2662fd8009884b0386808b89023d86054b57465c919b7089497012d43142, +e06b09022c46c867f6036562341880062ee5a6fc302cf14c08801518536fd7d07a77ec1262fdc0267b1008b8ee51c6c22b4e0003a57884e10afbe43f9c92ebee, +ba6b1b82e9f9d00bf3f50af581a568dd404c6307702eb0c196b5c89f10cbdc44b3ed9868708b2ef45ca75c2ab84650e888d220bb590445c88726c509a2f144a2, +1e5dc19be0c0010e816406021e229882ebdc280503e00090e080034661661c24ed0c6279260c0191400fb11c140ab292c4f1466ebe5c635f4301163b054ed021, +2c0cdcec75c5095804723eaec7d3780133b9e54ee07a1c23020190a5b119d6ba8958cdc94316d3e260e8e36e722e0ab103e831d7d0bd09201106e0015000c98c, +70700202e06f95cb9ff5333e30ce0e00a6ec043fe767fdbce48acc751f801809ce43e60511b90c4f59e9d22465dc90217180af046ea6019240bd8d062e14e0f3, +0114601601c009aec437730fc51a4c1c481eddc10160af585891245b5904802126d6fed00bb763159b601db88e03f0024de00ffc2d1a700a373e004884cc98cf, +04e0182409c19b3d02800cb009c8c009e7fd4e2efa184c08d0ad05697b4142d33f55c86e632ade29200eed17a18108c25e52d11d588002618698d804d960427c, +c0efb700c8022d2b6979610022c0bea834957e05bf65af7cba0d7304d10c53d0bc2136812d50d251e6ba102060746999080042901d5a464c36013050d2c80040, +f01d02e0139f867a2886c760520444f205c02ac00f81856bdde46a1cead9cb8a372c2468c4a808c9a0d8b5b2974ea88cc9b60baf702ea8c11696343681d24922, +b08e09a95a5588e93e7869013008b44a0ead0f9d8e0c0da2d55aa11b18e1077d602a806537f0c848402ce80f13994ebfc10080dee53c9f0b1c1166717ff9b52c, +346266cc6221567fba0a3460093068ef71a2e3482db0cf6440bbd7a13b6810a2b868305039604167824baa9ed312203b70e0419f819cd25d22b209000182c600, +1ef40b20d867c2000afb412301678d07324d87c1826946d8bed8b4064002100f0e3ce81ed08027c001e8848bb602ce9ad586b920c0e7802ce9591265b32d04c0, +09dc44ccde0c9d61d8f042334f808c21950020017a8a9bc8c01e5817d06358e7816453e946627d0af0a707afa050d32266719be00410ecae4c80e1f2a08180b3, +e0ac378426a8070d2eda1bdb1f6c0207e96521ed170a82915f898cfe260e40b7ceda8d6e020240b08e300836b08bee0004c80e39fb69f06c5837699a3d3db8ee, +3e201f343305d8c011d104aec6fa10006d5f07d3ac5990750f9c352388dbe300d610405588094dc0827680b67586d6adb40170d688c029689802e85e0ab02e5c, +9ab8ed0bca04aaa69b812d0804401b945a3d430007b01e74ad0dfc2d2688db49501a01a000848db8e48236906e314071db41caa51605c0294a1b00cc8311a1b7, +0cee6a4d010a2df491c737511abf7b96c0fbd6b261404c856cd05feef4b00dcb8866dd3dda75c314a0680c8e214eb20368054464300014e000b3446fe702b45d, +12f85b7ae20f34016f09420280bf9a60b723f71f88802d7001163078282600803739980255c0095c81dc3a055d700838212674c122e0dc3c35d98978506ce841, +20dd66007652c2b900c209c0cacd05023704965b1ac76d41fb835f60064c2e0194c6cafd0569008203376e1b70d101167f8b0f9cc22f800324f0b71085803702, +433c00c4ed2cc0c43030c4092e01ef02dc2e03433c03c4ed6fa701100e001240ae7bb505481e7d570231bc50e45dbd9d80423109643701d72ef08edb5fa0015b, +d9c3a100ac80a7a180cab1020a85de5e40e550010fa26c878465ab80bca1b74bd05a32c0f4d104794f02435c00c46d1e507102de04ae3801e3761580e2713b0a, +e8070df8027809fdb7ebcb8ca9b347262205d7bd009e5b1f16c0775b808860001aae0916400c9fc6fdb62d26ab0e58d8e9c4ed4d92ba1700b7816eea2600f45b, +2b67ce4eb794c7e992a772afb0ca75863048f90530e50882c7008200c483fa9083183ec92f40ccadc5293710622213b8a0f48a13c27b0154105d28b985a8d617, +39581804e6c42964009cbb8410accdb9b1cdbd022dd719826717d79cf06280111784411014ec713259f9bf40114e177ccdbc934703500eaf60ce7525799a26dc, +3c6325c136400430ab33427ab3203005c5cb7821c00ab8022edfe564d82b9c09925b67ae911dd06c8feb79d23000cd9c2c090396d382189e029c32815fb10578, +1e8e1a1fe16d504037179df058a7fc578d16e06c1308453770d54de82ee127435c25245f71f2aa298068a788aaf6e6c65341ced67d540138bc3510c0048840b6, +419cf5031fc6117af8e76e34139481722080140e4ebcc2badf6e26c8d61b021771a27a27f5452cbd3c009259b19ca01344e6c15b379b77727f404e04e47955f5, +4c50041a300630bcdefde73f9c316f8802a484945cbdf7bacc83f74dfee7c7da0e713d9f148fafce752b1cbc61390f1f80ee6deb31d800ac784d18670d107c35, +741020d2497ad73690fbe0e81e3d82808006b142a7d5b3eab0175acf44f78c51ee260a3da6d3e8bc086701d1190c7a0fe3ba43f8e7b4fc6abdfb02cbe7c12d69, +7f1311e0db1150f3548566f70a0062a13dc66b1f75ca9e01340344f892901cd205510babdd0d612bb48f3dd30e02503bd06980525c6fab88e9be5c99a37298ce, +016f00afd04db07b819402fcc104e9a0cc5f42ba8b11453673cb6e015e7592edcb3fbfe7083ddc32bbf80e5a96227339ce0a630d4eaf265e2b0342b0b4dbf4e2, +713732f82142d4bf9fda17fc73574db9171089d7c0878004238aa14bc9d7052fedbb381123ebbd9e34bdbc279ef35ed4b5b09788055f184a6887001e60b88f77, +bf60882b8024bf0b55d0d8038698c0046aee004cc029600250b48c5e839acb80adfd012690058d7dde8df98440660e008cbc0b838fba35fe134ba9f0308299eb, +ba8e9d6bd487c90e8234ffcfaf0650e0ba0500ec601b1324609f73dd0e701dfc00c2070002c70491c8c3223784f7785764f05e10093a782f86b806700abd8012, +e8c51de0485404a8535daea19d7df8cf0f8b7487d7d45d54b2a2116eed155fd2cf382c1d907277260ae0eec3ca0186776a74131591dda1c6af3b408bb8ec96fc, +c8b0f4ad1ed49760be8e1c5f4f44d0fbc8e8958a4f421ded01c39d52a5a1f5a078f80e0006bd814f84a9e7043bd99277c2c37b85db1cd865ccdef38a01e8004b, +bc0638c506e003ec18cb368d4221ea9d1e92bff02ab6ea1910df450413846c7aaf73175cb20d826d674003ee00496207c73cfaaa7356e2e4539f375c32bc80ba, +b41419d001d3a26badc7821559c010df1280622ce102890b4170d7cbd96a438d01d8fb95622a5c7a3dfaee15ce1e98a0006b76340c800580f10d81092a4003fe, +30ee337ff6f93fdf071ec21258f60f70759750d4c5c42508caac1612a4226670a13b08008cafef4db07fa688c687f7295d04fa9a777c1302effb21dc7753b2d8, +c0b7807404713633de10974017c8130fae625b0d02b0c773d6089bcd2216a2cfe74ce80783060c0264e03a10c0c2e255f64610c0ba885c02e73b854b70f56892, +b1702e00013cc0b225b8040db8e4b68d83508ab8eea0fdc1146c81c005f33c56b55f1f1690710ce0aad6a334c46e7b61fe2a106808800af07657d1ab86251684, +8dcad257107170a1fe5517fabcda263fed001cfa23bb18ec100278fed707040238062cc197980603074d58d0a8b740de1b01e2171b495f028fdf1f5806d790f4, +73dd10f09d4686ef0ac59df6dd895f78a53e04706671d23bd06d21ee349149cc01a0fa1c41129c090fb3926f5f7cfb830c08446848be02a2fd02a0982062984d, +4ed0cc440000c1fb24b241de7804eb22dff7ff7b2b62ba9bfc1fe07a81c7970d00e2cf105a1a51d4c5f673966a91f489c0a2b38900d82699e7ba5c9f23f4029e, +dbf62c8a4281a5e8246bfc1e3f2c2bf2e3d07842ae37d22f1fe272fa34c4006718a78f5ea139da800e86c36b6880004efe3c3bc82efb1bfda3cb2c0a6cef158b, +0c3e1b408319e96f7217ba830760801006a4013bb118b0f84d056401d102171000c00338b604844b3610b0f8ca18d0acdc8023cb011c0b300e148001825b2062, +e5b84d8ef94ae9e04316831870f49302285ca493b386a4817f7a39ca95572aa98502741f4e8d5864ebae204014ba831ebfcba1ffcb2c443d3ec0d12c04d00c46, +8a353011e40818c12c01a9cf8fdba5ce0d04806680541013bbeb4880d18c04186b2b3f9c024b0075c11268069a88578486ccff8882908f0d406fcc1290285237, +e66b153c1836015509fc601c33c3e240b28a926d159cd7c4130c804a70f47bffc0020100606e04d0fa7bffd634dc0f5e2ff78bcabeb7f40f22c212d0ddac8fdb, +7004fc074ac054afcf6c04e8270a4011bcfecb98001e32b3f80ace227bb004e4ce223b4ccbfc2be62cc30c80122022eb150ccb420057f00161d18a058f39fc60, +356102010327d02b01101c227cc028c80880b9514ad23ef7bd126022e8268e0ad63fb8eb98e3e75abcf6056e70048cfc9301b92e11605f3820080ab032e0cf20, +ec33aa9357c84020b77902b5bf8341052163e80e0e00d583ec4f7afbd42c35ae334c9009a0bffc3ca6b137b0f8aa0f16e5b0bf21101d3ce6200265ae2830b320, +05fb89d12ff832011001e03450e1603032330016157fc012ab0448128229560510b015d4feee886cbc2950991b06fd320c8086101e44ea6c02bb89496e215411, +9cc222a2128033c4febe93c14d1033003400aa0c552c30d39b30004e00bf8d28e4eef30af69557056fe4b7d9497a922e0a5a0403a0e91c1a1e0b96e2f00a1a06, +8a416b707bcb840196bf472d2d94032d0176c24cecf883c47017ba89ec60300cced120c82e0300058098a806bf8901c0204c57f3072a8178b15710b2a0c83a33, +14603b2000ca009d421a8130642534338a012e81169825340b4f007ec029a804200d3b0bc86581085ab3098f416c6f4d202314060f8645ac6070fb33d9463fdb, +8d5f600006004a010b8152a0081e0b2f86a2c2406029663c628ca4e221bb26b8dd14008b65f0a82dd2520441bdf0c74b3e9ab0181a1da3ba414ca80476011c82, +3b54b42803ef103c7024a316bc824260e870035bb4903aeb87e51013720e2ba1bc8131ad35ac045c540a824ac0441000885d141031e03d501c04004684ee2001, +e4262c8401201de031d0cc5200874037d05149dd0280176021a211e0ba168dd6c36b437fe05a1644dcc3a0803de408de5fcec3166048395c9cf5784008e001c8, +102bc4f7c40050e3ea0e1880f200c5614ebbc6e042ca2c68600be0128c01e2eb946656e1e6b2874a44b8300c701d0a8043c4cf2c0538134a08fe002d1002f810, +acc16f6201b06042fe4a0fbdb08c48cb48e12e35a5a101d09d68009c8259a01a4b4aac04acb8098e1c2083d3056a807bc22f60889b3e7401e0c2316088c3dcf4, +0033e00c6801b09a0a85a86e115301c700521dae6b0548b61310c24215a03830c6a9558eaaa56194e013581752c0a8614fa0c5abc7b6860116a84269e0c10600, +cc022af4de90045b30624c0550e90eb3728e26c525d814cd229cb02441058c5d501441b13ba149b4515414dbae47b173ce36a8109c03546dbde02fe8da4481ea, +801240dc8226986d4480eb6201a800a70179af20885d8488af4146115ef0bf4235ea4450e03a30058003d080fee10bd054a104e0018b10ac30de8a5d748d43b1, +47520b2e453ee3cc80074031541003abfa40938b09972db2044a6019e0120481d445ae4b0598f636d2ba0203405b24da90c8a087985069d34bb30c86362ded72, +1056089f2b65da20608418c1900f00f0456ea973e2975ec950e907e466442de81b5b66530953308892371fa303c16a8ecdca1a0404ab814b297b221355045faa, +17f4809fe14ebb2370fef4035fa01aabcb9a257c8124611389c5521a7e81320bc187044101f280c90d8445784a8b3095e00b13c603ca03a4189b2203cb2ed020, +79456e710c701de203788561e821fb1168a5ee808a2505612db3579486eea0018d052814bd82426161c31fa004f4aa5e04dcc55e29cf588006371b2ff59a309c, +89b25163411bfd82de2e42a05ce42abe33521068446958bb830018801424ec5131d805353d126146e126831a9c08b171fc303294b4bc8a8cc4c4c6a9a013ad89, +f7c06decf61807db00d72101085d2489fdb4ddb088a0045cc00480d8f0671b1de0167933aed16bb4687104b82e170009001e0300a8c62782b5313d8410db436f, +431cbb170747640bf4d08a101328012a47a8a1764c5d4497ca2d4aa0de13c7581de5970522435cc6e1ba5e80264f8ce06b94e352b7cc81fa514ac01697b1f32c, +30284f3846a9c56347f74020c89c8cb1b04462aca50883c28286d1e4301f572d1c9084b1055818dd6940468a23e4a85209f6f882f240601cd25ad5f8457f911d, +081a0d09a2d168340de81917839f3140e466a44172c69dd1987166cc4c6ac6638fbda065bc1f4d8c50c688ae102a1f6519e90092d1963a70bc42d64790e39278, +1d892f396c439804341b2d47b531f2c1b0f80b798c3a886c409febd55e80c762dff10500069c824946ff22ddf015930a38b955ec695406a3249246af606904ca, +f60d01c019b8395404e6c32f7206295c9004462e7f60128091b375d8ad09270fc0797012561ac82701a007b82328b1ab8538a1385b11108248012e2177e01adc, +80dcc200900156ae648c3c66364b6ce61a62c85b51b253bd2415330b590c10784e08bb9cbda82b5a511c8b2227c35b2bdf3106e836d048c8ab16c00c780ecb00, +eb2d06180a0480643716c00e806c1490928187619978dfe2acc4b51611447cc858fd92ba24ab70e80d8024bf1521e8f021036002b48583c849200d380ba5c81d, +409a2426899b35c003209774127e4916c962d20dd86d0a02dabfd4cd0108268704b82e1980c79b04bc2d94121f0debd076700368003b006d40cb1a0a6449f92d, +2f08276780800d8d527698264f0e22e60105973cd70080760114406e3c27ed0005144a7206180a271cb0c9736d9b3c27980fbbc916a096d48c340066804bb206, +f21d6780014e12b0a2ec35b429e1c9972d0138272bca8210711216d8211bb9d4496232b420034447afc96cf236e027852789c97ff20dc814ece38a4408a06cec, +670088908557d15f41d568008eeca8dc15c14e62cada4340e01d901b694a97a3449106d8fbfc0149c9bf40fc406f0494c52fb6249fec2cb6ab52b707e09c1c29, +0c001ae0a010006a18723e5d6037b167f41fe680528f0678d2522794ca3680a96197fa013eb3850b00200300a08ea32900a74012a8dcc044d6801f80928c0188, +c317524038bd0802cc00f4f04f1000a405b88464e29b1000e00800cbec4112e05b1c2894b1b725c9ef0e8c5d1eb2eb22df9106a82176caa5014a007f59128916, +3d80b3a42adf0a96bb64a073202d2517e20a98ad2f2b00f10fea23b4c2f3aa22fb2618804fe69021004806fa890180496d4390045e1ceb63146e50181956b416, +20feeb2c050182ed1101729c0e390241b170d100a8015ab23300c0411260c0c4d5c40449409ebb2a2a00ee003faf06780ee82f1681ef64d10d0fb82a7a0001e3, +1114049a83b7d236d25d582e81a6864debb22078043284ea8a0300b580b5b82e1a843562ed0a1261056c020260192010e4ba6800cda000f0491b07541221e304, +c82fe786c6ef7b8c01c8d2060103a1a3200060005ebd00e0cbc00168d22000fc0114611d18b4f44b8642490086a349b21c964b3c0041cb00e00e0737eeb04bbb, +72203779e06068231402a840144133b35780fa76caf96f138e26210b08805dead44217e0b63a4bc6b64ee115a00d6d00e8009ba0ba7cd5ec0c73bea52d690800, +9401034159432c372bfe81a020bb24005c2ea3b3bbce0698c06c1de5b374f1b000be3817edb69e4deca1ca7409f080890c0040180830230c2ea887ac85280824, +03d140bb94cfc843fdc48bc15b6b382ce7eec43c7193e413d06d3e1915ab4e5cd3b328e8843e6b99860e0092a6086631cb019584001000d700256d1a8017eeb4, +352edec2016c80810a4a004030006e80b039e881006035610794346900ce2cf8d40f95ad0d2112380c831e020049b30031d0342f5c823ed1dde6738a2aec443c, +130738122c837f4029e31ff804b80163908ac5a28429b60130bd34463b6a36fc040a803ac001280800b70c001c801b301bd816ff814c0010ea069875ca003f6d, +defa048e0177735d447fc14012456473681342aa2dc80019803b2203401400007300184010a8012a0bbbcd79cbaa3336a901620073130608e5b2050e06142cd2, +6c45f8cdf3e57648933c2507856522df8e23c8d0b8ae77737a9001541914b595b6544066a334e783d298406262b8b560046681be1011231ab00c2a3871d32988, +b48a884860a9a34952e12882fed0e04cbb4c3803010fa1e9a001b30144bf1ca0f2effccb1e22014390dde43d503937cb863ff2707de00041d1b82e64936b1811, +b8c3ac6f07b42217eb748088ac5eb823030ba84e541355b9ebf40afc37a8f30c533c543a754ee602a7b35ea80f0a01a400ee504c88047c0b84b2a393054b3a01, +cfa573762c3cc789ee4eec524064241504044f7f201260d8943affce7ae1272b21401e13ced72cec133bf40ab8c3a2936c0e405c3a9300a2c0610e2783f6a24e, +5ad1738b185a4f1c017931e134c56812da314f1162c0089601f289caa2626025fc001a304491ebda959814aec95427e1337b78058481148ea933f22c08c6cec9, +514e048d289b016079cf298004e401b9ae500cb0c82eeb0420817d00172b08d6177e4fd993f6f407231bbc02e0d3f584f6c415ebb14b2d14811f2315604fdd73, +fefc262080fc335045e20186e6cf6bd20ba0fdec5ade4f8a8236600de4010e440a149625918381d03e21000a20508c55280e1c4d332cc92a13c82b164dc8d02b, +58000245d1e544890cf334cf4fdd116ad1f30a3f5d024e1348e0db20e4ba4fbbd082300095cfc4040cd002f400e5311415eacf0371009d55c403460bf5810ca0, +fcc63da8a1019013044173d022021238c23a16f60df053fc202a500e8b82aa01ef4411682b360448309aa38da47e36cd0fca01f4c698310e9ba44f382efbfc2c, +0e01a40ccf3ac714fbce04ac2229e40908cef483c22130a427803bbd0279d0a232fb8c3a40cb0d40692250aa13a35026b223d00c901d1a212725cf4b56244153, +8a661045bbca9204683fc2f1137c06f3047a4471ac136413fb079ab638347b800c1b00360020d2e54c27182a64c820ac84a12dd401320698043b0b55d301ae83, +1a002c43c4d8841b04eca11de3429d4fee084ca0f4c2c184040e0bafa267330482186c0315acef825e08d44eb04281f88226f9f63a344f0d5010e7e40d77d01b, +a080b845780cfb0167d45e98f90a470c39bad300f001ac08b2409760137818d0e6885143805420e765e7bc82fe8008b5fc7cf5be39ba9315b4d314106282f313, +1e2d5c2a16a5a4ba41ecea0e208011e03072df30007e0055805c146a5000d8c8b4b12db21c4c44032473318ccd07c81b7c4fd0bb776e0e3d29e2520c8da72280, +3c48a1060920209d6b310a2852efa920006d7a48cb0af0a37e34025448251c36d0294177a263f4517e15ab4119a9147f00fe020b820d50935903f7d15bab3bc8, +1c5b00fc447e8191184a21b1937462b9caf2443d348790239425b5b0ac3eba30006003233411ca943f8e801830c6b2832ed222e211a806e8126824f260f03859, +9049102447d314391a200009e0a64934ac4669840ead2af53c742f0f012b4b19520b4dbc36016134a4546d9c41d59b30d1a2f48e881411c45a9401600bcdc4ac, +ce7c8d9c204b03b20b972942560c46e74a61d016482b0523448e18903ab1a8b370d14e802a87e602af3bf80036a8adb4b1942a3de6288384459ad426f50a7eb5, +b93406ebd0da4357d1a354056c4dc72b95a8a8082a9d4b8b4eacd2056022c542984905809a946bf86f9808b38747600d94465a0cd8ac6a34a9142d4d4799509e, +0b08b823343321004f0d35ddc7a653ae2cdf6d604b3dfb8b7880f2424070ded2048c8099141233001c4dbf8006b3407b02aa13d8d1d0d4345433ad4d45d220b4, +01280fce83482838f13030485505abb4fdc02add338fc5393957538b2c4eb12d8553aecb07000b324ebb09ec6130ac4ea44e5dcd0e4c11cc1d8b0c0680697119, +d3faf22cdf0d08484f004dcdb0f6f455673c90509324afc0e76cae8050bd837205da22386d4edb511541a3946c1450770787b05d14d49442053f7584f1d300b4, +142d4550c3a18c4d60e9ce50086039a400683f07c5b5ab9bd5140c1146d03fb1c4863ffd3e3d50040447e0e65b42918a0d0021e03b114dc509da53cfcd44dd4e, +ffcc66b11e7b160d330f006311595416f8c87ab51c0045c8412041a1465bd411ec4e184f9f868d33eef48e68c7bed35cd282c05d30eb4c51e1ba1d4027c04eeb, +b32280184854a5cb8288bde000eb3aca042881cac1157312a1202ecaf3d229706f1b0af84710841140663b00845152207fc011f8043c846f0022c0739316b14f, +142051dd1aefba1b9348950ef01d8d00f600b40d291323fe359ac72220d6720478547505d6634ad03ab30c3c80bc4e8c4033b3016202d9f2bbee33e1ba8a009d, +8c266934a8d5d68903c00880dbf05424b6c10029383ca00c1c81b8511cb30314a65055c8cc08b061c453119822d3730b3b7a036e3323a07480c808a666555455, +00f02542327b846b0057c5538f8099341f620db81208801d023ba064594ae78274483cd50980cd8635680e93242c34027404ecba00cc2ba8469903ca3323006b, +c8005eb5c5809b4be8e3cf3c56905569cf2bb80c3e80230221a1bb90510981c7b9e64c325c58d13d0b8579e0a9b34f85d4fe8181621ef8522805f1d37d213cbc, +257e0102103909000d5a7f80a1a0679d27e859d98b17a1672100f001f20960c0b51234f801484c228142611550155601f40383f3633d185605c64dd1f3033802, +0c4e08801c284517dc0080086008f0dcac0f02801e402bf8679514425691553c201830108281e6a00060c50c007e00fd00d0ef07900f564c9c0099cd1490d97e, +d7bcb571ddcf3c56c081bc416d4d5c17064e2a8ff50648129d257cbecbe002381b1412c656fc0c5be07ac35bf55660a08e1500f800d481940370e232805ba781, +b0801e18373d56978900400d30114037e58189e06a755d5f075084784055b85a8808060031403e801e481ee081bce11d600a68b2a80055017d001a085cc1cd00, +40910b00364ccb0000400260048eb52303e81534c0c78a57d4d6086005705b2f0502069aa1183817405c8d8179a020781e78f50c00d5939dd532a80754840060, +c5c45681c16cd532e04e10008a804b6d6cf545285c2d0340c142a090385f0b09c8d7eb5502800468009056eb7570fdf9fc5e0580424066830218b3be57ef95c3, +c5cf2e0310c0016865bd5e418008008260d0323841000560fe4c00200108c0150d694c23d120643e8e00dbe06da506480092009dc0e08c00a0008e3556f57a8d, +02628400200a4809150f2bc80ace3280e03461c54308407aa27dcdcfb4aefcac764200b00ca280c7cdbad515b037315861567d2045fcdcbc317980e25183183b, +42cf1e56f47c1f74633f80ca5569e8011804665800a08c3d0290064ad8eb7503f51208611f32bc15b13500a802ea0596b32e006f050188d86257bef584bd00f0, +59fc4c00b003b08714d947168ead63216315d9008010b022ab044c830cb63e80e87b02d88928ac51618f7dbaee083e1536e08e0d0a3c81e4c4c540736527b441, +7721eff20452024c811101900500c0015d59af60c51c008a624159cba04a9b64e00632868e1514587905fa2838a08f00f51210462dd74d60a1d1321005880ccb, +762f0506ae820120876000d8057c826c3a308085f5bc82015ed96716871d001400348300e01eb8e63a6181801641001807c8273cd820008040f9bb07e8040f56, +616867815834a0d2960030023c973ce0e02cf02311d32e380076629ef50f2f0024d990f58905fa061d668081029a551a68059206018074bc18485b9fd9cb6002, +d013080038402b6054c8cf140098220ee00ce0093adafe8c02800f3813f53301566a608e1568e1d808001d60038366eb0812da02400f2008a366f533adcb3f2b, +008a80d1f20e50e8e82e80beea924828212000e28001b306b620ac00cab20a60a4c1a62d248a868a8027e02a2000a0805a0402200920100829e2d930ce2708e3, +4805ad6b70836b155cf9b32c9525a80ea013aed683ad003051bc01c488957610821db06a2d3b10202be0352800120199da1781bd44146259ee0042a508b81194, +8b02800dc81008003481574f00d0040e04fa0bc23670e508e55b1783ce4100e823e8042e070d2270c20d103feb01b9958bb687150084013ac170316a3400404e, +d5d6b0bd1dc82d8ed7c636b2856c25dbd909c4f619c85c355b39820b03872d6c880612d96bb202106ab85af1da9f4f00401a586a2eda3be05720a86d066e0401, +020e300d0a006260e29663ad6d915b985ba501b18d061a8667820a4383100080050685f7c0b4e56da56d1f5bc776b28583406ca1012260b6001ad8640309d756, +e72b6daf0a51c09160bdcd6e8f5bf7d611f0bcb5c7385b0281e6e07c356acbdb57d1684055c061a144b15bc155bb8d6ced0673db82a0ba2db18d6ea301e7f5b7, +d803f25bfd6cd41cc7f0588988849600a11ef8022cd7bcb538560070072658a55a08f79d85662b5cbf93d116c2f50a1232fa5b2ccbb1b56dbd6f1fbffc16b1d5, +719fd9024019801748c0f6b31517c68d5020be78d98240136002d00af22e1a0e6c7602f8c08c3697000940a18b5f5f5c0b02d136c2fdf90611e259acd5896d71, +c95b76e2b41d6d2f0288840120606073b80200db31979edd081066a95cfd6c006cc5ac0ef08301808016964d09265cfcdc2957a01d007680805c918c3fbb7095, +daec90ce8def26d9088023402b40bd2c4fa3015cee0ba00c2b74f1b301201a10c2e56983d8ae6e85409ce8da26816a36aecd0950e4068047583497cc350200a8, +97360c506dff2f130140373f1b00f881e958e3d6c17509fe6e0f5b97801ed068c0eede01ece176980bf05c4ad3db411a8f00c8005e0902808476002807c45c9f, +a03800754d836d7724d7c5b56809802d033e00a51002f4031fd9cbc00278001c004ed64a9794f574606cbbc10677bb25cb4270618a00608d6100a8075e560317, +decd0d850155300760c1656fffdbdbb66057481076eb5d305a0d820068044e30e9d95ff77aa301220a565c2e37db6576cd76935c26600908ce6d6709003ae0da, +38730f5e16f7e44db0f8780b5c98a218163fab63090062e024b78725006e01dfa257960060073cb7080052203724058a0326814540caddcf1874ddddb1751058, +14afd729b7e18d232d7ae1d8cb208f1b029877f1569597e87690ed06bd5800600315008329dc01b5030a200a300deeaf0b000de0de6d5f2f7903dc9035dc1d73, +20d802001060605f028c5e6876dd2d086527a6de25a008c89d2800c8805136eacc228802f6058c97a617a465760b80932e2880a3b3022cda72002377e9c5cf72, +5d6417c02d000281bd82c9f610e077fb4902813bf73d50753804eede38820f50bdbd6d0b80afcc2200ee4506fa5d70b354b71d1467bd8293b746e038e003e085, +51a0c7f0789581cd0b5000bd0c05220d8237fc2caab304b603fe5eca57f05504fd07ce5b81b5f34510002f1481780bdfac00f80442598b20373671e804f685fd, +c0257c0096db3842fdac8e8d3e4a45018878d60048015cdd2fdacfc0e8851cd60026390ae0556b7be0bd22808c21809da6880506ad009602979de069dbd7df8d, +e4956ecddbd7f6fb36fdda1a0c800ac0da35a4fdf94c3dcfdc0997fa9500dc04813eb0979d5871277c03dfe02b01f865737cc3c12f8dbf9d11c02cd22fd5f621, +787573000000000053554e572c766e650000b5da000000004f424d4400000632de90f54575660302a6de9317eb3d369500785eff303f33ed230556dff597ebaa, +e8d409c3a6059932dc2a25e1819d347210b04061005c0a051520420009c2040c00c00166b51000b81f9e0ef110f83805434f4d50000007cc434f4d5000000632, +4820e0264c9b3201246912a54a960128254ce1805b1e418a13800103408cc8920c048300ec18e001991668c2b821c3a60a003c485030c6cc20c7949963200714, +ad7b37ef82ab76cb23c6a758a921e55a73cc9b3670c2d0496e55ba58f15280481cad12289845cb22a9234b9e4c9966e52ce6d47143c34e8b2048d030a58a932b, +7d466cec0812208c6aa17100c8250cc002b0a008049070581c9673569769fd1a53a31d8c0843868c655aac64c3062f041c4a5830624e1a3d7ca193074e5808a5, +8451a68031d87863cd67371020e016521ab1c2100c5046e0ee6dc2c069217fce0b2548a87e3dfbf63f3804facffc4254c0a1b3bbb758a00648e3864e193972ea, +11e5102526024a91c350c3033afc30c49218488c10a50a558e68c1124d92c0e40386f0008000143934e840c0805b406928c38dc3506a81ad8e321028e0160317, +8ceac800210c10a21c2b03043ade00c1e005592428a10aaf02624a604839260098b03b06e5104c004238e440ec8504d3865c43820c5ef86fa545399c4200815c, +0449b0e840234f1013e858b34d102081f1128630171862a7075994880901294a043840cb2612f57245a1046e9962c8363750824412012c909cb2852a0503c18d, +60020105925082590106146ae01604165b504c54041218066c8c35c23843b5345e146280978e1e503842210574516881bb2bfd6c2abc0000aa8b930d29ada313, +6272e10075241821230d3bb09b034b1a3ad2608331374e921d768e17f84a4b8c0108a2f2e0855f83226daa14851ec808540f1abc3c401623211db84509267878, +33ee20030107622af01680095cee6139a6118e30e08710c362412209037c38225396651f1032825b10e215b68c03dee9c0575f7efd055860814bddc874539e40, +86539c68bbed1888b921570a2127b805ba5c0130f8d1eba11904b8c0280562f0566a091860480206d0089a581980105c6469424809388a65a08919989ae01f6d, +630c34aa3b9308967724c040d4339b0844098437cc00e1008f52dd18bcf0c3f1e6102163273f1329e33437ce004184121d1096c08426d29882a26000a650c200, +98c008212db8e508279d78f229443b103e604ac80a6cb70920a910c998b90053631bf38914a29e8e6a4a210aa2aa09b1e33ebd4cc0e84493c6f897bb34de70bc, +8399d0a42605d506e18074486003640ad911b8e016ad8d22785a81a48c10dfd0ec30bbfaaa0cde79136d8294a08766e7c0a8091078c0d047042830aa835804e0, +0ad1c0f5b8e215b0472280000c5c2b22042f15805cf9cb00a14e9ae1594c0ed0588c19de2087367c30703dbc49070e6c10dce66272e858fe044618c213885004, +717a4304631d20337ccd1196d3869160e600bd1d8e668a550dd8b00066e0e0197689598cee4093bf837320903df0e5e52216ec556034cc2990427a46c88bfbc0, +1b0ea03a6f88dfdc8e4d34537e14c201031bec3006ad14a6208b5288a602ed3bd04d01c5d38a9710905962eecc24000d0240b71337f0660480d390418c3c8c0e, +e1018740a402ffc0940203006040064c01a880120480841011a0e3a50d182d9003e005c50e3353802d7f1d80d6f762c258ce24e3278b141a6252010464e0690b, +ebce56aea578c9009600a82006e41c80a014c3984800522010c00762728189c0b2040016bccd6d4e1794240d6160d0c03bafc99f07a28280479814d01eec6887, +5100f62e60042f457e80bd0e60cf0231875ccb0001f880007f20b81e022a80048056eea6140478201293084ca42208685e459ad40c514b8ab2908214f2f78167, +6600400120771902c542101080855c8bb2ca4b2e41a60b3120c0940030422a0deb1241432bb0ac10784e200c742120049402202096b240c04016d8d300f63260, +b0c4254649c00b41d00a4d64a8f2d6ca5fe69299bb2060040b0b98ae0c8b51cdc102ff18c7529a62f08000ec07005b227e6954a402a06d19a1e6140019b86508, +d7c94cf62e7b8dc9a73ef34140093862a0805a0d8bccf770b4e457c00a5618b6372436309a69c94b300820015d7bf5460d5b57d3bc38524690040448e0ac69c5, +00000af600006b86000001014f424d44b4fa3101000202002b4b106002688da0c0c1ebc04532808188e5ac1880c37fea1268006895199ff9076659cb178a20b3, +7009254ea458d1e2002c241490104442deb8a103c0200383000024e01f9e0e6600000af6434f4d5000000000434f4d50730000000000000000000000666f6e74, +e0cc8009ea0340d15b6afc00e8073033fe01c67306003340f900af26036038535971008c972f0d800190499427559264634790133b6234984583060068e4b8d1, +c68009032e0cb030e6bdeb0180d33b003c00e001200cc0f2a301c40c103180b1e02300840d8069005811406500ed0030208d2d01e000c60403c066ce5ccaf307, +6a940d9b62488d7fb503ce644940b597cd99f2e5890f3c2e19a1e8b2a9cdae4ee1e7ce1dcd666649cb0080cc4a46db19bf1d11620000416b46c17900c312a15f, +00e0a065438df6fddf9efd7bf778017df76e04401080c15839651800c237c658e3b9c0326766cd99e1cea577568eb06590cf4eae7cdca070c00907eedbf84100, +130149404540d043a28f25ee3403a480ae882eb4100c20ae8068ac3170a27a6088a4bb3e00060470ee3c620e0610a08bbbea3020b203203bda385b3ce45196e8, +4a2000e8722e4000429cafa50fc0f921060e708494120c38f18004e00c40de001092bda2e8ea0c3c2ab900e810000fc120046643cb2c7be82f04c584db0e10d2, +8c51eb147dd4af481ea6a32eb9ce247a048331251104a42ec216278c724a2ab50070d33dbd00e90d8f3d0c0069c0a305fc0020a025d9d083a09146000248ad21, +6c3421d08cbbeb28901c2634503bcd1400b1ef55f2207c0aa1beb2c28c089c01e11e4435ba5395c4f0b4ae4d9554f4b998ba3800008e4f019153ceb5e6ae0b00, +81f9274c3681810037b13fd66d1750297f8004040c60d86500c2420bc18147ab013b5b4ccf285f411f50f5a28eeaac33c35950ce8832c92d18a43c0384374061, +8b3b4e128fcb70e49ab8e28a3bce78e3e3242f0681415659280eef62a300814122317f2ee3090620000e73975e86a5047c88410c80b80b5d0c10fa55f2c27f95, +009659e603003796e0310c9031846203fa688dd67c353c89a489c23740ac927696b267ad8af2af3f2578686e180ce17e410023590cc038b8d75f80010e031e21, +02042340380284213840c003042c406007839c735b7a925f09309ce81b0c2200eb86320b30f0c6bbf95a8cc081030cb99653565be5b51904140c1085cd05b525, +73b7dd7601f90380044802803ba1741381c00188a2eca36f7be596ed043df49bf56e569dbd1b386e1497e238f71459e36eaa596a335ca1a540080214202aac90, +00c8c07e001480d5b22570b84459e393f4cf571ffd2a8f2a7e7a57ad9c9fde66c89e962649b8c8a112f5eb001a3924573b407092e5177100afc33e63ecb2e139, +e0f87873992d81c0c712f359304e71ca65ab5b11f055b90a3c9bdbc76c279f390e80b10395a4e4360720cc00083700c201040214a01d4070be35fbbfcc1f7898, +1b00400ce4d52a2c135993c496acc93e11fad087354b544d8435333a50117355694cca28639ad0783d7343d0dc6567182d794e4f80004d0d5009da8cb0be0382, +4c495522521f2d32f09e718a221715c6a0d4b0b9e101184f8a3c0443016392930378624faf3cf03b229ff2a29e010083d4428d600f7b66c9b6e41ff0d82245cc, +ab341244e26a10304ac46397157fa024e50dfd329d0fc425008c4fda102157118527673bbc48ad08c7910d7ba614342585f0088e1c0cea79c7983d000c310007, +0636b18d0110f11806ec30590bcad7bcecc1c195ec6310441a8bf8ab6746d357428fbccf70454c48018e1519494222636b5dafdec4c6f6e4ae6210cb84075429, +f10206b00f62e4018776fd8961408083f1822392ce3b0011648f30a7731e3fe18d730240e40198bf782e459ef07cc72438dd00861b94c214a6448e293ef129f3, +11263f81e9c6231a6b08020700017bd35b5ec67f08e14929768cc2dea654c89ecaeb52c63254bac76a9139008206c0e0e1001c597aa8922220884023150aa8b9, +3308e05aa844162517518d3aa7a4aaa944a1787cd4373de35db003b0aacb02fa4090a02161830fe70107080206eea081801266453aff800327841603c208e504, +6656b39be56c673d6700c610ac5a46cca760c30110f8000c104f1d6d34731d9fad562c4127320b6b6c5a7110f2aad3383c850310cc2d649d70040118b5aa8b7d, +04e01acd231205c4002942094a50ec00334e478a620360986d6bdb6266c4b048d8c656b6b3a56d6db5ab656d6b5dfb5a6d694d7b5ad4a656fb59d08656b4a325, +016145facc68be57f7d2c78a564c997cbdbc25496173bbdbca94d89312d9284d87ba5f16c5bb42d219662ec711d20b70d2856e75a3eb83061af702801f02c00f, +ad83320b60207c613213e31c0540d03400e22741f98949701dd82e80303b139d66b06792fdce001060018b4b9d18b16f0104590045e31a47824d4a4e5b14713d, +8a22326a7dead35e666453abccb892bf5de7c8660380805111462d9c4c886cb92aceaaca69975d59655355d379b6380e055fd62245593066c0a020b08a094c60, +c0c265e4b0fd682831897af8a9926b02ecb390a3d5d83875d66a64347a9a489a271cf8716f819c5ef31a7172e69ca419c20360f021cc6306d9207a490aaa446a, +860ca0cd097915110410e81730820080b40e005000602800d4a596343a47909600810440384244ba3a00c227130004097320000408b4080015306478c397c965, +6d926afb4a481e2489952255d6ad46a68646cf51020922ba8e2d1258329e455b9d23b10d08bd2a4ada4bc326096b24d2ae34302e9de94d77d45a300200a20893, +c3a7bd00104c001cef960c001e078000664dfbf656bfc7fdb6b6bdb3ed3943cbda8d11ffaa75deea11e00bddd45ef7bc5cd72637493860e42c9027a8c13a811b, +a79fda6abe578b9c59d242b6befc6331935d05651dfb5876ce8ef2889984e33618080a7617399789e2b27ec9b1a3001b0c01021a3f87b62b1380210046607100, +2eef591d18f8e1f677d8773b768a1c4f8dafad1756cf13c9ad89eaf0255f7bcdca756f32659c9004cc3df6b6d274a6219e9fcf3adf44e7f930d23a57dbc95c27, +0d0500dc8af4e71876f9ea847ef6f8d2c34657d4959324eb91c09a09a02ab4590e1441d05cb93a7703011740e004c951de7d94781f2eaf8ab6278b62569c2e4b, +7ce4a3c07690a78f000c62183e18c860d5cae9811102608880611238df1875e4cbab9e74ac97ce90f491c7f74a288f7a8a0866c8c1cf3b3e7f799265deee6038, +d37a346757246d82ec1b2441e6a8e0ec25d13b7ff7db070c45f7cd9f57f0b32477fdabeb5636f98007cb1cd2af3ef5d9d35f1fe28c8c76ac653012d871242b7d, +00bcd8ae0c4423095f72a3596b88ba6851aa07d497085ca3a39f028637d28a04684b88bb38a3b952a12f60b2a2c0d00a293631b45fb2a2d6066fdc6d79f4b541, +1f08200030862704800123800103808141f8d041e9e801a511ac8b1a1c4113c4e2403cf140231141c096c8378378c13409f09e12dcc009acec400a9cb59c9290, +049a6931c338d40a431044aa1164c3314b9292324c924d4ad299f0cbbe160a438f7911124cea21e8a699b3fc6bc01a14bb2f71eb284282bf807380813e983506, +00f6933bd5e18b96c612c168d21930c098a049e4ba444c2c228338c4744a43dcaa4b442902002ab242a6f853c3e562944334d40a2052aa731a04b23624c33c84, +5574405e14a85bbc94925fc4c58b40454311cc8b1f44bd5e8b9a125b9c328c9822281209160cfcaac3d70b2886a9926a7dba323cf1a79600b83b60883789c027, +84479610c63a0480880b64c7e871c7219edaa71ca4c02eb3fa02316989424c8883e23b3e34a0920bdf8080070005630c5494f732b184782f8c3e5cbc63149264, +2b0c7ac88e884800936a2b89e8c385340b0f994b1db9fb3f08b662197bb288fdd92321a43a8b3541b2405d4c08b2b2a03d83e8477b0406a07674c536c2c71974, +000002001f9e0e0000000158434f4d5000000000434f4d506f676f00000000000000000073756e6c000001580000fdbd000001014f424d449848b7aa88800000, +9368f0cebd7d150df0ed9d43832fdeddeee0835fdf141afccf9f82060ffcf805bf877efe013a28e01ffc1efef0f7f0cff00e0afc806f2180040e0026d0208007, +69d45fcf7c52010dcd9dc07f77f6cd4b1d3d817f5eddbbf7ca6fe760fe70f9ee847f7efddab6f2437e421af8f7b19749faf9fb0920803fa2eedbd70fa3c000fd, +8fa767a217c97a1ee4af7f753d7ffcf7c73f861d23250a8f7e527f9dfbe4d5df3f70eee5facd2559e6f5e307eec3bb73ddcd8714e13d787f10fa0f5f530007f6, +6bcd0fafbcde83f9cf2fefa66ed3d9388d1a39cefcf1a7d7fb22a70616e09e3eb8c20b7a3972c901fe9a57d921d11ff8c6e9ef73579a0e3edad4abe19e971d53, +827ba8a187127a88e8a07f6ac24f42837ef20909287ff8e15aed20bdf6816aa036e676f0f03b744e05d0f4e341c9be0e1a54a8bf90479116e026ce950678f684, +1008300700c001060000070c1f9e0ef1000005b0434f4d5065760000434f4d50762d6368616e2d640000000073756e34000005b000001c6d208302024f424d44, +963c997265cb970b29130042c78f214713808204026ec2b4824c193b69c694990c9a306edc9461d3005c0a05dc92f06009c2040c10b04061b51000b815204200, +6abb60c49c347aca2861809c32676c96278d18364a030c708282316fdac009434e91244da2240a541673eab8a161a745356f6a9852c5c9157aaa2cf3854e1e38, +430741815ba0dac0a08c9bb0275b4c4dcd9c320808dcd2bc2d52c2941518c3e66504de24758360c073f8b2f16b53d8401d8c0843860cdc395c25c9a62504536d, +47ec8bce694ed3698d840c2f269f86231c610a0fe44270605114001028254bb80662cfae6d10b71c72973e997a2f6bd7b4b0a42909a64b31806010000450728e, +21046e99a2bb36044e824412012c9045af8cf7ba02c18d373240080384f4d66ba0e30d10cc48c30d4928514526da32404fd05dce04002f64015a8e4f96020848, +2e00008e5028015df8e6c8501659846964900df5dc60cf3d3c9ae840a342100ee828f0c0042181040f86fd161822a4135994900e01294ac13880be264ac46f07, +3b4016235a6cb21409267858510f1af09458333b041ab8450501059840208124048641c0220418b8d86bc016c8f21101948ec81a638d30ce1452a0178516e0a5, +3bfd34d451418834a3c61b110421d34d03d4916084046674805049026890ce850db3dc30498e34ec9a7a8a0531ea4883e0052fc114738e17851cc808810738f2, +086e2925960f21689ce01f6d646902cf8c3ca52ba08919982670b607b7ccb883e087e60008c34f00037c3842ba118e30c013825b62412209cc320e786749351d, +001d5295c08426d27880c25400a650c2e1142720863806036e0895024f096e812e54000cac0b785c800ba0904e81180296800186246090416259004270160823, +10bf04cc2dd1002050e130eb8d987dcdf8e8c0008960690c1d0930f031c026c24f02e10d334038c02a48374c4659650a3944d0d5bca4e43848ecc0334010a184, +8845000e009f000196231098c05f003aed40400223f0ace0e38c16404230ad680f98c49382acc730a03a5a32a82dc094ccb3d222a56278239a5468028ec012cb, +8a00e1305ce5f0f5ac30108c18e209220dfc0b03400109f4e11770120e48478208c445b41a010b6ecaf89a077815a0da775c7614de2fa69907445cb1c4264809, +b6de8acb26bf0d1f70a9fbca6dea9b826f9864a28994bb8d10b8c0ce08f0cc80af00423fc740dd082f9024aadb839ac060a32c33de90a38df30bf8e6580208e0, +c28f6b001280063012400056763282065bf04206048a2f023fbca5af8075b089e5086e69031dead08ebac36f0b7ffdfd35e0be0033863f635febb1caea5aa9cf, +3c737d8e036fda006b016ed1e1e564f1bb98742a80000cc036c0bd011ce80d97b0c4cf2c00728c420d7618834b20f2954529e85281c99d81a600b4b9043f0890, +3ed7018e20e005613a40480e7550da5f02ffc0c77e14702040064ce1018740a4808410940203006098cb8401a88012040a30426022809f0de0783036dbd8815a, +631afc18ad39540c2085cf79208f3de119e1880030802ca43168e400a0a6b042440290029b0440059d0b4c0406a518c64062117382003e2020521840432ae9b0, +1a601202d078026106fa8601c01500010123e02702b2e85b8d037dabc0bffa662a40003e20801ff4f886000a20c121768dd10b011df8dc077011984845dae492, +130010cb800704c0c8c0174370c677c64a38c610ac539c00002cc44ed502000a09db5c88291682808e11a0681029fa704901358100014d94200a01205854086e, +614474a215bd8adc01d5fb401210b04ce8507e62801c002ef4002e3de0a206d4f0712b49428008de6528cb5e52e2b23a3834d9245b580069390078110916f8c7, +d8c5ea85a0a8126870e5a42995ce07b624505747469a519e1dd9d38630c001018199c6b10570942354a52c75294c6d410da905b5625296a076b2d1ae2060041f, +000020c0434f4d5000000000434f4d50762d766e657400000000000073756e34000020c00000c2ae800000004f424d44aa70b04993746a9b0053e53047a5b500, +53c64e9a3165bed0b1e2c58c1b3b2e20809b306dca0480309d3772d604a0208100ba241c705386ce02146e68d2a416021060030400800a1600002a2c1f9e0ef1, +860c99ad73e6b41082410030ae4a6010040903e4943943123462d8dc0c3020400ac6bc6903270c9decb438895123470938b9c2624e1d3734c9036764490953aa, +c411033fbe1a0cc32c24490cf838a278597a68087b28e05614001c3022a5d40c6e3e0c704b09931ec80959a6c59c347a18eba04d183c2dcc9386ce1caf068100, +63011864598f619b0117a0285610c37a4696c0809104860c0434e90c20046820231870ab54ac29089635e19f36594d284306014700059a4043f104d03db29ab9, +c3263968d201841234b622030438e47870e30c10b68aa38ea493e0a1491ab5d2d0214b89011d550eb0a0611303402600a47c795206784c079bacc6bb09dc3ae5, +c00548040ec0e5211e258c10a694870c02904000242cf867a0bc0c3c10c088ab002a50a2140c0088784796dd0af0ad940437de6889c2390ee600e10077921210, +045c300c10aeccd2aa0c10e878030433176491a0842a40922040b104969463beaf32e47829a639045e18838d34a4a4e3e08507cb70a341a604724100813524c8, +91e840c3431036d4a0d34e102081c449cd058608c38d13e8ec530c01c7e68341438003c87c6fbe1d591e4ae096e01068ecb025482411c0028d2de7e8f2cb322c, +5ab0c479c8016e0d18d045da701e6ae096d8054603009c875d27da6aaa30fc1448601804147868018202ae0c238d36106521f12105782945534b2ebd8429d043, +1786873430178787873030f79d87323030b79d872e30d79d9d872a30979d872c2630579d87283077d79c872430f79c87872030b79c8722301ae7a107c205809c, +2ac197231e326163978748481901121e1110c1172e1e1ac11901105c7e2804995d4ad1e2a10f7c59ed60b403a079c803a10e788900810d88363017888738d0e5, +6460fba119cc25e0c15c081e8a01ed87531e7a4197531e8240a005101e724117dcaf1e6a411704381158c15c031e6221f9a1149e4640059e044e1812e88750c0, +8b1f1ac25c401e2200c2ef20087f4888dc7ffe79e887ca111fe2c1ef1e02f7211b011d1e7e688794877080fba11ccc2db04117541eba41ef211ae846a086bb11, +8187a658fe212ab0a447208aaaa53037fd8994717c080a5f879a30b781879c085ea26a26c20501800124a44e426a25a41e32c2ef2352ce19c2dc1f1e2ac25c60, +b90af01030880f013a0478017108f8826e0b7ee342e0ba60212c42cfc26f2d840418e2a12bcce5e11c1c002078a0f37f049e081a012baeed7ea80ac21198e204, +405a1b6e410c046c16c7247345e0216c87a4c15c0f78881a0cdf43001acce580c043cc602e063ce4602e6321a00ce65a21e02163d8de43c86130d7011e220673, +0e462c9317baf8c58314416016b4046a40812746718a052a18117d5d18e206240b1a0214aad02a320392e0063b84014b030470618815908081038b798c3104f0, +14728e20a0c214840800c3103d20810b52c820a033f4f11806380146302090d240021a88e3189d72344600d6c1c02186ba24873ac0415473304a310d0b12101d, +c73520600c43048105951caaa518bad4c4642ce904943140f8d4474620400c964dde490e67a8834814131ce205240001831ed3f00637f4d1008296cc610c7248, +e4048239d8640c6927cc290c6300938505221ca20924f0019054de308635f4d1c0061060a40e6c5820800cad7ca5a7d86770832de9d04724937c89c6b458488e, +4a19263a8d160eb1e5868746149f747848a00255bc22805a00900702ce30440e1318290707c9c11886219624014978c1410e31e963011060a8531916949637d4, +6ec843abecd8060b0450408537cce92ed34c20400d437c81a5a690a45340dd9048033721104f10dc3262c72c02601608907648543f81031c0312b0801180294c, +e5942035c3afa672ac81045cf004083dd830512520800d43220c214f68f85445881a90c0047cc904271afc39d133306900022cb5c12d649ce5b30cfbece7825e, +2490910e02adc8824f00ca0808820085c03a24200224d4e4740790de3123c5384a40020d68d31a3a7012431de690878985dea0aa2edd0140270b0154a0316995, +b05d3b6cf70edbc5cc01bb08a0c376eb088883dfe430a487585a870038180f799a0920e2216f382ec0141e78881b70311211298481802698e640d2d9ce614215, +000c60842420c00d8823212011b73842f710b84040101e8225c4760bb15d436c03b15d416c7710db3f6cf70fdb05c4760fdbe5c376fbb05dc376f3b05d3d6c77, +dbcd226ef1810d934eb00414902006f60f2861041f2ecf0705303005124e608a45123efc01594c0105022128a6013d2a2441005150c211a42618010976a3885b, +011f834397771309f24320710b53a002f3082caf92015cf6ac1202d035000e7626b0d56e1c710b540868a01803982200b446dc823d0e30b26032d27a20021881, +20c0028ac6c42d601450f4256e41e453021ea0684b841901ca09f01901953834b9cd65460025c8b37ec824ee0c963c33d02c2d022040027434abb90164de8d24, +6a56236012b026833ad4a226b5a951adf8473a7cf4904c782013830c20a011156d266631313042220a5290010224710443292e00800dc040500a509722060878, +75f3104edc02010603881b32e4fe87b9d4dbeef6a2c1ad98353b1ab29b4d64bbc16c673724dad3e614fbd41830427028bbeef5af11a009dfac0f406b5b6f27d7, +530bc876dba75896800710c441406698a416422f99436be58540001f1070aa0fad10d0097df31b00d234b081e09b90c4d52c1382c426004e504c06a620010398, +35bfb9c33d1171c5cccf781639ccdc00d294ebb6542c77395ce46e2039084c3ed4f86a3b2e873881162e898a232012ef384173e100d7d208e09d90c002c4d02c, +e0df0b80bba8e220f840c5231c290094edc070877f42df752991a1056a0fc3d88a63af83c11530057802a43086a1c4210a82241081e01537f4950143a0ab1bec, +8597eae0869d79e431826f79e1438e7085beedd0773efc5d20020f10cb10bb09790001766042df5dd7de0d28f46d88b0e24b657002ccb1ea7032101ce0482863, +2f87da569d0430c85241f97160be199cc17f04f10160fcb66c69ebcfc95b1c0f56296021e44b21bac011fb560c078ed01185be2d7e87b1211d5ff086236013bb, +449a29dc8293ad981803290227ed03018203600709200134283facb720eb193876430a7daf1b006151e81b110810020fc276083d0246ff90792662408226f428, +2812c54001cd82828852903ff7b3993a2390057a1b05df7a90b532f90168bb35b5f998005940801ed3000005308218b0210311798f6883012df0b310d18a3a0a, +a61ae8c031a3836ccb630204f8803ac8008f128c4104308505ff73b619988f02386886dc03851a0c931620f00832a825267cd2121d2814f7795a038b88933931, +52d80d54c8b03e2038057d7b812d4480301548c3d8c0c2dd1b1c05c518b33d880c811b94816c028183e122963c90052f3cc8a611980304c84a8139988f0828c1, +cb0346dc8d56c8c4c1409c1a3894c3f6387443389c813dbcb83c0480816c02c3057dc3015044005655d0b71bd8c4875848057db3814adc0d163af81b043885dd, +8053f00025c083f9cdeb033a18b53ef0f0c23e788323800185dd78855b500c0ccc3b010f4882e9030b0412a84111b8410504e8001760025854dcc2dd70057d6b, +70fa15512139a01358932920a90801c28c8790057d033c16621c822518821198f83c0fd88d58d0b7370ed0bc3ae83c043a184768743858d068005980b53e6002, +788f52d8c0bc3a4149a4b3a310b890771048be90ab8332801a244f0115516940394c9842c54881d21264041030b660c8b4883970018d2c9490a510ab0161901e, +4ab07407118981a177b0044db8040cf160bc81e324dabb10a93aea923960011010338b978c4938b1088e58508c1c3849819c848c29903538c558005a930204f8, +3af00058830504f89005c5d88226408085cb188d014007047a1b82206ac48798ab3a5a238568fb49847f0bb8c6933ad8c7b24874c2c810802c41c0d341063882, +a80238080111918515b8922b8f92291070728ab71495ca12202a88cc13549213819364812940403700f08112fc810eac78810e440052a842042380b50f880304, +cb3da88111500c1c7d1b013780b53df040cc7f6883dda005c8b7a8498e3482c7aaca133a9083d6bc24a39848033b8839381d0c012298239552a80d0090811294, +3d0b3904a00124e0438010b0cc31548c0c62d9032dac0506394a01dd7c07eb846924384101ac3a839580924feff393037f0281d9744b1f14184d29d8aa32504e, +c4855bc82639d881422cb40d7590052d5aa00e04b085c7b0408059500c0b80b5501ab0bf87b885cb034d013748bdbc723000f0e8cdddb08581089b011e2081f9, +b85cd037394000382520963920163970f12711998f05908594c6c2a73cb2a90833d88a92023a55f979cfe59403c018a602ae78ac3428a905e2f0818638491870, +364d5100080ec073800c0448853a0d840d5dd0b75c600f02c8b08d7128415cd890823545003485538c0b4082270300035840806a8c8d35554405c52880cd9485, +c450ebf44d12908588ff240519ed4dce22503e3fe19390ca5885e23bc907900281f20480143002041ec82611b04c44e070c2744450cbbc010058cb280258c2a6, +80212001620984dd5975b85dd0b7404042d699d292589583005e25c00990824ec8a0807f4084f9f0609035a0839aec2d8ae45cce96a4022993c480e22483e3dc, +84458061d0b7ca4cedd7871006832502571245806000587111d80d60d0b75fd8f8057dfb54043082d7ddf0856cf3c6dd0430d787e805df28e005704500222057, +10b1c7249641a055067d2304041804c4c24487873806a4412c8211c8ab571006861c4d1a72b419cb8bb54c1910d5dd3073500a6dd862a8d8c5812586031d8608, +cf39a0ce86ebcd74e62483a7c013d78cfcd560554ff63ca3d99ae5d94db1bee141585a62a1d941c89824c44435c66cbf0046e4cc2b6c410400108312fc049204, +62bdad07c1d6657dcc00ac0d15e45c4f863645863a2d819352c0ce722805043080b75290d13e2d44b560a8d3093055645a6841874b86cb80143104f0c3c5c826, +545c61655ce6ac2a94e0cc4109204ee30675da9a755d42d050067df385a33d4c04c83002dbe885dd5813063231d5a6fd44003d380252085c0704f00544d58339, +92c68c4c599082dd04c004234002595b2dc16470b865f03d31c03586d7fd840bbdc54e73803560102b0678e3595ced4d38c8185cc5a00058af2529f884cb5269, +3078138664c905bc688c0194800e68938055b2b84c500c15ed834998dc4d6d03a1a5ad70cfb86ac9550e694b6042a53ac01dbe362849a6fc60067d5b869cbb03, +b8028744cdd64a61601a18551348e00e68dbb70c9016193879cf08f6df32d8cdcdfa25ba34c05f38ea7b5f528ddf4db2eb910e2445e903dc4f9944399a149168, +002740004588303f045884dd78860c43f1831941802b1801e2dd70067da302f4c644800560623b70d88d66d03766b84781dd3c8529e3352fa80425be10108d74, +1240823b961604e0c08213c835273801842430360c481f045e33076b83067d0380b5c51c6345f000835c3b56cd830201c744002b669f64f4c8a6632d853c3036, +1a831668030ff18b305ba0003fd91272539d3e531e9b54b66b0151a5819c8b045e483055e05b84081216287f42a268e0e83abb6a0161b5dfe37af3115ba88031, +831610100498861305b8e516580a38c8b11a62390112b1856517e0c88fd100914f990333e892a0dada90652952077ecedb1cb0dada7d4f8f6531520490067d53, +16d012520a1404a00e03386801927a93065bc8006f46a35c5eb3067c9602eb10608ec6b08e71d3350e051bb54b78b7f627680ee6c8b92cb00960179082f3300f, +7680b638aa834ee8032564424968866da920b823d8046901f08396132a856ee006041064eb1301044b594c41860c2f7c48d3e192856c7286064f9b67e0528124, +55a84ec0732a294d34635da1c5d3ebcd4a38962e0324b206663848d6160883287da63673106809f0530404b0047b2e806353b5b83fa02e35859e0a04a8067563, +bb26961b4c046201866b6201847b3c0239a81b3b3fc03bba89632b0850e99e8e20163f503062296a963e70eb3880eb235bc011e0025c05200e94801a2888be86, +d62b32c0e52871030135be6cd9ce0381bac645c56eed2676d0b73e786b5ccceb83b3eeb8c582686c4310e80710253c12d36b04c0035220963e1760ec62b9ebcd, +030438844b1988eb3e28053af46e04d84002bc2316442016e4ba2a0370626e485279e9e37e80e4be208be18ee60fe981b9d99c90dd26384904c806ac03801c68, +6dd0b766002e04484e006fbe92377016d1be7d3804f004810119ab0a245bde9496380c908008486e8564ac0612500c9368f86504100504d045806b28c12a4000, +48cf616dcfb0b50880135047773cee08087f03f6d0011c04758d6dd03765588281e0dd66dcc6652706886e3658707f727662f03e04ebeb88ed27b6ccbc9ef091, +04631b810ca853838c96566211042f1442006e38d00eb068c103f7e63b20253b1a48db513500536cb4d3f2edcd2440828f75ea83715c0273e39ee94b6db82528, +6f48999701879a09f286e60280e3798842cdfc9187e886ed595380262831a2c50b07a0c43c290c2285cee3c651eb055e0e34285e48310470da051744004180b1, +8a87e8418287908730047807bf81070476481d04700773315987c06107077a8887c04987055207bfc03187053a07bf411987aa2107bf2987075fd882871007a9, +8000a89c041000c47fb89b048888b449a81a7e089d7ef01b075f90961578887d7c587604c8879ad1411704b887497f0807bfa987c0b1879fead175049887aaa1, +07d87708d8f70870015c74490007d8f79b0460009e49806d05d8f7059876b088e9f5754f007c4f0080654f8003789a32029099042800773749800138f65a4800, +4f009a599904b8199204f8006f07017504e800ba4900940128788b09778d699b5d7a40f7b249000d0bb0770cb0f70c50b0f70ad8770bd8f7770970f70998770a, +f9182878bb59f719757f1b0418791028b07717b0f717209af915d87716d8f716a759f714787915b83f018037080c5877f7a1919e0430817d9ddf194a4f0012b0, +1a6094b47f14c04b11945d2e945a5977a33c897b3e891540065ee639a993a33a49fb330180345913153f911530111332dda69236b0122c81c885049881267992, +48001a1886d85f778164e91536f89536ec4a001b389204b83ffc5a211199af01153a02a95729fcb9c05f105341158b58c994b0e09494545c804901804a51824b, +01ef4f001f58f71f1e407eddef8175f7e781e6d7fdfd4980018fd903dddf81758f3102ddd78175dff018ef36fe75d70113dcd77d8a49801c1c489603589632f2, +0840800a7004bc0707c00054600063c007ec9f10c0324e80580b8738883070100882031587374802871b04873aa08c045bf04271a0032f0cc8fe04889d040082, +e00e405b2df005c64007180152b0a65050037a12024807094100e860881c81043c230a63ff8ac00fd61d1140331f8009f0efd94d227d50fffb3704da1f02c007, +fe5c295002c5c0fe43645f958229b81814080349416631820860814384016cb61db840ebd4b7264a14a0c29bf84f0840025469b07c9489e4c0f940654e5205b0, +03fe60072201930901b100d6f08304c092ff14a07893eeab144811096a210c2062f365abc097a49630a4a0826041251300523d50490d16a219815b60fcea140f, +e0fa10403ce840074b02f10a14263f24258023d0fa9000ec32146d7056c480d0f123691d80bcb51834351b7cd315625e6ae87f712001148101044004500e3a10, +59000a130012284fee8385f3e1006c4217360058630361a08eee5f2e2c81bcd000216631404124900104d00e5860224c4120540c32000506000a1e0136056bc8, +4324086bf41f02600009348100000524b00ce4417168ff96c7aa944f1d9c0377322d17e00d0ea1c0e0402487057515af180cf92b5e0be552ffc017c040fba704, +5aa7de4405d58115a4e0f53288bee91903311aaa40009000c51002006207320010b18508601ff6430940c11a305192e16550e00fb0150940071de801a8425608, +7b1d42cba4088b170502e114e84025e04f8e013224bf3e38013b1254d4883bfcd59da003cf292ad4ca2499960e700e5f68ff984018ec01754c821325de809a2e, +0092250022b08d34320f122002f8062e991179451edcb16c5401633303f85f879cd531b07f4de0169730133e439f682b86b0b728a16f82001268840960094099, +89ae00e08b04103e64b0eea440eb9b0214687d5120d10100013881d6f7045a1f0f749f0d180d5d2335d1400af80804000148f68cbede33e2cc11500231e0032c, +02bd40e67101d8d73e2df018b34602d8c0bac302ad2f0bb42001a4800420035ea0fbac80ccbb02b8ab02908c2d8ac61b2e896f500a629fee645e15687d56e031, +9c848668dd79815bea3e2e20a35a9078e60873ac8e7f083bc58104c407237023d5d01aa44518500fb4b003ea4131e8800e5cb21660a5e88005184ccb99039285, +5109037260415001043c0121000590ce26c861013a87bb0d00772d016481e48534334007e0800078c02dd8336f400cf0411824002fb0eebe10011240178008bc, +c07c524d5e67ab40400f02292a002cca50607a1b7580825ad0018a810a24002e80030f100b362412024009f80a046012224243ad3b30700b2340051464d87287, +4404365c776140df3b72b6f848e378c986c47c2a423061482a189023a0ef4d054420174430656c83c4648b1cc80390440366a438ba854b16858a744f5e4284a8, +6b409362b00127090641ab0ed833350046c7706aa041bbe1ce1448029b00ef88e02484132b072708d30dfacd716b0076d037d6c0fe8d017d6883e4a705ec9f18, +0005e65002780246da9297726f55c504cd26ab44c154ce0510e523a9488b92213dd131449b931402da6421e289a8c04da8b827ef2936e92f05c09da34254769c, +b9021544c282984f53da94bef235054b44f01a1ad0184a01bf84640422924672898ab207b9c34fb9a415102345028d9c050570328a81069c40dee4860c305ca4, +a41280e31897b38c52a51411abe62c9d12043c4a632629db299de88483680390d201e8496bbd844ef5017b26070465078c0d376837db2068ffc9fe9101df6076, +ed857ff99e86a54571e2e2524efcf20737e024b9005d392358292bc102adac537d135aaeb209441b54faa635940aa7405b466509c04000ca4feb922940ca5089, +00300123b0ceca4306ec9f19c89679120361b00a64c6044003f54806b4dfba2b93b46c4fd5524408335d3e4b90d92edfa02c4f1209d0971d2896036237f11a14, +935ae2446bb9eece90e0ace638032934e035b8c05e9e240b2800f0a081204313950ec1ac9707733e0f429c098809212ad38201acc049f866390b5a31c09ed530, +686064c9bfc3984df57806745f0e5877dd4c0063c06eda1fe6c13cc23904faa60cd741df5c7f81710075731cc0a17250b1c3385cfca313484018bc0208801fa8, +3043c0fead01baf98126703b97401fd0e01698111b2609f0310d54bf75a706c2f5ec4ee7070059ea3850f8e00dc03c09260034f0fcd65d1afe26e3749cfc0072, +788d9f730d7cbf75ecbc3a403861e31852e108b841f62009a9d004dcb104a0021603f4e840025003e1a402a9f004dcb1700281c3b838ff261a675be0344cec80, +9162836e4048722407c9c11f5811ce0000468004e00053f37f09c08720003509cef28933119cee2b63abf99b31e035368778e64219b0fe0ec706b6610a5063e4, +25e14c0828f009e81479f24dbf390758e70682a70cc09b236402696a4df126fb9481200641afc0fd814e11c003d26d40198507bec9205013c2690414c33a09a0, +404002e04609e00ddfa90a280120faf57d630e8ae13b48000c750173c0fec50121f44d2690005e8028f00c0c4d00f6b385638044250038c03e2860ffde00dd4c, +6f48d74118901e4002d9841a24803800011fd784a2a11598ce189d0276521220c00c4c88a9e00608f983f08058814d758046009476510037d83f39d0fe128015, +b003645413b81509808b49e003148703cc880873160de1377aa1fda303076a1ec113174a2ec3640edbd2132f6402980395730b10a80cdca726c61d1090464545, +0fa04cef180270a611f0426711d6d003152ed122ea853ee9835ce9cfbc02a720a5f6cf0e6c433a908029e00190400c3029ac21a54400097ca00e78d219417e44, +8537b006b2043e09407ab2892ea13d2dd454055010707c2e0002da98288d309f11048473d4d0830c2c01c2f902dc80b1ed00e174010eb414e4d1fedd81e0693f, +c8800fd051c9510c5411404d0232000f958a09d93424e0027ffa78240140c5a347514df9749f2a12f810b4dca69ac2d94ecd801905002ce00c65a0ea24802a00, +01dc81be8902672a15c103257556ed209cf15310d6290310815f9300f2c06520c034a5075bb48bbe908aba81ef39425b60bed61d1e88a2bbf0004b2009f01a41, +c0ab4a0b22d0810411013a102c921624050b17c003c401698c0688d0818ac0569080b460001ee00df66f0f3018c57005fba707c4a81ce8018451a26e2001e001, +8f15f4bc814df058b38a56c18273ec4c58550c50e0b00200ac1a84aefa550d4265d61d1fc0aa3d8b04ffc6a2fe385b512b8eb99cc8405c924904a80364000e60, +9c3820f9e156654001fbe707c220162082b0c002a851f75d47b026803e7069c0fa5859c0682dad0de80399555aa880cfaa22698102bc6a0cdd2a667dac26c0ab, +b090900109040052a81106e12020044d96ab1471ae550dea272025cdaf87442a35220034402d3c49026203070d9741130ca4a9eba4df3e1c00765b02f8036110, +7fad4a5c49021001ac94b5e67a179eab28b06b50790a970c02df552d809237104817d00482805c09885a2009f361100c001aa5b479e25dd32019148306108a5b, +409d4a0009c00f24202bc256859000be5658d8809f1062ef85ae6ae1078000e62a3328b95d136c7c6c134d518e89b44128412358083230272b9020ae24381152, +a0e014f02dca80f6716013f01a7ed070f4ca0a4e0d02c8003e59157740e940029d4c00052b5fa3090030148ebd4e04d50036f63fb28702208030709dfc679d92, +673b873f2841dea09e79000ad42904900108403ffc8179fd41181403754a0148401804d71397000290a670ec1e4c0053cd024056c846432d81b8040008c2e08d, +f807ead4a18a8654450369707a128230080007f0668f6a81e8a3a57d0398360b04e0c39985043008042008c2a01c78b32a25115e9691da912725803d900070e7, +5f5b01a8806ae15a2223b6efd229215b552c4a1107024e00024ec094c2130b9448854202ac8013e001c8027e7ed0a2cc4054d1a7152935156011e8be28a0c098, +dbccc808c2acfd2b833790058ec0089449dd620148602b6c200102c0349b0f874900510068e601ead429119000c440bfe0c0349304b1a01155c50755957be2b8, +00001d8e000064ac004040004f424d4424022224804200167f8b60032e832509d214474aa04668963b6e183e4023224062e700775c0f060c04f4310288d8ee5a, +00ba2410209366ce02146e68d2a4160210e863040080094e0000269c1f9e0ef100001d8e434f4d5000000000434f4d50762d766469736b000000000073756e34, +6de084a1938664cd2a5ecc2841c19837b09853c70d0d3b2df918f2c1942a4eae93664c992f74f2c0660c468d0bc894b14c0008120a8861f39a001426ba09d3a6, +ea3e5490f7e182be22d0b5d520818709d065eae1015da71ee08bcbc302be1e1a6b2c8201beb63c2461005da5b43c14e099332021180401e0000302449030404e, +3ccca0f6a106df08787c413286b0080ce04bf5c30a721158eae184b002903ca4739087111e4bd085c30795010079084106861138486cb0c006010046c0603082, +60715c3184872d648d4005fb872be02322380ab70f53b85e378212c41198107f730423343326917b0f8f41480ef158c42b1e7690ed21ecc336987dc8c1975f00, +20fa434008f18610f3e1b11fb00342b2a11d64e3e1b11e2475f06536044800e1ef86f970603007061a82ab213d046c988b613e19c49b413cbbf0fef0c57c18e6, +012ad690208317de649b429787a8c80542170c83d8100129271884c297231e8a6462be26e67382c1a1246453e2b125548e980f09fb0cc2e08f88e08a60d088f9, +038434d76cf3cd3810cc48c30d324008a882a3a740a0e30d8e0900784116094a042080020012e052618e32e468e9a53931d848a30c37e868a0c90d38e448ea85, +f9d2233ad0d81484043a125db45148206100748121c270e3411625f0a4b2943e03f04ca0a126fadcaae29629b86c438025482411c002591ee72c630e10dc7863, +cf4d378b87b4e025e080abd828230c386110c0e2a12cc0954a338c34da40a08a0a5c1ec2829752444a79c80a5cac45e0d3a54b3f95451661452155934d37e194, +3a1010a00e611e1261020102e81879808c861100e3a1306e1efa42e274bf7808e2212ff6ed17012f74df42a08b80d3ed48772d04b8d8778f8252d23d6b8b7d8d, +83244c186167336e1f2ae316533e60c2c064e1e840800396a259dd990c9111d0f899871846101ae881316e41c5091e600788230995e36819e39623487e238998, +378403de692c6f2364dd404a29a69c92b022ce39d278c30d4f136439601d092af06c806d04dc86bb821452669025662e2bf05c0081b5b7302106010538002066, +c0ea8da61a3f5c0786c1e528fcf016dcb4a0014f1efe9600458962763ee31604ca4707e080264a29262573091a331b816db31920255d2bde4a21451663000881, +0b6842ee3e0b90a56082236a5edf0c3c980588038103ca0758387c1ef024c18872b927b62296983de608e38c32207fa7c10ec20d47dca3391072ddb557381905, +930c622606043c00800659804f370bc3216002ee3bc0e710b798181a2696866db61e92866e21400d817f10a35a0f41438056ab9305f7a6451459fa8440163c1d, +7b038001f677b93e02be80270a485056405fbc6d676b8019426e1f44401a46804b1708fb748002965a088006c4ac6d6fb92100852a5400fb6f07e059003d9886, +600d1eb442e67468749f016206866921de3019f7a9f00a1ab3a14087948b190175d47a081bc446360208a8673dec692f0582e6354a0a44c091c06f80bb80f278, +2f328f4d8d620a1d0bb703400a74d7019deb60b7b336d0ce673a00a0ce7299630ab27f04ac1cff4808485b9e44d7272b1e3788273f7a4c163613ca0c8f78dadc, +184cb901f01fc7d8f1cf7f005cdd00816c806443f00700fdfbdc470124c80f0105f795c00848c819717fa08b45a9ba30bc141ab317392908e4e0943ad0a10c66, +3fa22105232c1001847e726d365cabc02009f554420c3eb0400e0210508623c09859819f2120002e232801011410c0110033a099128e2000991b6e5185525c00, +c5930974c70193a28c90d18d76f4a3214dad447b72330010098882c31be4d02b801d8860913520cfc08323b0d203baa398e10e64404e180c6f88201c680780aa, +0d4bcd5453672a8b49e24050d4a326f58aac4695494c7192d640772b08ea458669e0a862ecb053562fdf41539b4a40008259b6745130ddd454a588620319c6d0, +2803018a65ac19aeb40b40124aa12e6118d850923120400e8c0490a10d616841410f6540401c74a15000494cb28637a5de200bbf080000ca9a2a1101708064ba, +001ebce02177c085c00eb7782d025c80e56c0b66db8245217289803ab4f6b57c959c76b17068c11b0174b88511a49059ec6617fba63c280e42d839dc026759c8, +22c52c4a3d8b4e6d79190a518a72dea30f7cf213a004452896a5ea74a73c216064a636a0695993726c690f5e02d358c908c8c374f510c13d5f00e11504e0c181, +43bafaf0103fb80be0ae028cab5c08e041ab4ea0622302fac53a56b2ee4bde4a2c7de5bc600dab0c2a58c92a98b5ba554abda74a559e58e5e594a740f5103e90, +ea78c82134b38e872134738e871842338e87104233e678484233e478c820345378482034338e870834138e87004233e204f80139e078c81f5e659017bd085b62, +241261398b24c433481724fc7200683cb0840048ec0b018e873842339c41c0233330784823348383c82234f38e873042d38e87284233ee78204233ec78482234, +503c46149219856614507a04024031a5cc773e5199ad3c04c409067542369ed0640b019246c026189860d2433271674d25647389dc5ce22109f150423c956090, +338bc7d0a2d808a854e61fff78882cb0d879c5636021995866a6d48a353fc4156b04acc2d60f61854232a928cd4354e131c5761e728ac7a0f08300523ca61492, +30e6430cd91443339060604718a969cfa62b0f0186661af0ea05837c219b5f54c2a2b05d3088170ccd00e321b9788c2e21b7d0cc0f1e820bc59c1f620bcd00e2, +798664a031ee682098f1986660c7198f656886070f59067601dbfe870086f010465fb60d0e0040e07102040883040f4994fa21c8280d028c097888310cfe9063, +21dd583602bca1998c031ec20dcd3ce0f0106d5c1c01dbd06866010fc98666180fb9866614f0106c3534436e045863e271045043330778485b1a9ab90c02a6a1, +3a8a0c64b84af5f68437bc9a1a7515c7c8a161b60d488002d5e441a10a60dd3bc0014970831d1c4bf801029e61b60a489d613601cec01802083ce41b7706c71b, +01095ce0f688a7c2e10cae3f86d1cde614ec2ed984948ab8486f79102c057b600448c36c219080060ebda2aa3102b00e7ca3961a2739d401aea768405ef2943f, +a26e36107c69fd614c895f0c7172fd1afb89f2c9189a72b83d2310508de327df298733d4c1236d729bed021280c0f269b75cbdf45c6f8aa41484008295cc610c, +8334509432b8bc4b3ac1944301239a1890800f582947190309d73b2e6c301b133bb0ada20201bf3ad03eeecb95c7028183f1a303d763a66bd87ce73175f83370, +b3e90009b0002368608a32c89c69183b9464b1413900233a0e089c21503c64c1ca1c7940006d301b8217780210403d9704c806b309890448b12d397809d72b00, +d1a536c0943908c10344592c37c80364b379010940012a786294ccc90404e8062d385894334814db04e0060484000d9c6ba9972ac1cc9905bff7431c4d611ed5, +03e3411c332017791a90001778029a906183cc91a76f309b8221801434d015e10d908009583f2620d042003803b7331b9734e815cc1b0334115c93467981b32a, +240081aba0833a909b0397028120808206dd11012498890c35d0943b401c222cc803d29180061894038bd82531a88339200401e2394439b8a1254ce93c147c89, +98ae73982e7498ae2e72788c72982e7383503704180781839800447808713047050f788870682e8352100604000613309c03e4298139881c03e1699439384268, +8587d88708e207987c982e7dc00504a098ae7b982e7c98ae2e7a98ae7a982e7b78982e7998ae799898ae77982e7898ae2e7698ae76982e7774982e7598ae7598, +25400112880197dba8c95370820f388105243881ac5182110f90852940011830b01b25a89c24a8c980287027e4000121af21819de907d11209000330029c0907, +784b04f803b9a44b4703c081964980010410009fc1be41783200530880be61a3023c7100ae14015688a8850408805b80a00161408ecb4880197fb8850f904912, +84c85400bc3c84c84388cc04d04cec13884c04b88553c03e8003604cc570cc40e42000042884c44c0084c1f44a03c01a84bdaccb02f84b04af2400ac41050420, +af6c00d894cd52a0c880af6ca8748828a018308244909b1819488048ba861e0802800d80012990021dd789010410877444884c06b80518705c805bd0ca534080, +9c4e0038cff44c8028766888ba7c00f2d56988e29405ef6c308229d093ec0cce0007a0a0dabc4d0ce344ce00504ee64c3c8098014ee1244e4ddb54a7dcdccdde, +c0620cc59640c6223c81cc77480002c0dd044960cb08385004063dc234600308033844fe431e48d8c9033cc98029900087f96c82ba8400daf50c20f7949bf8fc, +160581178dd16ba431514349d1157583800f2d001135c66706659611b8504940100317d33ccebb500a5b84d04e908005334094166801236494033c0081385814, +6a01380d83344d075374905005988259291883a08803c34b2002081552094d00824a74834b04812409e05000e8440618e05103f05120654b511bc55138d15139, +d45010010f48977c7ca833f149072610da52f1ac4b0aa09d17470581089d08aa072503086550249858d005b0d35e89030021c5193dc093120c65cb09a01d74f8, +38400a2675c6098be1802370442928a31c7570b5b6a42e3c047880bab400da91e45102b8544aedd3510ab5504a9d50537720544345544555a8cb0aa09d7410d4, +d90772e381bac40055043855afbc00da1268829cc49974288001214d80068801566894c612dc521247a40266755633800305bb3456004056c669dc52214500d8, +821828ce3e99804956794f18701f0530c51422cc4632881c1ee6b1c65d7a4669c7620310f05610c06007092001341803006760cf19388203dac1cf3048d71c42, +20980832103f3868a1031de89479450e8909932f08dca5e6149000098082303845804a4899420500856ef4ca0cb8d779f71c4ef84cce7f188205f6d4135918ce, +40007610c77461078049620766b284397360264e98833e89602654701f0640804b0de0d49191843afc29205948000ca8a8809819d8009a81860c4d8028ca8704, +00da4985cfad4b0f04408504d880baece400d1ea837439078504d08004c880ba6cf2dabadc00da11595b77c0994e805ba649a88304b8003c5918194a48995260, +04d81c48700126889dddc9ad4b11b8855bbcaddcba0c81d104485c04585cbcd5addbbb154a04185c5404180566325bbcda5905d54d0010e0a01d55285daffc00, +604b12a09d47101f0726a083f54d023c25c0833e69801882a04d78f08053f00087370828f181073a11b8053cc1809181d504aec103aaadcb197a20819bcdd99b, +031718e14ef95a0032ccbda05d83099be995162dc245591c82237c29a2bd037213a09d9d658140995882211801acf44acb12a09d506082217408550418550fa8, +12c0931cd01d9be479cf29604f3848cf59b5194e294080fd8e6d8852f058794228831b86d2ec0101308905816555d13aac654f57021c0d700081db0c86746580, +95542c9dd52d1d4e833908014858d0069e6561e2f160a1a58e9c18f8e121dad9844b38003016633287bd551e76074bd0211c160081487dd03f1bc6e15d52aa36, +2459701fad021c16f7c135ae05001f98401f049084f5110580234800124880093cd98226400074f0f08b014087043001d852a8cb13b88558526859d70ad02110, +47a94348b12558fe581e687d8934801e509e958010382932edd99f4d92814942b488b6ea952a80036308cc251088c44948399c4371d8a58898028675830ece60, +569c5d42813c3c03ad780e573889831b46b1653806e15eb1610129280365869e871a382200c001dd4b7083987187407642a036a84b14a01de0100e014acd5003, +57af5c01434e801324902786468053d0548126e20437e083051e20014c0a22b6f5390524e0019c31589fb4c593d2998487994d801468224aaa4a013512a67471, +ccd3a5222c165d6996c4e7891ef83b030127189ee2d1a57623c0131f6808dd8166815b60a672d88182fef907759085810548001510a2ae35c0130b98e414c013, +1e87af6581ba74014b29486bb36eeb99b4961b3cb9002438a89fb809a10458019d7240007348000e7348977260cb16a0e993059085254817c59e80032c34eac8, +80312aa3a3ad41392348800f3856dd79589f7de001724e01680450051e60a64a47705aa895da183ac69352d959078899800e60a540880593e66d01b15c0cb949, +596a13d3466dd56641d809d0ed29e86deb7f40843ef100bfdc5b033aa0666e7458e75d92022a908222ddc1006346e6abfef9642baa9c4dd2301339d01e52e85a, +a881f9b66ef84e0001e69d01f716e904cb46805cf81aafa4204ff3adcb19a09dca18a0a0ecae4b19eace4cec4600edf6208174a187ba8401cb17a01d7a40005b, +07afdc012c49001e11508204f81a44464600ec95a7f6c6859f52d0ecbad4819cfdce81034ff0dd5d49801bc0998f96e81d4d9e5dfbc601981bc8ef5bd8ef1ba0, +6dedd962a62adb56b78749feee1867306479b507214f971404d88145c6930d80654f0480e9c695e96d001083af851f81f6cc214a4e177b58a09d7b40007b6002, +288504d001c3e6019f6bd29fcb41a07256ba64130fa001d266cb1e30e449ae01dc0042820440019939ae665f9e1bbb292403a678945886e7e73258e65dd2153b, +7146c6a82257f1525ea84b1f60dedef4b764b9318209f887f349b601553102157610de76380252c8616ee0fe501918a2a2db9e7266ae4631562a01ddc980dafe, +604d000658261c17a8e804e801b6fc81a506c0731db8f409d8ee5ae13687496687a249ce0117aa68f2779e662f979b3d4294722a6fe62bcfbf07261766270f74, +70ad8395800e18944fecfbd006c013151ab6672a8e9c49c25194f0bb8a5a46ea0163ce651068bfc30400073c7961090060debe13563c1700724b9685d7f24a20, +0e19b8771a20679f1b86f7f7a4ae0c4048f75d72e780bfe1f72a2c77c539f7343c1f806eff76281ecc49f7c1816a5d07f71cae4624d49ef73028940f9c618875, +1140007fa8cb211000b97880270450868718ab4b21a09d6320f85f488e319f4f6c282fa8cb20605e94117601783f05b564dc782a863e515c42d80eb8820b5ee5, +08390458861320fb02da9907cb52270c7ef080863287f02419867afac6a94780de78c80004c87af1494680a3478064a060a66240e13cb84d2d0450e17ec09978, +495ba000387113b44b873dcb77b5cc770105cda681742d007602b0f461f5079c8c27831f48802268b444166b81dbb67828f98c285ba800436038011240827a4a, +4da0165b5880d34768843e43004f4817a3a67281128e00045bd29539308338314e967849837e8f2f801c68726276675c32480023605ec305f2ada6527c164342, +b0850c387dfe2303506b707f29287f6105087fd72afff70c8881045880fe048057c9618618a04d7ea4ec7e2710281840a4a0cbc24f1790820a38c803e07203fe, +fd1600282f20d411b495084000f1c04672830924804046f732779342c923a37b0a4802f5431cc90209c0260470febe9154dac42db9140900df0a03da3ac2a780, +0ef8b6c662782a94b3ccc1fd9300a70f000a60fd1580f8078e1c440e00533f48400cba4f5ccfd249e057f4bfffb7fbca20099a81f3730062d804c8010c3836a5, +4898352208000265902e04023f481739800760901c88c123a8866f7459341702a2119d48004be0160dcb242021d5878c5032d7781dff20820c7c7c4a006bfcb8, +4c8076c083309807d42306b2e02a2a8007d107f7ef01489f0d2200a1c706ad952e865528e8831e260268305da08304984131982ee6c1ff3aa0954a53f1a04f99, +5424b0163e005c7842e1b71240400fa00b849204128001c42a07d8285b863cbc62546acb9858155e147aa2300fdcbf6976c29f170a4a81263a200238839a700f, +146618400244005c54b2244002f004075c5f02b00009c0054b6092208304400481202b12001340763b9818ec6062b88309f4a974b10fd2c5f8c8148bd985940a, +466800c1301f96200ffa8189a10fb49509376140240708605e4140ed61423fc0bf9200271280136040029000f72f0144ac84c5399bf6b522b82806d1737329d4, +c012705f5584daf16a0924a5e322123d86b4aa190a8c5a198c00e90cb78515699d8098010fea572dc8e01bf86bc56e67adef09302f1fb00417e0e550e1e9c33c, +dc4755b415e9490409e04f90bd7a9035db340232002b2900714b17f56064d4830a341148c0001da0faeec02dd125090067060076c9347b788f2480046a40e122, +05d85128f14a55604a530017d8850440016bc1a640d207f04d0278121a245d5c4c7ff0b8b0851cb875e3585aeb48029f6828e1a088592dac842a18e001d05f0c, +9000b6806adc750002617240003c806148008c9258ca4004bd40b748005fe0168f910b3cc62ef0182cf018b5c063dc02b7c88b58c0812480302203af842df222, +20e73a18d41b30038b398d6930016801280c05c0c206fa1d19fb4502c0020ac11c54d02b8101f20696d2f8ceae4719888083f12ed0673442e004f80d75200138, +011d8027b2c044090138f000b1e03d2223009480ad400026761276636f644b21803e28e5ac2cc768a100d8a8ef68e398526316488d5840c666a0f43d4701e000, +6d3afea13b5000bfc850e4f00be8482d7162e6892b3990073a9079902318a914fbe9601fa825bc945c940179d6ca86a1050c88eea80154a049ab82a57d8e04c0, +4fd8001169a7184507d69f1a8819a30c06e8c928b6303c51a59e81e7acc06d82d2cbd887c3910bd4b1bcc489c8a144bc43b41e24349290e6f37788c259090ff7, +c00be8ad04d0058cb53db2e435f91f092378510a0494808d35c95ef1242551167447085092c1a70cba8c97019360f29e5ad42b6c1fa6582907db7243eb03b9b3, +62721235058fd0285200c5bae4a094653b90050d8506b8969d5dc867942137e44698e407db8d44cb015bc5407a84041923e44001cc129ea0c07f92054d200388, +635b2450b4ca65f64910b0cbb4c76e52dd248a92b3b215558e52c2b344015ed6e93e74c03933898404007d60fdc98122dea66ce0239f0090e499f6a84b4c4347, +c360b2f2508e300cd2b241172c85cfac6e80ee70017f124177d203e4c93d09005931279bc07baa93a47c4f7dc20140404c5aa3197526d3242a879667490ab392, +1848005560608e8c9f900d04300ff7483512c01ee101a3d094f3900c380caf74334c59825c512ee1c2b80493b1b258ba0052ea0e12002c5ba921850fbc6b282b, +c00da827230307a40067c48110f03011363b124019a80248442e0920b2f000fba6c69ce795c2c6c06040da9301f5244e348070758124502a02300712c0146026, +ecc084ec3c2dc50d36e0273018dd51028dd9d9bc80da22993f190354519890cc79ed111462fcd68600ac9f19a84b68807b082007dcad1d80bd1ec04c6640caf8, +c5a8a3751c5afbaf7e4949df2147d5c7a509c2a6f0440bf0491f0b27ca69907920b12017aa890620a0996ed30620993c7477f88c3dd6a53454a97a9920a92385, +9006a862af03002ae25567004f3c8004ae89c6d27f40c0aedec01a5813ad6c731f6041558011801418b0040ca0de04009f0a7ff12306248108158ec172a13641, +0f6032118007d05702100124b3f5ed110190cc7f3501b20330f748c4b42135a400a3b0618a23e7e8a37fc6969808c9f407d79454d0cadd55c0577a000713469e, +0083c9426a08595a40c2f04ae68464bae18e8c000a370fdba101ee88088068c2640303c32ba5929846cfc8423d85c13c9809ca6898cc8478f3700df80bafe446, +a6101980001866159a08fecc03e84a7f6e205d548c04f00617203d5d40f54c0006c019268070ed11edc501669202ee16070a4b0860262c20980d9364464c9289, +aef9ca16300492420050270445006dc00071e0682200d3098b790807d2c5c7484027a38ba9710a50c9a2208013b03e423241c76706cd185e08a111933645d0c8, +4e0e4c129859975878466380345403c80a2de82a0e80008ddccd04305920655d40809d921371427b690042669e93721122248b8a0508b0021bf0092e6114b1c3, +4371109501478a1b3b700b22dd1c00a46ca9882d80344accf8c98104305ca20b58f0400be87d5f1388a9f10a641606b0ccba945bea28c9444b3f410077200f0e, +2e10b184f5506137af73b8124863f0f300e112034f530a7c930e744656920012a807985718a81f4fc8039234b3d811562a830330021e690225261ea020098092, +2b00c4f46b6d0172ec01e645b8b4c05f32546609310f31016ba00cf5523240fc73180194e3fc8165314d00c6d4a6514eb08181604ab8b6004b55a300f089b534, +419d8105f59d96049216453ff0190bc01909c03fe5a7dcd400a7b42226803ef08389104fe7e9327540020830c411326242191000385106d66a4e0364fd68a6d4, +762d636f6e736f6c0000000073756e34000002f20000506b000001014f424d44f653c5000002020067202010a81a153bad4f0b64c7538a38fe9300fe804085a8, +41430340260018211252067840a1004000b81e06b83505e202146e68d2a4160210d89b0300c00020000003401f9e0ef1000002f2434f4d5065000000434f4d50, +cd9c3bf38020f3a65207da49c800b4e61511048042a3a3890ebc2b254bd84301d0c9a30344893920010147ce1b3865e433278d9b33209a10eb003b09189aa499, +ba1208b809d3063263deb899f3864d99aa048040caa88403da914b37c2dd01c50840c11800086e0d06c12080391c001c87259da12349c822cc1c3727e8802883, +611e1240fe16d0c3f50200f37080aee1449030404e993384f9c23327e1000302bc804c193b69c694c1c01c9d69c2b0894e1a318f1108302204090a14b7811386, +a240962348e1a1232130d011819152462bf510814404096e6062c23f78b28c08808076ee1d13980ac1815bb18e9832858201080a18c0711402ba1e1ab855ea14, +35e4100106c2fb90aa45088db205010c0414908394911e2c68c3c08e2ac80f418c3c7e406081fd146c49008d3cb25aa34016c38c7a48815c0586410081000128, +0af67b404c1ebcab8020490f148cc03b3f078e50f0012f1122c04f825c1e9a60e0015c9c8420ca87041a78c8815eea431066382d1e6a4017827ffa4971c414e5, +82f7ecc9538235bcd48865478f7044a0b2cf2fbdc3603f093aed7c32cf07e278bcd3bb0bd444404e4c53ca14d33b0bd41c50100259c4ac4360bf312310c23f04, +0e010f6e61a20a0f59877ceb8f873a909d0b810d04c820cfd2363a2260863c4d2c28454104bce380c0bb0df6cbc00804ef34d031031e7dbccb603f0c10a08006, +a861848e224002011f609910af0604329df2480a08fed1d7e0b730c84020045937504300845bb0250095146c0b18838d0c3710f860bf091096f840186508c0a9, +1018e1960810e0608d8d16c210e38d9d7db06de0a539e858482003470fa8e09f0c04449096150c009529e00e39d2a0a3cf83f7d691a5896b0d10e8608424ea28, +4f424d4400001b8e7d0b8080000001018c32d860030113dada5526818c616a41f680df5aa699e3129a49c059e7527cc66be30d3bca8879e638050498005b067e, +1366cc9a3067cacc0000091c1212bc801f9e0ef110ecf207434f4d5000002438434f4d5000001b8e706b670000000000737570706f72742d00007e0700000000, +a7051c396fcec89940005b0de6a0797318382de898a103470029027c9080e08d1025ce8124c082accca4714306044387501812c6cd093a201140800605001c24, +40ae5a0808dc62859d3965dabe858360386205e002660b4162ea9c694106cd181004c06575019932a029f3704e9d363f7b5a2a681d3239c7380701005e11f60c, +2a1eaf0323b815eb04073e2330402349805003f8478484640c02f85324896883470e6ce0d6915410206c18b162418d1f52a7c2bf7cc2021701c0820c47e2044a, +e47a68c05ef0d9774c7a603c60444a29b63f86075bc12d257d187ea038810db2f85cca3085291e4cfe61c2bf75b2602780c00c59494c795008460b48e2c4be08, +30e240b8061f8c10ad81009128a50adf0f9e13471608ab8040ae8aedaa684e390e1978602f0623aa4e7102230f90d82e36835b60c8ae94581cf6629ee74bfe01, +c59460ae0e6156335892b92360083206902656fb27890f5c4a690cb60702948122093c6288610a2ff4b28361092460f078ae1c0e2384cd01b9ed304c82420faa, +06541485cd82cf1a64504b8653bca82303b60a02f443863ac010a0e01604266884534e83e22c73024968d87473b47fda1188a097c024d8c50098c020e8c54b30, +2003d83ce83556d80e7409ac033e2940f0e594c036f02530cbc032f0855504345f213486e5b82cc56c394d61810d830031268de30fd82ef88d238923129df408, +00e001c5aa5d4e820250e458ad80522e44b805943660580dc38d30c820430e044d2e81e4d9035c2870c1050442b8c512022fe513c69601ea3e187603d840e053, +dad06b8e34f42843230c3c5a30438e3089db280e06091c6824a10d044680ed040439ca2c214f13f8e80a8c845c4a41802186768529a5cc11007480e4b17a860b, +13242080a9700548519861e9024b814f688d3152000113186043e11652866663646139c443a0043602dc9185aa112a5e68620200129005b5800e8a5340800d9a, +b5002c0e0c86de10a87221b017328e634308b70373212a2939606b61ee12ee6eb82580123c406005e504842973853c592428e00e39d2a063a09417605321e324, +e1161d599157810c0afe69c68852608b774116da8d40a00516045ec02801cc39db48829419688640e002070168a0893e8a27900309043e4048e1081c30526161, +0dac06f911b0a1feb0197c591f011a661000ff1fe94a312501b57ffe19018ae219f88c810f0fb83703a000598ca81a014b5346c00881389c3ef7600b0bfed107, +eb06b019c2b0700009c2b06c001b210ce61318200cab06b01f0c6b06b0f9c1b007b742400f748500cc0e046810022280a17e1dbc6a3404081bdc0f0c07fd11c8, +2794a54c50c0056a894d40a2131256a66260965044043001169824e4a24c4a10202117ab01420e1bb039c2b078103804b074001b230c6b071b220c2b07b029c2, +501c7821877547c014070208b8a3eda608a8029f9680002a149280000bd04037acc05061365240c0233053b8c56a08e09ad39bea4427d6409e1298283c500a6b, +1c1d87002cf0a995053e29d2020870020901407803296073b09be6e898bb75e8600048f8540f011c29c0c60a918b020290d343240208a9c823460a803ad629a1, +08cc1674811a40d486298762e6cd8a062c40139ae83acd685b81d1c22dfc808044bb54f1087cb960702ed3ad4601edea5aa06757b86160b254c088018cd0c856, +0dc3fa026cd4302c026cd0302c2fc026c040333cf00cc3eac8939e64b86760cadc448018e499c031ffc050bf301c1000802ed4cf0bfdfb4220305cd045296885, +d001a60018003acabad82402cce081c060e4f0cd0106660e075d9c330eba4045e60dc32a8330de071a036cdc302c32c0d8302c31c0a60dc330c0660dc30a036c, +06a7b6c18c4a7583400d7540c01ab0caf51202d250073322ce00550454120d500cd474026c3005020135e940523b870013b9f6e8012fe10154075c04c60e19eb, +d2c0863290c105202880202f25114918085280c20ba4b058c3118a430409f020402db4c1260f7cb2dda10d59404d1f002ac0e11df284073e53dfb05604d00101, +405261b3875b4860c002d8e8814f4b8b285312c841805e116328431aec500639474c420792b9610e923184410c980581810e5c91831bca1000c110b8f2101014, +30a801464a603b4e1e303283582080bd0045eeb12f5b40404212b0e1831dcd84852c081af290d34244f206398000b28e90dcc1b27420c91904544883c9de5087, +e139f6601d0a60e388ef7f41f03c04f0fac027b2a20d012732bca1056190435f0f08c083746c6100801e04f91c6cb06e50d6cf412f74064016d526e86d234622, +a571800537464053aa4b6beb680ca0d4ef1f31d263e801381a6338f098b76fe0c6380a333e0eebccc6e12d07fab4b4ad6f3de9b90bc8773d073ed14107863402, +6bdcc000824f6cdc2b01ae145b025c897e305c60fec02722dad4c6362308e3bf665172c07374301becad0354aa22d54a351f02d07a6504509dacd4a33ad5c653, +867b4b2e0ea3d70de11690acc2080804c71a0a66b0830f1070de3c11f007e43c9a450300c7780e3c13e0b793e47283f92335886fa2e98b91637a11402e2eb417, +4284c0cc181847f41831ac43c0a611c342c06611c332046c110c4cc4031531ac44fd0c51bf43d40f340824122261e72c8d26028111842ecae5430020465ce22e, +1250858d25f854096a0fa8cc88cfbd31f708b80a827390c01881738e80eb11387ceac194b94c090414034389a022a01209064aa29c659a8413018fa81f24ea17, +67f5a951ddf2970d5906f37fad6c9027ca37e90118604ebf89d924c20384ecc1e0379eb6440fae8796016c2ec127895f101083d22100e131853502aa0ac3b724, +702a0f82628ac02a55617e6a20f6b45e55a411e07ac723ac104004a12300e851ac2281624320ab20aa554d021b1426046b0fa39a048a0501520408d641613f20, +8cf01c6db0ce4f6fdb199ccb9790057b3882e8816131b200022691f3464f12618e8118c0261391b35b8266d42b05eb2489281d73941a00102128f6b3a8223caa, +031960ef9fc078e2c086347c8b0e2d48a05ef504607d02c602e04015a4009b4eb84ca604017cc008dc00bca02246d01ac2dd08d844bc3991ecc1074c39b0c068, +6f906d19020081001bded093544f040e899804a0021d13c317019a20bd1214e678c156de30d98ad8a2ef7cd88022b90761341f369f587e0c163110c000600083, +0a8c5260a9c0308505aa1885f72185945e289351880a0410d8bf5c4b8d3211853ee22383fbcb3f04f34bbff5f33de0134f14f023008cd8805cee13d70bc5f6bb, +05d89085615905d8614905d8888561517005067a8507828580563820010080c0c05885fa61051a44f08552080c5580c180c04085723aa7549d328ec03885122c, +5da0985e0802d8f828935e88375fe01385270a0c5ec0055224ca0524d20524daf0b5c0b80524c2058508048022080c5b616905d8a88561719885616105d8a085, +f08026280524a8830503d94427009224bbc085bc090c60b820a40568899740000a39d0011020385a23a082c82a023948c0080d900006a002053e7902bf680312, +9ac018063e5198603e499a60a8aa5c28f09c5db8440410061b3a502460408049d60106b379833158589a4a241758c02a05729984a2aaaa5be5808d60b80585c9, +c9fa16933003cbc2e80109b0014234440472c184b9723c008a210472b9058a1954460428063ec10598f8c280b00a4664534080598caa5ca0800d62e01356f4a4, +8c39b68b314b44808545a00a63400072323186783b063e793188070085df1298addaba2d3910af9bd6722d10802d8f981a2ddc322dd4522d2ccdeaaccf5a83d0, +c8576004d840863dcf290623c0b891eca00504e845636002add61217a69803a7a27003c97a2e39a0b0802a70833570838d02408059802a098ef42454b046ae1a, +0408498f6c8319236282b5820d6540459badc439a5f2a43bac4420a592322ab3f11396f31c4fb21d89e2ba32d848063e1a631d36ea3334ab440028e84312f843, +fa9918434707f90786c8c904c3d3244f691c088a2906d8688ab16cec01d8600605da818d65e093f86490059a3180ea211cc93ba2a5e9418081bba4c4d08931bb, +8552a00a5e209d5a5f900529788e6b90c94d044085d059c9315330b865a04a5f66e84ccef1a4598c4b04cf830d67889c864cca3895d3b80075400065600f0438, +153082e2b8010980a82a5d589a3a142606db7186e290ab67c080063a5c83f86298004408001358cc0da01bc93a741ad43ee1850144006458a826048acdc07806, +ca03101883e77283800c305010600ad88744005fc0081190f2c7bca0833a8003c8d6a22c81bc03ec7f9cc7c8ca0b3960028169d92ccfea0a0129382d39c883ea, +0a5694848d44004a5f2c8e0740008da4ba20049006a4614e8068e013268023580f8801d4e8c15e4280012490013c90012cf1caa4e74004599028033ca0adccca, +0ba535624000f5ec709aa7400062b835860d1bc623882f6832081704a0063e91a08467892b9e408a4527450049901aaa619c86ca5ccae5f4808912389f9eb905, +02019a74830903adb10ed8882378bfd65f780fde02ce5398ba4d590c30e104b19e6ae093da34a44c9ea8accb525197b8c58809908005d8890f0440010498060b, +87cc9302530a8c6b3230547d840416fdb0808e610adab2ad8e1180cfa5b950006b38cff444806a28704ee8340ecfbb1e86e7790f9a790059ef5a83f0b254d659, +345dd361882f6b008503375b1b04c08641e6e81d5b480042e7c4036ffd00e8ec0abb01b29b6044804604d8c629b8d1bf72a9aa6bfc4604c8f80c1b30a4469a46, +0282c0280779028407798280c0200779710b07711307711bf186faf90671030786fee10671eb86faf7c986fed186fed9910736e2d3691098b16bd83b5950ccdc, +07d88887610907d861f106d880876101708761e906d8788706d8688761e106d861d106d8608761d9528761c906d8588781c04007064a8707c03007713b0779e2, +7df84004e087b90d2482c0d0075d789f872d1c82c0c88712613907d8c0876141b087613107d8b88707d8a887612907d8611907d8a08761219087611107d89887, +28dc045000304c8000bf4580c035dc04bc4d0003f8c0043825801224d7042880a6041880123c00c314ac8504108012e400801224a00408808c7eb05b7f10c104, +9304a080128407c33130dc09d8a9020075802e190341988200db6d00dc9500db08f84ad4958c0488b8950478005d49009f0468001a4c0007054898f5490006d0, +3c5c0d10305c10403016ce6d8304e8001ef1e25729a89a04a04a006141000178345c0e7043e5ed805e0d98de0dc885370b985e0c98de0c98ad80d1b580224a80, +26ab4e288e03d0e00011d0df1140450d76e057ebd9c2fb4d70810ca80359780c9cd16081d05180d542101e00c0800c58c0081248001018049304b01604e00428, +ddab11e21c2e853c3a00e2e5180620c649801340007cf080817232dc1328dfa3f103922d24d904305039143e02aad884df1220aafc6a390441b860d04b001228, +04d08053588d1c88e08134c65d17b8852bc3dd1b012684d5ea3585d5a88104a0282338a162dc951b602a7e8c7dc0dd151438022a2e8c9a4958ce2436dcb14900, +4e81046001ea8d838134b660f79d013a0d2684ff159dd5e85881d5b80141ce1ee4dfd19a0018000604c800335a0d1b105a0d19d0e304809c63c34d9c04e0c601, +5eb2a2565f5c5e277544807c400073a4c05d1ae0137d4000e41548800a00620ff618e4859085040806001e4882c1cd0d80184880d919652bc19db10448801648, +04a8013ee98704b82097ab842bad04b4876f4e801948800d7a48aa04980004b8a800fe8207b8da238722b6008a710704045807b07232046046807d4000752045, +36dc1eb80524f002815b488304d8815f38a048c3dd81f2e54a001df80c314882013e51670b38e75ec3c5013aae197dcec6dd1ba0e300f867a004b0013a2e807c, +81361839028803f7c38da0d5a08104e028926210350eb93d0188468255e601398b93821980e90680310600d8002771e9651d208652e080e918f00d1918028c00, +7ae0a1b70680094086e9113885b446800004b087d50004b14bae016230059776ae800f48004df681801cc00842c20759d40800004803274ead20c4938352486a, +9461142e1d59fe816ccb7b0e69601dd81ed04b75180e7ea8a33b2ef3e686e6e63cfd024d04d00783f7cda0f8e24c473d1e806230cce9a91e85b9aeebd10086bb, +3216c0e52168030fd4e829153885fa3c081ff1716d39a86d01d13880f041aa3fd73eb30168800c0098de21008c044821ea2373eac0490021664d800e3ae3a45e, +042882043802f2c145023ab61d5d40cf025e50de23e005c376accfd99e48e535de008a4987174000ab24081adc6da1661503000580ee23d84880e6460d7d0080, +36cc7f9805f74d02cf006d444978dfc436c883cddacf0ffd408221882ca6800382277802437c0122b5f94f33c02e1010602ee7822e10902e08e5e05c36908019, +9cd40e729524f2d5dad16a8cc883136756ead7590d28f000c0d5f000a41a8d5d25285f26f0e02018c89b135602774b809b12b0620b186e213e818077f18038a0, +f45d3409b8002a4057732fb76e22a71d2f29b726225f6b34e20801ba468005a85000271f0da456ea1d79c0a3e2c0728383608028a7dd2667188025af99137f48, +00810400028cb880822cdd84f86a81e24970df264045245e3080f923093a6009026a1226626a170910408330e073483838833a2019eaa23f8334988310a5bf91, +2381d03332a39936f2d39c0450028cd8e0d7bec35d27e013007fe80124560252f2db8404f801d346ff06d6d9048c0067bc4c4f8012e064100460022b5e821d78, +7005800f0002e81e46622370f7264062d06901750f88807a2488ac701997a600a02e37b02e8f00819b0ed8cf38a88389425e2bf77d023a2e8f873e5e2b444eed, +c0e505e06ec38582f6e709ddc3c4650497a0990bc0652738305114450b32102f4f1015d13a205110066fac078ff00ee5288e1590800f50706e0e40e20e480024, +ad3e77833ff72e0a62a5833748f861bd68020900819824c8c87c37237ef7f7e278777728a077d488c0dd28c87677b7016501c88dfffd0776de08f5ce346dc392, +591e0096cf1d75c00782930f022b5e79e5eb0e79dc958292cd5adf79c2e512c0c803e9ca831050f72ea30781f6f3548f3a589b36800370b72b19449704810f02, +c8c7c3df7a615dc8f97fc7082a107823fbce7950d8f901ea75771ca8f904289c99b591033e0f50f333c0adcc727a92319f83ac07813730035d32928010e0766f, +2d056d78a23fc8a3c50d1d2708fa29c095039a01035c0e828d13c03f13b05cd2a4c0c5740f50f142047c0a0bfc838f2c88c4a77409d880fd621551a64f03eb6a, +3b8833c3ad2377bfe2af42ebb2e1602ffb53fe7df24c0035f1f2fd90a7990540f7aea4a02d9f247bfdd7a783d8ffcfd910658a6eff76f16a9f8330a0ae393003, +33fd0500f8804c2317352705248d7ec940fdbb0bbf25becc2daad40443b35e10b793d0ddf8737ccf003e6420fafda7724f8049a2a1ac4018819a27057af777fb, +387a28b00ca8400e01000a20011a80136807885b05ac237d952eccf4310f18488ab14ab480972917c878036d8011111c597497fd44e140d460de4b9d03002180, +023c773d89cf11406664015920015840eccc92fb0b5dbf8f036c80ec992f1cc8baaf3006c4dff4ab9d1d2080c5e700128107f0bd20c093d2d7af70172a018018, +87e5ea78990be4c94fe4258058226bca87fb2481eee37de6d87edd2fdc8180ef8580f2570524c004de0f69095109884478a158890110e511ae41064014490001, +9201eefa25e387f406e0a6f194a0f60f2b00d3ac9c0270691480690d2d0190c2a681ba4d020046d8023297274c0051005c2e6d843d0198a6815840bada0031b0, +0300d16a1802d0d000a300cd150751e80004b0e5e01235440499a1733d4a303590a7a4b66388009a62ed5807e9104cc318684aed922d0056dc3a56b248fc9841, +95001c4702d802d2cc6a14a08e4195fda88326457e34c13fba0008d8481d0d674baa495182aa060075e8be9ac9f26a5203601df6001d8a026940a20c54c2045b, +04855bc85d6449897f9181520f0224bf242440cec2595e20039301b318027e30889a007771013ef1002fd5d1c6cf3f842225f087c4501f82687979292d557120, +ab95380a0841f68305871a0998c5f5143128e6120440149904029ac0a1f3472a708953a00e880181dac446240d7d9416a4c073597c33b126206025f6a896c82c, +26806872f9448025f8c40948005a0012a8c62dc08504d005b2f8e5ce62a5e316f0e173401112bcc2d1c90197f8fdbe6214094e2f5874d6a4001c0ac3a58d89e0, +00808085f805b8881d9a8060a31eed2b080208003880d8f3803780f5d200fda1c01b400b3fa026bc4810a10cab387cda9500b800eef202a80331a1809331c43d, +c014248030701cdb63107ec008280e12100fb59109b08133a8c2042006dac02664db18a06360a0696040b68501d92606160046b88018490041e00360e4058091, +534030000c72010f4c101fe5637cbc04686017e44295588229e0ae32004cd4c5006481bb1b033be3635ee07948059a71b847704cdc1719a0002a180109e00ba0, +0318c101d8a8d1b00002f9570400be3b4a294005f102008ce1d79d3ddee1be0e770456059c2002ec948b724014e0c70f8100dc3550d0c57a6d8728c05d66808e, +7a287ec1ac8882356c4804003b8691e16486fb5a28ab810511b2e3bd07c186980ef919639588ec78095802974c032480148487c7100e468e614800cdf87810a2, +0da00a4f809385c9206e951e05ceac2100986402480397cc2303400dc802255907aae4007ce4866443d9200077110ec8e008988daed713e490dfa6478b910548, +490568942c063990244e5e322bb75514f05f3450377c93801c0d7e52823d866cc9823c391ab8009ff840035b0d2f208205cc30ac8004b61a3159263182c18187, +8321a51c6cd683a8d6a355e23252192953594ba8422f5895618393a3f2923d0038180024c6014823242fa59c9c17a2a067cc904d42a54ab949339900b60ae900, +06a5e0f8a349216150ca0fb79c003ec7914512f0964b213ac834344bb8eba224c2a9b011270057d8c046b6a1595a2a6630715746614c4a0425808912004881ed, +248996a18fc202c54003208043212886a581d4b236069cda9c5f9f6b036da0e14901bae016e2030709e0029c4019387c46581acc1023d80026d5244098a87414, +95d9468a43f1e851c92400788066a4bda9cc3330d307b065004c80502c4bc6418a89ca7d6d947509ba06f5a082e215888bbf047c5caf5811216b68809d782fb3, +8e96c83a66c9a7e3664f4c9a4d612592c753620410300823e90657a22a898a169b002531f838bc9f2ec039701387a2d43eca2084890a4a5c2cf3643acb94d9fe, +248038905c0840dfe026dacc0b65600d09000e2497b9f96661a00cce46da581b0218295a230e7a0d3a2883ad51a6c840146be24a848a4451994731292ec539d0, +380e3730f037c38006de40b870579f210073e016c44d02c0cd02f07bbe4f1948c0aa2a05fc4a31c55300b83b3520002e9100e4001d5b9b855c037b930064c66f, +0878d60c77570688501cb0e15bb27619126ce389d52080277cc3d7e1eeccc006f0d1a19a78ea521412200210bc06f7fd77d705242746c8005919006d0023d000, +73756e34762d746f000054e7000000004f424d44000002caff18848000000101e1dc8074080027201d5af14c9dc65ad2c75ac60612401b6027eb689d98c61a32, +40a1004041430340b83505e212520678d2a4160200b81e0600c0003a02146e681f9e0ef110845306434f4d5000000374434f4d50000002ca6400000000000000, +c800b4e6cd9c3bf342a3a3895207da494bd8430115110480448939200ebc2b251b3865e4d0c9a30333209a10010147ce189aa49933278d9b26001821eb003b09, +40c04d9836650807caa884013bc7d495c2dd01c5aa04804000086e0dda914b37391c001c0840c1182349c82206c12080e880288387259da18020f3a6cc1c3727, +9c78f087045c177f35efddba01f8b62d6b0fb50dde7e9bfb0fd05e7390fd36f6028c3c1cb04b2f80c2d04923864d19041096a060cc9b367018102002623965ce, +838738a6d8a1a3056b06a52e00e080241e228e2230702bc9e5c7bfe51122c66b44e8750021847783dc8221c36d802880ff3dbd3a6ee90f0bdd4138f0e1cf8d4b, +40f0bdb70800e135805aa6081106103e5e3b400404ef33a82ebc108e788d000f044d5162be036ef9a9e01f749a58c20801598c68229119643e50c2140f961809, +1608f3a326e6632048815b1010b380f9535e8b024a29a97cc0c188f912b8c51494535e83e235400c0d582289f910b8a5803e1f812400c81f233c48c294241018, +30d8a8348dc8401878c30c10021d34b30410323be32c9d40e628e33337c898e329263ad0280384130978b862b431d0783a800d0fe66be0164c310f40e50923f4, +0c37b65aa38cade853ad808a3c720221340c100c45948c5351ff64f40d37c6182003043106152b0d89b1e640e38d3ad8e170011249242821838d37c658c3533f, +c081331160605e18393ac1975d69bc4401a50d150d520014827fce91a58923220230610a1eb83562c288081158e03505586269a4a3031c31782358694d459594, +88e05f0128906081044884698c8cd1ca25280084239aa00288e38833b138067c851b7e4b078a35367618e2852f810461e14c5e7ba1122316c8c5d792542ac964, +00000208434f4d50726f6d00434f4d50762d666c617368700000000073756e3400000208000074e0000001014f424d4463e6066a062020003bf844a3854f435d, +c0c443121323843946400087016e99fa4d983968e0c879d39933012048486086000302449030404e10002030588ba1ae1078ea000080001a000002341f9e0ef1, +60ac4304671124f0141787067c8145701e1ac24a392c80ab9d078c4829354396028a12b8a584498f927c988960804d0400382066c2bf7cb21470eb48ac237128, +a1845b49103f7091049b9025372962d9084f843421c2a3680410043882c000421ee87208e1965b003a6c30d7a183bb0845b0c0974306babea5d02004870a7c6d, +9c346e40cc291346ab07d649284184240574ec448040826f1a1f4098a4ae87c6c4203501c012593150601401819d09a4006167181853642004098da853abca42, +0b810876aacd0104e7762a01899d32a88101313e040022061f90a55a56d1096ecf73e09d6aabb27c0342cc9b3a6ec87807041c9074ce936cce183420cebc2933, +7028835ba6e0b142010c18f26018040a4a1160088730d005e0025c2080c72000872a38d1210b5644c9502b8728f00a1896269a204543036426d8af3faaf4e349, +0e305303260b90a520839d20686c01e35b0410008a9d364078038e32dc406083825280bc401865081cd2e016202d00b2ad4700aef0a0c2ff0961d8ad37001860, +1a0108084f424d4478833b043cb8451803452d00b38031d80998230d3dca40a011810a3c58020f300e6e41c002179878fc2fcc8bc2200301140d9d34e2c885f0, +12204ca9e2e40a0b101c980500c00038000003701f9e0ef1000002ee434f4d5000000000434f4d506f6e2d6469736b00000000006c656769000002ee0000d4b6, +dcd02923474e1d38c89198d2144e8f694919604080081206a891e34a3761da94464cc400102410c0c198376de084a193993473d604a020413665cea479e3a605, +0028214b02872161184097028003a426f3346a51010f8621e0960400121290298180ae5607e0b24a005c54ad06c85a15311b359402560b0174e6a49450e0e49b, +2a25c1c01b3366e61377ae80af773794724d0b3661c494616e00cf570508f0d82959c2ac16b8556a9151c39c290349526e40b075bba62888dc9ca003e20d9c32, +c3264d623a2d76cb82b91b387242be18ea01ef08109ccdf065cb98352330c0cb10a957b3811c4632830b1f4ebc38e31a01e80560c26f87c094a1f3558083cf73, +d4ceaa046e592209b3bd0a908543003cf2daeb005962300263b7180abc4b81b9b90c90e0009e220a684306010eb88b84dcc501a369fb30d2b193664c99390208, +6e795100008451664cbe34f42803810600ac624017651468f9c0aa057479110480186724e5c50ffe4c44514516e37911d120400cc0613b05544e81c02000e059, +385a78a38ede22089042cb05f26ca14b0f37c64000825b8c9218884d37bd9c23b20533789af2815b244ae14e4b04c8e8800a01076e418081ad36c268210c36d8, +01596a8d410a5c33c44b602f0364414082144b99882186bb2a4158225518a640d86e825b908001060023ec5cc08411481090e016298e08c074d0260d45b405a1, +438e34883257cca8042ab805d609a2bde0290c325a686c0e010aac84314b6516e89043b039cc280a20062d19e8128f16539c4836d93f11883442d70642804189, +307334032e3640e0cb02da7b6337043213a04b000324264520e11019d6b500881aee2aa09419742524e03c04303013018011ce45e08275b5d0b5a03304da55e6, +9521608e28a7f4a0a0839e9bd679b4a0a189025a6031c9457e37de293938ab8083b308c8f962073807f84de071c94060008100b05929e595ddca5803010dcc04, +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020001010000000067aca5f42d681603, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000e661030000000000150000000400000000730f000000000005000000000000000e4e04000000000000000005100000060300010000000016d0, +00000000000000c9610300000000001500000000000000eb61030000000000150000000000000064610300000000001500000000000000576103000000000015, +00000000000000fa610300000000001500000000000000f861030000000000150000000000000000760c00000000001900000000000000d56103000000000015, +00000000000000174e0500000000003500000000000000004500000000000000000000000000011b61030000000000150000000000000001760e000000000026, +0000000000004000760400000000005000000000000000207609000000000046000000060000000864040000000000410000000000000001760500000000003b, +00000000000000004500000000000000000000000000005b6103000000000015000000000000003061040000000000630000000000000004760d000000000055, +00000000000000107609000000000046000000050000001064040000000000410000000000000001760500000000003b00000000000000204e05000000000035, +000000000000005b6103000000000015000000000000003661040000000000630000000000000004760d00000000005500000000000020007604000000000050, +000000060000001864040000000000410000000000000001760500000000003b00000000000000284e0300000000006800000000000000004500000000000000, +00000000000000306104000000000063000000000000002b760e0000000000740000000000000000760d0000000000550000000000000040760700000000006c, +000000050000002064040000000000410000000000000001760500000000003b00000000000000304e0300000000006800000000000000004500000000000000, +00000000000000366104000000000063000000000000002b760e0000000000740000000000000000760d0000000000550000000000000080760700000000006c, +000000000000003c61040000000000630000000700000028640400000000004100000000000000364e0900000000008300000000000000004500000000000000, +000000000000003c4e090000000000830000000000000000450000000000000000000000000000206103000000000015000000000000000e6103000000000015, +0000000000000028610300000000001500000000000000176103000000000015000000000000003c610400000000006300000034000000306404000000000041, +000000000000000076030000000000940000000000000000760200000000009100000000000000534e0300000000008d00000000000000004500000000000000, +00000028000000a8640a0000000000b80000000002faf080760f0000000000a8000000390000006864070000000000a000000000000000007607000000000098, +000000000000000876110000000000e4000000000000000876110000000000d200000006000000d073080000000000c9000000000000000876050000000000c3, +000000000000000d761100000000012b0000000000000004760d00000000011d00000000000000087614000000000108000000000000000876110000000000f6, +000000000000005761040000000000630000000000000030760c000000000165000000000000002b76120000000001520000000000000002761400000000013d, +00000000000000004500000000000000000000000000005361030000000000150000000000000036610300000000001500000000000000306103000000000015, +00000000000000004500000000000000000000000000003c610400000000006300000003000000d8640400000000004100000000000000574e09000000000083, +0000000000000000450000000000000000000000000000006104000000000063000000000000003c6103000000000015000000000000005b4e04000000000172, +000000000000004076090000000000460000000b000000e064040000000000410000000000000002760500000000003b00000000000000644e05000000000035, +000000000000000e610400000000006300000000000000176104000000000063000000000000000c760d00000000005500000000003000007604000000000050, +000000000000006861030000000000150000000000000000610400000000006300000000000000684e0700000000017700000000000000004500000000000000, +00000004000000f073040000000001880000000000000064610400000000006300000000000000854e0800000000017f00000000000000004500000000000000, +0000000f00000108640a0000000000b80000000600000100730b0000000001a00000000000000000760800000000019700000004000000f8730900000000018d, +000000000000000f760a0000000001d20000001000000148640b0000000001c60000003000000118640e0000000001b70000000000000000760a0000000001ac, +00000000000000ff760d000000000200000000000000010076040000000001fb000000300000016064120000000001e80000000200000158730a0000000001dd, +000000000000002476080000000002350000000000000020760f0000000002250000000000000080760b0000000002190000001000000190640a00000000020e, +00000020000001c8641200000000026b0000000000000001761000000000025a00000010000001b8640a00000000024f00000018000001a0641000000000023e, +00000000000000bb610300000000001500000000000000b4610300000000001500000000000000ad610300000000001500000010000001e8640a00000000027e, +00000000000000c9610400000000006300000000000000894e0e0000000002890000000000000000450000000000000000000000000000c26103000000000015, +0000000000000085610400000000006300000000000000954e0d0000000002980000000000000000450000000000000000000000000000896103000000000015, +000000200000020864090000000002bc0000000000000001760a0000000002b1000000070000020073060000000002aa00000007000001f873030000000002a6, +00000000000000a16103000000000015000000000000009b6103000000000015000000000000009561030000000000150000001000000228640a00000000024f, +00000000000000896104000000000063000000000000009b4e090000000002c60000000000000000450000000000000000000000000000a76103000000000015, +00000000000000004500000000000000000000180000023864040000000002d9000000000000001476030000000002d5000000000000000176040000000002d0, +000000000000001576030000000002d5000000000000000276040000000002d00000000000000089610400000000006300000000000000a14e090000000002c6, +0000000000000089610400000000006300000000000000a74e090000000002c600000000000000004500000000000000000000180000025064040000000002d9, +00000000000000004500000000000000000000180000026864040000000002d9000000000000001676030000000002d5000000000000000376040000000002d0, +000000000000001776030000000002d5000000000000000476040000000002d00000000000000089610400000000006300000000000000ad4e090000000002c6, +000000180000029864120000000002f200000000000000b44e130000000002de00000000000000004500000000000000000000180000028064040000000002d9, +0000000000000068610400000000006300000007000002b07312000000000326000000000000001476100000000003150000000000000001760f000000000305, +0000000000000002760f00000000030500000018000002b864120000000002f200000000000000bb4e130000000002de00000000000000004500000000000000, +000000000000000045000000000000000000000000000068610400000000006300000007000002d0731200000000032600000000000000157610000000000315, +000000000000001676100000000003150000000000000003760f00000000030500000018000002d864120000000002f200000000000000c24e130000000002de, +00000000000000c94e130000000002de000000000000000045000000000000000000000000000068610400000000006300000007000002f07312000000000326, +00000007000003107312000000000326000000000000001776100000000003150000000000000004760f00000000030500000018000002f864120000000002f2, +0000000000000000610400000000006300000000000000cf4e080000000003390000000000000000450000000000000000000000000000686104000000000063, +0000000000000000450000000000000000000000000000cf61030000000000150000000000000106610300000000001500000000000000856103000000000015, +0000000600000320730b0000000003590000000500000318730c00000000034c00000000000000c9610400000000006300000000000000d54e09000000000342, +0000000000000000610400000000006300000000000000e14e0f000000000370000000000000000045000000000000000000000600000328730a000000000365, +0000001b00000340640a0000000000b8000000000000001f760a0000000001dd0000000000000100760a0000000001ac00000010000003307304000000000188, +000000000000015a61030000000000150000000000000111610300000000001500000000000000fc61030000000000150000001000000360730b0000000001a0, +0000000001000000760400000000038700000000000000e64e060000000003800000000000000000450000000000000000000000000001636103000000000015, +00000000000000eb4e0600000000038c0000000000000000450000000000000000000000000000e66104000000000063000000003f0000007604000000000050, +000000000000000045000000000000000000000000000000610400000000006300000000000000e1610300000000001500000000000000007615000000000393, +00000000000003e876130000000003be000000140000038073040000000001880000000f00000370730b0000000003b200000000000000f84e080000000003a9, +0000000083f9edf076060000000003fc000000e0815f2cab760b0000000003f0000000000000002076080000000003e70000000757b12c0076140000000003d2, +00000000000000017611000000000413000000000000000061040000000000630000000002faf080760f0000000004030000000000ab41307607000000000098, +00000000000000fc4e0400000000042a0000000000000000450000000000000000000000000000fa4e0400000000042500000000000000004500000000000000, +0000000800000398730400000000018800000000000000d5610400000000006300000000000001064e0e00000000042f00000000000000004500000000000000, +0000000000000000760800000000043e000000000000001176030000000002d5000000000000000176040000000002d000000007000003a0730b0000000001a0, +00000000000001114e080000000004470000000000000000450000000000000000000017000003a8640a0000000000b80000000000000001760a0000000001ac, +0000001b000003f8730400000000045b0000001b000003d8730400000000045600000018000003c0730500000000045000000000000000c96104000000000063, +000000170000046873040000000004700000001000000458730400000000046b0000001b00000438730400000000046600000019000004187305000000000460, +00000000000000d56104000000000063000000000000011b4e0f000000000485000000000000000045000000000000000000001b00000480730f000000000475, +0000000000000200760a0000000001ac0000001b000004c0640a0000000000b800000010000004b0730b0000000001a000000010000004a07304000000000188, +0000000000000000450000000000000000000000000001536103000000000015000000000000014c610300000000001500000000000001276103000000000015, +00000000000001376103000000000015000000000000012161030000000000150000000000000000610400000000006300000000000001214e11000000000495, +000000000000011b610400000000006300000000000001274e100000000004a70000000000000000450000000000000000000000000001456103000000000015, +00000000000000004500000000000000000000000000000576060000000004bf000000000000000476060000000004b800000000000000027602000000000091, +00000007000004f8730b0000000001a000000013000004e0640a0000000000b80000000000000111610400000000006300000000000001304e0e00000000042f, +000000000000013e6103000000000015000000000000013061030000000000150000000000000000760a0000000001ac00000010000005007304000000000188, +0000000a0000051073040000000001880000000000000127610400000000006300000000000001374e130000000004c600000000000000004500000000000000, +000000000000000045000000000000000000000600000520730d0000000004da0000000000000137610300000000001500000000000000007602000000000091, +000000000000000076060000000004b800000000000000007602000000000091000000000000011b6104000000000063000000000000013e4e100000000004a7, +00000000000001454e130000000004c60000000000000000450000000000000000000000000001306104000000000063000000000000000176060000000004bf, +00000000000001456103000000000015000000000000000176020000000000910000000a00000528730400000000018800000000000001276104000000000063, +000000000000011b6104000000000063000000000000014c4e100000000004a7000000000000000045000000000000000000000d00000538730d0000000004da, +000000000000013e6104000000000063000000000000000376060000000004bf000000000000000276060000000004b800000000000000017602000000000091, +0000002000000548640a0000000000b80000000000000111610400000000006300000000000001534e0e00000000042f00000000000000004500000000000000, +000000000000000045000000000000000000000000000000760a0000000001ac0000001d0000057073040000000001880000000400000568730b0000000001a0, +00000004000005a8730b0000000001a00000001700000590640a0000000000b800000000000001116104000000000063000000000000015a4e0e00000000042f, +00000000000001634e0e00000000042f000000000000000045000000000000000000000000000000760a0000000001ac00000014000005b07304000000000188, +000000000000000076080000000004fa00000014000005d073110000000004e800000005000005c8730400000000018800000000000000d56104000000000063, +000000000000000045000000000000000000000000000000760a0000000001ac000000000000000076030000000002d5000000000000000076040000000002d0, +00000013000005f073110000000004e800000005000005e8730400000000018800000000000000d56104000000000063000000000000016c4e0e00000000042f, +0000000000000002760a0000000001ac000000000000003f76030000000002d5000000000000000076040000000002d0000000000000000076080000000004fa, +0072657365742d7273696f6e0066776474656e742d766572726f6f7400636f6e0000000000000000000000000000000000000000000000004500000000000000, +6f6369617469766973697a65006173736e652d73697a65000074797065006c696865006c6576656c696f6e23006361632d67656e657261746561736f6e006d64, +73657269616c23000069640070696400756e697400637075737400657865632d2d73697a652d6c696965730070616765746c6200656e74727479006261636b00, +6d6f6e646f2d23626500712d6370752d006d6d752d7479706c65006e77696e73636f6d7061746962657175656e637900636c6f636b2d66726973616c69737400, +62697473006d6d75756d61626c652d23712d6e6f6e726573652d236269747300726573756d61626c236269747300712d762d6d6f6e646f2d69747300712d6465, +67652d73697a652d73006d6d752d70612d636f6e746578742d2373686172656462697473006d6d75636f6e746578742d6273006d6d752d232d6d61782d237473, +697361626c65640075646f6e796d00646e616d65007073656f646576696365006879735f696f006973006370757300702d2376612d6269746c697374006d6d75, +746d61700070726f6100696e6f2d6269727475616c2d646d616e6765730076696464726573732d7268616e646c650061797065006366672d6465766963652d74, +006d73692d65712d692d72616e6765732d6d61736b006d736d73692d64617461657300236d7369006573732d72616e676d73692d6164647262652d6c69737400, +730023696e7465726e74657272757074646576696e6f0069692d65712d746f2d692d657173006d736964746800236d73782d646174612d7773697a65006d7369, +696e74657272757070742d6d6170730000696e7465727275732d72616e6765732d6d61736b006275727570742d6d61706c7300696e746572727570742d63656c, +006164647200696e696e747200696e6f74657272757074002d6d61736b00696e6c6c7300696e747200696e74722d63657600706172656e74742d6d6170006465, +656e742d696e746572757074007061726c642d696e7465727265737300636869756e69742d61646479006368696c642d6d61702d656e7472746572727570742d, +00626f6f742d6465652d64656275673f6c65730066636f647400766172696162006f70656e626f6f6963652d7061746872656e742d6465767272757074007061, +792d67656e6572617279006d656d6f72617365006d656d6f6d626c6f636b006264657669636573007669727475616c2d6f2d626f6f743f007669636500617574, +6f672d6d61782d746e0077617463686465736f6c7574696f746368646f672d722d6e616d650077616d0062616e6e657200706c6174666f7274696f6e2d696423, +6e696e672d656e61637900646f6d61692d6672657175656e696400737469636b65737300686f73746d61632d6164647261782d6370757300696d656f7574006d, +6574007474796100766469736b00736e6576616c69617300616e6e656c230064657669636500636869727475616c2d647300637771730076626c6564006d6175, +6e6e656c2d656e6469636573006368616e6e656c2d646576736f6c65006368617475616c2d636f6e6469736b0076697279620073637369006e7672616d007474, +7400766c64632d73766963652d706f72727475616c2d6465782d696e6f00766974782d696e6f00726e64706f696e740068616e6e656c2d65706f696e74730063, +696e73746e000000312e3000000000000000000000000000636500000000000065006d792d737061697665722d6e616d66636f64652d647276632d6e616d6500, +656765722d73746f6c6f616400696e74696e74656765722d696e74656765720069666574636800006461746100000000696e73746e0000006461746100000000, +6376382d66736d7563763800737061726c75730073706172737061726376387073706172637639006f7265000000000061640066702d737472650066702d6c6f, +750073756e34760073756e34762d637054310053554e572c726153504152432d53554e572c556c74000000000000000076370073706172636c64007370617263, +53554e572c73756e7063696578000000706369000000000070636900000000007461000000000000696e73746e006461667000000000000073756e3476000000, +000000008000000000000003ffff0000000000cc00000000000000007fff0000000000ca000000000000000010000000000000c81000000034762d7063690000, +000000000001000000000000ffff000000000000000000030000000000010000000000007fff0000000000000000000030000000000000000000000080000000, +0000000000fff000000000000000003e000000000000003f00000000000000180000000000000024000000000000000000000000000001000000000000000000, +0000000000fff0002f706369403000002f7063694030000000000000000000ff0000000000000002000000000000000700000000000000000000000000000000, +000000000000000000000000000000000000000000020000000000000000003e000000000000003f000000000000000700000000000000000000000000000000, +00000000000000000000000000020000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000020000, +0000000000000000000000000000000000000000000200002f706369403000000000000000000000000000000000000000000000000200000000000000000000, +0000000000000000000000000000000000000000000200002f706369403000000000000000000000000000000000000000000000000200002f70636940300000, +34762d766972747553554e572c73756e64657669636573007669727475616c2d66616c7365000000766469736b00000074727565000000002f70636940300000, +2d466972652d543153554e572c53756e205431303030000053756e204669726564657669636573007669727475616c2d6573000000000000616c2d6465766963, +2d646576696365732f7669727475616c6f6e736f6c6500002c73756e34762d6371636e0053554e5773657269616c0000636f6e736f6c65003030300000000000, +2f636f6e736f6c652d646576696365732f7669727475616c40300000000000002f6e6574776f726b2d646576696365732f7669727475616c2f6469736b403000, +2f636f6e736f6c652d646576696365732f7669727475616c00000000000000002f6e7672616d40332d646576696365732f7669727475616c4031000000000000, +2d646576696365732f7669727475616c6469736b403000002f7363736940312f2f706369403763302f736373694031002f706369403763304034000000000000, +34762d6368616e6e53554e572c73756e64657669636573006368616e6e656c2d64657669636573006368616e6e656c2d40310000000000002f636f6e736f6c65, +6368616e6e656c007669727475616c2d73657269616c0000656c00000000000034762d6368616e6e53554e572c73756e6573000000000000656c2d6465766963, +53554e572c73756e6d617279000000006c646f6d2d7072697400000000000000766c64632d706f72687663746c0000007400000000000000766c64632d706f72, +61746f7200000000636f6e63656e7472636f6e736f6c652d7669727475616c2d76636300000000006e747261746f72006c652d636f6e636534762d636f6e736f, +6469736b0000000076657200000000006469736b2d7365727669727475616c2d7664730000000000736572766572000034762d6469736b2d53554e572c73756e, +0000000000000000636500000000000075616c2d646576696e65742d76697274736e65740000000069636500000000007475616c2d6465766469736b2d766972, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +0000000002faf080760f0000000000150000000100000000760f00000000000500000000000000104e0400000000000000000260000000580001000000000c00, +000000000000001c6103000000000025000000000000001861030000000000250000000000000014610300000000002500000000000000106103000000000025, +000000000000002a6103000000000025000000000000002661030000000000250000000000000023610300000000002500000000000000206103000000000025, +00000000000000007603000000000030000000fff0c2c000760600000000002900000000000000a8610300000000002500000000000000316103000000000025, +0000000002faf080760f0000000000150000000000000000610400000000003d00000000000000144e0800000000003400000000000000004500000000000000, +000000000000003561030000000000250000000000000000610400000000003d00000000000000184e0600000000004200000000000000004500000000000000, +000000000000006161030000000000250000000000000000610400000000003d000000000000001c4e0400000000004900000000000000004500000000000000, +000000000000006a61030000000000250000000000000000610400000000003d00000000000000204e0600000000004e00000000000000004500000000000000, +000000000000000045000000000000000000000000000000610400000000003d00000000000000234e0400000000005500000000000000004500000000000000, +000000000000002a4e0700000000005f000000000000000045000000000000000000000000000000610400000000003d00000000000000264e0400000000005a, +00000000000000314e0d00000000006700000000000000004500000000000000000000000000005a61030000000000250000000000000000610400000000003d, +000000000000008e6103000000000025000000000000007f6103000000000025000000000000007261030000000000250000000000000000610400000000003d, +0000000000000000610400000000003d00000000000000354e080000000000750000000000000000450000000000000000000000000000996103000000000025, +0000000000000014610400000000003d00000000000000524e0500000000007e0000000000000000450000000000000000000000000000b26103000000000025, +000000000000000176030000000000990000000000000000760b00000000008d0000000000000000760300000000008900000008000000007304000000000084, +0000000000000000760f0000000000c30000000000000000760d0000000000b50000000000000000760c0000000000a80000000000000000760a00000000009d, +0000000000000056610300000000002500000000000000526103000000000025000000000000000076080000000000e4000000000000000076100000000000d3, +000000fff00f000076040000000000ed000000000000006a610300000000002500000000000000616103000000000025000000000000005a6103000000000025, +000000fff008000076070000000000f200000000000000996103000000000025000000000000007f610300000000002500000000000000726103000000000025, +000000fff1000000760600000000011000000000000020007606000000000109000000fff00fc0007606000000000102000000000007000076070000000000fa, +00000000000000564e0f0000000001170000000000000000450000000000000000000000000000b9610300000000002500000000000000b26103000000000025, +000000000000005a4e0f00000000013100000000000000004500000000000000000000000000010076090000000001270000000000000035610400000000003d, +00000000000000614e0800000000014100000000000000004500000000000000000000000000020076090000000001270000000000000035610400000000003d, +000000000000000076090000000001270000000000000000760b00000000008d0000000000000026610400000000003d0000000000000035610400000000003d, +0000000000000018610400000000003d000000000000006a4e0300000000014a0000000000000000450000000000000000000000000000007603000000000089, +0000000000000000760b00000000008d0000000000000000760300000000014e000000000000000076030000000000990000000000000035610400000000003d, +00000000000000724e06000000000159000000000000000045000000000000000000000000000001760600000000015200000000000000007603000000000089, +000000003f0000007607000000000168000000000100000076070000000001600000000000000035610400000000003d000000000000001c610400000000003d, +000000000000007f4e0c000000000179000000000000000045000000000000000000000000000000760b00000000008d00000000010000007608000000000170, +000000000000000076070000000001920000000000000001760b0000000001860000000000000035610400000000003d000000000000002a610400000000003d, +0000000000000000760e0000000001a8000000000000000176060000000001a10000000000000000760600000000019a0000000000000000760b00000000008d, +000000000000000045000000000000000000000000000000760f0000000001d4000000080000001073100000000001c30000000600000008730b0000000001b7, +0000000000000000760b0000000001860000000000000035610400000000003d000000000000002a610400000000003d000000000000008e4e0c000000000179, +000000000000000376060000000001a10000000000000002760600000000019a0000000000000002760b00000000008d00000000000000017607000000000192, +000000080000002073100000000001c30000000500000018730b0000000001b70000000000000002760e0000000001a80000000000000000760c0000000001e4, +00000000000000994e0c00000000017900000000000000004500000000000000000000080000002873100000000001f10000000000000000760f0000000001d4, +0000000000000001760b00000000008d000000000000000076070000000001920000000000000000760b000000000186000000000000002a610400000000003d, +000000080000003873100000000001c30000000600000030730b0000000001b70000000000000000760e0000000001a80000000000000000760c0000000001e4, +000000000000002a610400000000003d00000000000000a84e0c0000000001790000000000000000450000000000000000000000000000017606000000000202, +0000000000000003760b00000000008d000000000000000276070000000001920000000000000000760b0000000001860000000000000035610400000000003d, +0000000000000001760e0000000001a80000000000000000760c0000000001e4000000000000000576060000000001a10000000000000004760600000000019a, +000000080000005073100000000001f10000000000000000760f0000000001d4000000080000004873100000000001c30000000500000040730b0000000001b7, +000000000008000076080000000002140000000000000000610400000000003d00000000000000ad4e0a00000000020900000000000000004500000000000000, +00000000000000a8610400000000003d00000000000000b24e0b00000000021d0000000000000000450000000000000000000000000000ad6103000000000025, +00000000000000b94e07000000000233000000000000000045000000000000000000000000180000760400000000022e00000000000800007604000000000229, +0000000000000000760b00000000008d0000000000000011760300000000023b0000000000000035610400000000003d0000000000000031610400000000003d, +0000000000000035610400000000003d00000000000000bf4e0400000000024800000000000000004500000000000000000000fff0c2c000760800000000023f, +00000000000000004500000000000000000000fff0c2c05076070000000002560000000000000000760b00000000008d000000000000003f760800000000024d, +0068767561727400656e637900667764636b2d667265717573696f6e0073746974656e742d766572726f6f7400636f6e00000000000000000000000000000000, +64635f656e64706f657669636573006c73006377717300646d6f7279006d61750063707573006d656b00677565737473666f726d00626163746f6400706c6174, +72657365742d72652d6f6666736574000070696400746f646f757263655f69640067696400726573657374006e616d65736f6c6573006775696e747300636f6e, +70726976006d6470626c6500646961676c61636365737369737300726e67637474726874616363657373007065726663666374726163636561736f6e00706572, +666768616e646c65657669636573006369727475616c5f646469736b70610076006e7673697a650065006e76626173656500726f6d73697a6100726f6d626173, +6d656d73697a65006d656d6261736500006d626c6f636b006400706172746964730063707500766900706369655f62755f64657669636573006368616e6e656c, +7461726765745f630072782d696e6f006c0074782d696e6f65006368616e6e65726765745f747970706f696e74007461006c64635f656e647265616c62617365, +65745f67756573746e6365007461726765725f696e737461616d650073657276725f6c646f6d5f6e6d6500736572766565727665725f6e6168616e6e656c0073, +0062617365007369675f6d626c6f636b73697a6500667261616365006672616700667261675f737065007376635f69646c646f6d5f6e616d00636c69656e745f, +687663746c000000646f6d61696e300065745f7061000000745f696e6f00736e736e657400736e6561727462617365006c6500696e6f00757a6500636f6e736f, +646f6d61696e3000766c646300000000646f6d61696e3000687663746c000000646f6d61696e3000646f6d61696e3000766c646300000000646f6d61696e3000, +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646f6d61696e3000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; \ No newline at end of file diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_256x512/bram_256x512.xci b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_256x512/bram_256x512.xci new file mode 100644 index 0000000..ab2fd37 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_256x512/bram_256x512.xci @@ -0,0 +1,201 @@ + + + xilinx.com + xci + unknown + 1.0 + + + bram_256x512 + + + 4096 + 8 + 8 + 1 + 4 + 0 + 1 + 9 + 1 + 1 + 7 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 53.597652 mW + zynq + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + bram_256x512.mem + bram_256x512.mif + 0 + 1 + 1 + 0 + 1 + 256 + 256 + 512 + 512 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 1 + 256 + 256 + NO_CHANGE + READ_FIRST + 512 + 512 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + true + 9 + NONE + ../../../common/ip_cores/bram_256x512/test_proto.coe + ALL + bram_256x512 + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Use_ENB_Pin + Single_Bit_Error_Injection + true + Native + true + no_mem_loaded + Simple_Dual_Port_RAM + NO_CHANGE + READ_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 50 + 100 + 100 + 0 + 8kx2 + false + false + 512 + 512 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 256 + 512 + 512 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_256x512/bram_256x512.xml b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_256x512/bram_256x512.xml new file mode 100644 index 0000000..f1a1f03 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/bram_256x512/bram_256x512.xml @@ -0,0 +1,3398 @@ + + + xilinx.com + customized_ip + bram_256x512 + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + true + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + addra + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + douta + + out + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dinb + + in + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 511 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 1 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 1 + + + C_INIT_FILE_NAME + bram_256x512.mif + + + C_INIT_FILE + bram_256x512.mem + + + C_USE_DEFAULT_DATA + 1 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + NO_CHANGE + + + C_WRITE_WIDTH_A + 512 + + + C_READ_WIDTH_A + 512 + + + C_WRITE_DEPTH_A + 256 + + + C_READ_DEPTH_A + 256 + + + C_ADDRA_WIDTH + 8 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 1 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + READ_FIRST + + + C_WRITE_WIDTH_B + 512 + + + C_READ_WIDTH_B + 512 + + + C_WRITE_DEPTH_B + 256 + + + C_READ_DEPTH_B + 256 + + + C_ADDRB_WIDTH + 8 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 1 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 7 + + + C_COUNT_18K_BRAM + 1 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 53.597652 mW + + + + + + choice_list_47b17181 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + choice_pairs_eab86dfe + READ_FIRST + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + bram_256x512 + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Simple_Dual_Port_RAM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + true + + + + + + ECC + false + + + + true + + + + + + softecc + false + + + + true + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + true + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + true + + + + true + + + + + + Write_Width_A + 512 + + + + true + + + + + + Write_Depth_A + 256 + + + + true + + + + + + Read_Width_A + 512 + + + + false + + + + + + Operating_Mode_A + NO_CHANGE + + + + true + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 512 + + + + true + + + + + + Read_Width_B + 512 + + + + true + + + + + + Operating_Mode_B + READ_FIRST + + + + false + + + + + + Enable_B + Use_ENB_Pin + + + + true + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + true + + + + true + + + + + + Coe_File + ../../../common/ip_cores/bram_256x512/test_proto.coe + + + + true + + + + + + Fill_Remaining_Memory_Locations + true + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + true + + + + + + Use_RSTA_Pin + false + + + + false + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + true + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 50 + + + + true + + + + + + Port_B_Clock + 100 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + false + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 100 + + + + true + + + + + + Collision_Warnings + ALL + + + + true + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/mem_uart_done/mem_uart_done.xci b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/mem_uart_done/mem_uart_done.xci new file mode 100644 index 0000000..b09796f --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/mem_uart_done/mem_uart_done.xci @@ -0,0 +1,195 @@ + + + xilinx.com + xci + unknown + 1.0 + + + mem_uart_done + + + 4096 + 6 + 6 + 1 + 4 + 0 + 1 + 9 + 0 + 1 + 0 + NONE + 0 + 0 + 0 + ./ + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Estimated Power for IP : 2.3768 mW + zynq + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + mem_uart_done.mem + mem_uart_done.mif + 0 + 1 + 3 + 0 + 1 + 64 + 64 + 8 + 8 + 0 + 0 + CE + CE + ALL + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 1 + 64 + 64 + WRITE_FIRST + WRITE_FIRST + 8 + 8 + zynq + 4 + Memory_Slave + AXI4_Full + false + Minimum_Area + false + 9 + NONE + ../../../common/ip_cores/mem_uart_done/mem_uart_done.coe + ALL + mem_uart_done + false + false + false + false + false + false + false + false + false + Use_ENA_Pin + Always_Enabled + Single_Bit_Error_Injection + true + Native + true + no_mem_loaded + Single_Port_ROM + WRITE_FIRST + WRITE_FIRST + 0 + 0 + BRAM + 0 + 100 + 100 + 0 + 0 + 0 + 0 + 8kx2 + false + false + 8 + 8 + false + false + false + false + 0 + false + false + CE + CE + SYNC + false + false + false + false + false + false + false + 64 + 8 + 8 + No_ECC + false + false + false + Stand_Alone + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 6 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/mem_uart_done/mem_uart_done.xml b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/mem_uart_done/mem_uart_done.xml new file mode 100644 index 0000000..a2b94ab --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/mem_uart_done/mem_uart_done.xml @@ -0,0 +1,3388 @@ + + + xilinx.com + customized_ip + mem_uart_done + 1.0 + + + CLK.ACLK + ACLK + AXI4 Interconnect Clock Input + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + AXI_SLAVE_S_AXI:AXILite_SLAVE_S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + + + RST.ARESETN + ARESETN + AXI4 Interconnect Reset Input + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + AXI_SLAVE_S_AXI + AXI_SLAVE + AXI_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + AXILite_SLAVE_S_AXI + AXILite_SLAVE + AXILite_SLAVE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + BRAM_PORTA + BRAM_PORTA + BRAM_PORTA + + + + + + + ADDR + + + addra + + + + + CLK + + + clka + + + + + DIN + + + dina + + + + + DOUT + + + douta + + + + + EN + + + ena + + + + + RST + + + rsta + + + + + WE + + + wea + + + + + + + true + + + + + + BRAM_PORTB + BRAM_PORTB + BRAM_PORTB + + + + + + + ADDR + + + addrb + + + + + CLK + + + clkb + + + + + DIN + + + dinb + + + + + DOUT + + + doutb + + + + + EN + + + enb + + + + + RST + + + rstb + + + + + WE + + + web + + + + + + + false + + + + + + + + S_1 + + Mem0 + 0 + 4096 + 32 + memory + read-write + + + OFFSET_BASE_PARAM + C_BASEADDR + + + OFFSET_HIGH_PARAM + C_HIGHADDR + + + + + + + + + clka + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rsta + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + ena + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + regcea + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wea + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addra + + in + + 5 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + dina + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + douta + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + true + + + + + + clkb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rstb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + enb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + regceb + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + web + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + addrb + + in + + 5 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + dinb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + doutb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + eccpipece + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rdaddrecc + + out + + 5 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + deepsleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + shutdown + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rsta_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + rstb_busy + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_sbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_dbiterr + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rdaddrecc + + out + + 5 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_XDEVICEFAMILY + zynq + + + C_ELABORATION_DIR + ./ + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_AXI_SLAVE_TYPE + 0 + + + C_USE_BRAM_BLOCK + 0 + + + C_ENABLE_32BIT_ADDRESS + 0 + + + C_CTRL_ECC_ALGO + NONE + + + C_HAS_AXI_ID + 0 + + + C_AXI_ID_WIDTH + 4 + + + C_MEM_TYPE + 3 + + + C_BYTE_SIZE + 9 + + + C_ALGORITHM + 1 + + + C_PRIM_TYPE + 1 + + + C_LOAD_INIT_FILE + 1 + + + C_INIT_FILE_NAME + mem_uart_done.mif + + + C_INIT_FILE + mem_uart_done.mem + + + C_USE_DEFAULT_DATA + 1 + + + C_DEFAULT_DATA + 0 + + + C_HAS_RSTA + 0 + + + C_RST_PRIORITY_A + CE + + + C_RSTRAM_A + 0 + + + C_INITA_VAL + 0 + + + C_HAS_ENA + 1 + + + C_HAS_REGCEA + 0 + + + C_USE_BYTE_WEA + 0 + + + C_WEA_WIDTH + 1 + + + C_WRITE_MODE_A + WRITE_FIRST + + + C_WRITE_WIDTH_A + 8 + + + C_READ_WIDTH_A + 8 + + + C_WRITE_DEPTH_A + 64 + + + C_READ_DEPTH_A + 64 + + + C_ADDRA_WIDTH + 6 + + + C_HAS_RSTB + 0 + + + C_RST_PRIORITY_B + CE + + + C_RSTRAM_B + 0 + + + C_INITB_VAL + 0 + + + C_HAS_ENB + 0 + + + C_HAS_REGCEB + 0 + + + C_USE_BYTE_WEB + 0 + + + C_WEB_WIDTH + 1 + + + C_WRITE_MODE_B + WRITE_FIRST + + + C_WRITE_WIDTH_B + 8 + + + C_READ_WIDTH_B + 8 + + + C_WRITE_DEPTH_B + 64 + + + C_READ_DEPTH_B + 64 + + + C_ADDRB_WIDTH + 6 + + + C_HAS_MEM_OUTPUT_REGS_A + 0 + + + C_HAS_MEM_OUTPUT_REGS_B + 0 + + + C_HAS_MUX_OUTPUT_REGS_A + 0 + + + C_HAS_MUX_OUTPUT_REGS_B + 0 + + + C_MUX_PIPELINE_STAGES + 0 + + + C_HAS_SOFTECC_INPUT_REGS_A + 0 + + + C_HAS_SOFTECC_OUTPUT_REGS_B + 0 + + + C_USE_SOFTECC + 0 + + + C_USE_ECC + 0 + + + C_EN_ECC_PIPE + 0 + + + C_HAS_INJECTERR + 0 + + + C_SIM_COLLISION_CHECK + ALL + + + C_COMMON_CLK + 0 + + + C_DISABLE_WARN_BHV_COLL + 0 + + + C_EN_SLEEP_PIN + 0 + + + C_USE_URAM + 0 + + + C_EN_RDADDRA_CHG + 0 + + + C_EN_RDADDRB_CHG + 0 + + + C_EN_DEEPSLEEP_PIN + 0 + + + C_EN_SHUTDOWN_PIN + 0 + + + C_EN_SAFETY_CKT + 0 + + + C_DISABLE_WARN_BHV_RANGE + 0 + + + C_COUNT_36K_BRAM + 0 + + + C_COUNT_18K_BRAM + 1 + + + C_EST_POWER_SUMMARY + Estimated Power for IP : 2.3768 mW + + + + + + choice_list_5453281d + Native + AXI4 + + + choice_list_5f2d7eda + 16kx1 + 8kx2 + 4kx4 + 2kx9 + 1kx18 + 512x36 + 256x72 + + + choice_list_6e3ded9c + 0 + 1 + 2 + 3 + + + choice_list_85010fde + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + + + choice_list_89a27b2f + 8 + 9 + + + choice_list_bdf7387e + BRAM + URAM + AUTO + + + choice_list_c8df20f0 + NONE + ECCH32-7 + ECCH64-8 + ECCHSIAO32-7 + ECCHSIAO64-8 + ECCHSIAO128-9 + + + choice_pairs_07c32259 + WRITE_FIRST + READ_FIRST + NO_CHANGE + + + choice_pairs_27c66b0d + Stand_Alone + BRAM_Controller + + + choice_pairs_2adcaf32 + SYNC + ASYNC + + + choice_pairs_2d73cdeb + Always_Enabled + Use_ENB_Pin + + + choice_pairs_3949ecbf + Always_Enabled + Use_ENA_Pin + + + choice_pairs_3e9ce7ae + Minimum_Area + Low_Power + Fixed_Primitives + + + choice_pairs_44b9b2d1 + ALL + NONE + WARNING_ONLY + GENERATE_X_ONLY + + + choice_pairs_63de7f78 + CE + SR + + + choice_pairs_716d2fba + Single_Bit_Error_Injection + Double_Bit_Error_Injection + Single_and_Double_Bit_Error_Injection + + + choice_pairs_b91edaa2 + Memory_Slave + Peripheral_Slave + + + choice_pairs_c1013cbe + No_ECC + Soft_ECC + BuiltIn_ECC + + + choice_pairs_e4c322cb + AXI4_Full + AXI4_Lite + + + choice_pairs_e932d933 + Single_Port_RAM + Simple_Dual_Port_RAM + True_Dual_Port_RAM + Single_Port_ROM + Dual_Port_ROM + + + The Xilinx LogiCORE IP Block Memory Generator replaces the Dual Port Block Memory and Single Port Block Memory LogiCOREs, but is not a direct drop-in replacement. It should be used in all new Xilinx designs. The core supports RAM and ROM functions over a wide range of widths and depths. Use this core to generate block memories with symmetric or asymmetric read and write port widths, as well as cores which can perform simultaneous write operations to separate locations, and simultaneous read operations from the same location. For more information on differences in interface and feature support between this core and the Dual Port Block Memory and Single Port Block Memory LogiCOREs, please consult the data sheet. + + + Component_Name + mem_uart_done + + + + true + + + + + + Interface_Type + Native + + + + true + + + + + + AXI_Type + AXI4_Full + + + + true + + + + + + AXI_Slave_Type + Memory_Slave + + + + true + + + + + + Use_AXI_ID + false + + + + false + + + + + + AXI_ID_Width + 4 + + + + false + + + + + + Memory_Type + Single_Port_ROM + + + + true + + + + + + PRIM_type_to_Implement + BRAM + + + + false + + + + + + Enable_32bit_Address + false + + + + true + + + + + + ecctype + No_ECC + + + + false + + + + + + ECC + false + + + + false + + + + + + softecc + false + + + + false + + + + + + EN_SLEEP_PIN + false + + + + true + + + + + + EN_DEEPSLEEP_PIN + false + + + + false + + + + + + EN_SHUTDOWN_PIN + false + + + + false + + + + + + EN_ECC_PIPE + false + + + + false + + + + + + RD_ADDR_CHNG_A + false + + + + false + + + + + + RD_ADDR_CHNG_B + false + + + + false + + + + + + Use_Error_Injection_Pins + false + + + + false + + + + + + Error_Injection_Type + Single_Bit_Error_Injection + + + + false + + + + + + Use_Byte_Write_Enable + false + + + + false + + + + + + Byte_Size + 9 + + + + false + + + + + + Algorithm + Minimum_Area + + + + true + + + + + + Primitive + 8kx2 + + + + false + + + + + + Assume_Synchronous_Clk + false + + + + false + + + + + + Write_Width_A + 8 + + + + true + + + + + + Write_Depth_A + 64 + + + + true + + + + + + Read_Width_A + 8 + + + + false + + + + + + Operating_Mode_A + WRITE_FIRST + + + + false + + + + + + Enable_A + Use_ENA_Pin + + + + true + + + + + + Write_Width_B + 8 + + + + false + + + + + + Read_Width_B + 8 + + + + false + + + + + + Operating_Mode_B + WRITE_FIRST + + + + false + + + + + + Enable_B + Always_Enabled + + + + false + + + + + + Register_PortA_Output_of_Memory_Primitives + false + + + + true + + + + + + Register_PortA_Output_of_Memory_Core + false + + + + true + + + + + + Use_REGCEA_Pin + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Primitives + false + + + + false + + + + + + Register_PortB_Output_of_Memory_Core + false + + + + false + + + + + + Use_REGCEB_Pin + false + + + + false + + + + + + register_porta_input_of_softecc + false + + + + false + + + + + + register_portb_output_of_softecc + false + + + + false + + + + + + Pipeline_Stages + 0 + + + + false + + + + + + Load_Init_File + true + + + + true + + + + + + Coe_File + ../../../common/ip_cores/mem_uart_done/mem_uart_done.coe + + + + true + + + + + + Fill_Remaining_Memory_Locations + true + + + + true + + + + + + Remaining_Memory_Locations + 0 + + + + true + + + + + + Use_RSTA_Pin + false + + + + true + + + + + + Reset_Memory_Latch_A + false + + + + false + + + + + + Reset_Priority_A + CE + + + + false + + + + + + Output_Reset_Value_A + 0 + + + + false + + + + + + Use_RSTB_Pin + false + + + + false + + + + + + Reset_Memory_Latch_B + false + + + + false + + + + + + Reset_Priority_B + CE + + + + false + + + + + + Output_Reset_Value_B + 0 + + + + false + + + + + + Reset_Type + SYNC + + + + false + + + + + + Additional_Inputs_for_Power_Estimation + false + + + + true + + + + + + Port_A_Clock + 100 + + + + true + + + + + + Port_A_Write_Rate + 0 + + + + true + + + + + + Port_B_Clock + 0 + + + + true + + + + + + Port_B_Write_Rate + 0 + + + + true + + + + + + Port_A_Enable_Rate + 100 + + + + true + + + + + + Port_B_Enable_Rate + 0 + + + + true + + + + + + Collision_Warnings + ALL + + + + false + + + + + + Disable_Collision_Warnings + false + + + + true + + + + + + Disable_Out_of_Range_Warnings + false + + + + true + + + + + + use_bram_block + Stand_Alone + + + + true + + + + + + MEM_FILE + no_mem_loaded + + + + true + + + + + + CTRL_ECC_ALGO + NONE + + + + true + + + + + + EN_SAFETY_CKT + false + + + + false + + + + + + + + Block Memory Generator + 6 + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_16550/uart_16550.xci b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_16550/uart_16550.xci new file mode 100644 index 0000000..e921342 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_16550/uart_16550.xci @@ -0,0 +1,62 @@ + + + xilinx.com + xci + unknown + 1.0 + + + uart_16550 + + + 25000000 + zynq + 0 + 0 + 1 + 66667000 + 1 + 25000000 + 25 + 0 + 0 + 16550 + 66667000 + 66.667 + 1 + 1 + uart_16550 + Custom + false + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + 787535256fe2e1d2 + IP_Flow + 14 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_16550/uart_16550.xml b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_16550/uart_16550.xml new file mode 100644 index 0000000..f09453b --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_16550/uart_16550.xml @@ -0,0 +1,1203 @@ + + + xilinx.com + customized_ip + uart_16550 + 1.0 + + + INTERRUPT + interrupt + + + + + + + INTERRUPT + + + ip2intc_irpt + + + + + + SENSITIVITY + LEVEL_HIGH + + + + + ACLK + aclk + + + + + + + CLK + + + s_axi_aclk + + + + + + ASSOCIATED_BUSIF + S_AXI + + + ASSOCIATED_RESET + s_axi_aresetn + + + + + ARESETN + aresetn + + + + + + + RST + + + s_axi_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + S_AXI + S_AXI + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARREADY + + + s_axi_arready + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWREADY + + + s_axi_awready + + + + + AWVALID + + + s_axi_awvalid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + UART + uart + + + + + + + BAUDOUTn + + + baudoutn + + + + + CTSn + + + ctsn + + + + + DCDn + + + dcdn + + + + + DDIS + + + ddis + + + + + DSRn + + + dsrn + + + + + DTRn + + + dtrn + + + + + OUT1n + + + out1n + + + + + OUT2n + + + out2n + + + + + RCLK + + + rclk + + + + + RI + + + rin + + + + + RTSn + + + rtsn + + + + + RxD + + + sin + + + + + RXRDYn + + + rxrdyn + + + + + TxD + + + sout + + + + + TXRDYn + + + txrdyn + + + + + XIN + + + xin + + + + + XOUT + + + xout + + + + + + BOARD.ASSOCIATED_PARAM + UART_BOARD_INTERFACE + + + + required + + + + + + + + + + + s_axi_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + s_axi_aresetn + + in + + + std_logic + dummy_view + + + + 1 + + + + + ip2intc_irpt + + out + + + std_logic + dummy_view + + + + + + freeze + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + s_axi_awaddr + + in + + 12 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + s_axi_wdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + s_axi_wstrb + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + s_axi_araddr + + in + + 12 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + s_axi_rdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + baudoutn + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + ctsn + + in + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + dcdn + + in + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + ddis + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + dsrn + + in + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + dtrn + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + out1n + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + out2n + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + rclk + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + rin + + in + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + rtsn + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + rxrdyn + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + sin + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + sout + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + txrdyn + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + xin + + in + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + xout + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + + + C_FAMILY + zynq + + + C_S_AXI_ACLK_FREQ_HZ + AXI CLK Frequency + 66667000 + + + C_S_AXI_ADDR_WIDTH + C S Axi Addr Width + 13 + + + C_S_AXI_DATA_WIDTH + C S Axi Data Width + 32 + + + C_IS_A_16550 + UART Mode + 1 + + + C_HAS_EXTERNAL_XIN + Use External CLK + 0 + + + C_HAS_EXTERNAL_RCLK + Enable External Receiver CLK + 0 + + + C_EXTERNAL_XIN_CLK_HZ + External CLK Frequency + 25000000 + + + + + + choice_list_6afe9129 + 16550 + 16450 + + + choice_list_ac75ef1e + Custom + + + choice_pairs_4873554b + 0 + 1 + + + The AXI Universal Asynchronous Receiver Transmitter (UART) 16550 connects to the AMBA (Advance Microcontroller Bus Architecture) AXI (Advanced eXtensible Interface) and provides the controller interface for asynchronous serial data transfer + + + C_EXTERNAL_XIN_CLK_HZ + External CLK Frequency + External clock frequency must be less than half of AXI CLK Frequency. + 25000000 + + + C_EXTERNAL_XIN_CLK_HZ_d + External CLK Frequency + External clock frequency must be less than half of AXI CLK Frequency. + 25 + + + C_HAS_EXTERNAL_RCLK + Enable External Receiver CLK + This enables the External Clock. + 0 + + + C_HAS_EXTERNAL_XIN + Use External CLK for BAUD Rate + Enable external Xin. + 0 + + + C_IS_A_16550 + UART Mode + 16550 + + + C_S_AXI_ACLK_FREQ_HZ_d + AXI CLK Frequency + AXI4-Lite clock frequency range should be in between 25 to 300MHz. + 66.667 + + + C_S_AXI_ACLK_FREQ_HZ + AXI CLK Frequency + AXI4-Lite clock frequency range should be in between 25 to 300MHz. + 66667000 + + + Component_Name + uart_16550 + + + BASE_USER + Base User + 1 + + + C_USE_MODEM_PORTS + Use Modem Ports + 1 + + + C_USE_USER_PORTS + Use User Ports + 1 + + + USE_BOARD_FLOW + Generate Board based IO Constraints + false + + + UART_BOARD_INTERFACE + Custom + + + + + AXI UART16550 + 14 + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_mig_afifo/uart_mig_afifo.xci b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_mig_afifo/uart_mig_afifo.xci new file mode 100644 index 0000000..a7dfdcb --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_mig_afifo/uart_mig_afifo.xci @@ -0,0 +1,429 @@ + + + xilinx.com + xci + unknown + 1.0 + + + uart_mig_afifo + + + 100000000 + 100000000 + 100000000 + 100000000 + 100000000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 1 + 1 + 1 + 4 + 0 + 32 + 1 + 1 + 1 + 64 + 1 + 8 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + BlankString + 604 + 1 + 32 + 64 + 1 + 64 + 2 + 0 + 604 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + zynq + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 6 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 4 + BlankString + 1 + 0 + 0 + 0 + 0 + 1 + 1kx36 + 1kx18 + 512x36 + 1kx36 + 512x36 + 1kx36 + 512x36 + 6 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 7 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1017 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1016 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 10 + 1024 + 100 + 10 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 10 + 1024 + 1024 + 16 + 1024 + 16 + 1024 + 16 + 100 + 10 + 10 + 4 + 10 + 4 + 10 + 4 + 1 + 32 + 0 + 0 + false + false + false + 0 + 0 + Slave_Interface_Clock_Enable + Common_Clock + uart_mig_afifo + 64 + false + 10 + false + false + 0 + 6 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 7 + false + false + false + false + false + false + false + false + false + Hard_ECC + false + false + false + false + false + false + true + false + false + true + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Independent_Clocks_Builtin_FIFO + 0 + 1017 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1016 + false + false + false + 0 + Native + false + false + false + false + false + false + false + false + false + false + false + false + false + false + 604 + 1024 + 1024 + 16 + 1024 + 16 + 1024 + 16 + false + 604 + 1024 + Embedded_Reg + false + false + Active_High + Active_High + AXI4 + First_Word_Fall_Through + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + READ_WRITE + 0 + 100 + false + 10 + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + true + Asynchronous_Reset + false + 1 + 0 + 0 + 1 + 1 + 4 + false + false + Active_High + Active_High + false + false + false + false + true + Active_High + 0 + false + Active_High + 100 + false + 10 + false + FIFO + false + false + false + false + FIFO + FIFO + 2 + 2 + false + FIFO + FIFO + FIFO + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 4 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_mig_afifo/uart_mig_afifo.xml b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_mig_afifo/uart_mig_afifo.xml new file mode 100644 index 0000000..718b592 --- /dev/null +++ b/piton/design/chipset/io_ctrl/xilinx/zc706/ip_cores/uart_mig_afifo/uart_mig_afifo.xml @@ -0,0 +1,9726 @@ + + + xilinx.com + customized_ip + uart_mig_afifo + 1.0 + + + M_AXIS + + + + + + + TDATA + + + m_axis_tdata + + + + + TDEST + + + m_axis_tdest + + + + + TID + + + m_axis_tid + + + + + TKEEP + + + m_axis_tkeep + + + + + TLAST + + + m_axis_tlast + + + + + TREADY + + + m_axis_tready + + + + + TSTRB + + + m_axis_tstrb + + + + + TUSER + + + m_axis_tuser + + + + + TVALID + + + m_axis_tvalid + + + + + + + false + + + + + + S_AXIS + + + + + + + TDATA + + + s_axis_tdata + + + + + TDEST + + + s_axis_tdest + + + + + TID + + + s_axis_tid + + + + + TKEEP + + + s_axis_tkeep + + + + + TLAST + + + s_axis_tlast + + + + + TREADY + + + s_axis_tready + + + + + TSTRB + + + s_axis_tstrb + + + + + TUSER + + + s_axis_tuser + + + + + TVALID + + + s_axis_tvalid + + + + + + + false + + + + + + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARREGION + + + s_axi_arregion + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWREGION + + + s_axi_awregion + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BUSER + + + s_axi_buser + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RUSER + + + s_axi_ruser + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WID + + + s_axi_wid + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WUSER + + + s_axi_wuser + + + + + WVALID + + + s_axi_wvalid + + + + + + BD_ATTRIBUTE.TYPE + INTERIOR + + + + + + false + + + + + + M_AXI + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARREGION + + + m_axi_arregion + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWREGION + + + m_axi_awregion + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BUSER + + + m_axi_buser + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RUSER + + + m_axi_ruser + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WID + + + m_axi_wid + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WUSER + + + m_axi_wuser + + + + + WVALID + + + m_axi_wvalid + + + + + + + false + + + + + + core_clk + + + + + + + CLK + + + clk + + + + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port clk + 100000000 + + + + + + false + + + + + + master_aclk + + + + + + + CLK + + + m_aclk + + + + + + ASSOCIATED_BUSIF + M_AXIS:M_AXI + + + FREQ_HZ + m_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + slave_aclk + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + S_AXIS:S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + FREQ_HZ + s_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + write_clk + + + + + + + CLK + + + wr_clk + + + + + + FREQ_HZ + write clock frequency + specify frequency of the clock connected to port wr_clk + 100000000 + + + + false + + + + + + + + + true + + + + + + read_clk + + + + + + + CLK + + + rd_clk + + + + + + FREQ_HZ + read clock frequency + specify frequency of the clock connected to port rd_clk + 100000000 + + + + false + + + + + + + + + true + + + + + + slave_aresetn + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + FIFO_WRITE + FIFO_WRITE + + + + + + + ALMOST_FULL + + + almost_full + + + + + FULL + + + full + + + + + WR_DATA + + + din + + + + + WR_EN + + + wr_en + + + + + + + true + + + + + + FIFO_READ + FIFO_READ + + + + + + + ALMOST_EMPTY + + + almost_empty + + + + + EMPTY + + + empty + + + + + RD_DATA + + + dout + + + + + RD_EN + + + rd_en + + + + + + + true + + + + + + + + + backup + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + backup_marker + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + srst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wr_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + wr_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + din + + in + + 603 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + wr_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_assert + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_negate + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_assert + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_negate + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + int_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + dout + + out + + 603 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + almost_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_ack + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + almost_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + valid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + rd_data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + wr_data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + prog_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_wid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_buser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wstrb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_buser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_ruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_aruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_ruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tkeep + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tdest + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tuser + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tstrb + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tkeep + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdest + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tuser + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_w_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_b_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_ar_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_r_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axis_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + + + C_COMMON_CLOCK + 0 + + + C_SELECT_XPM + 0 + + + C_COUNT_TYPE + 0 + + + C_DATA_COUNT_WIDTH + 10 + + + C_DEFAULT_VALUE + BlankString + + + C_DIN_WIDTH + 604 + + + C_DOUT_RST_VAL + 0 + + + C_DOUT_WIDTH + 604 + + + C_ENABLE_RLOCS + 0 + + + C_FAMILY + zynq + + + C_FULL_FLAGS_RST_VAL + 0 + + + C_HAS_ALMOST_EMPTY + 0 + + + C_HAS_ALMOST_FULL + 0 + + + C_HAS_BACKUP + 0 + + + C_HAS_DATA_COUNT + 0 + + + C_HAS_INT_CLK + 0 + + + C_HAS_MEMINIT_FILE + 0 + + + C_HAS_OVERFLOW + 0 + + + C_HAS_RD_DATA_COUNT + 0 + + + C_HAS_RD_RST + 0 + + + C_HAS_RST + 1 + + + C_HAS_SRST + 0 + + + C_HAS_UNDERFLOW + 0 + + + C_HAS_VALID + 1 + + + C_HAS_WR_ACK + 0 + + + C_HAS_WR_DATA_COUNT + 0 + + + C_HAS_WR_RST + 0 + + + C_IMPLEMENTATION_TYPE + 6 + + + C_INIT_WR_PNTR_VAL + 0 + + + C_MEMORY_TYPE + 4 + + + C_MIF_FILE_NAME + BlankString + + + C_OPTIMIZATION_MODE + 0 + + + C_OVERFLOW_LOW + 0 + + + C_PRELOAD_LATENCY + 0 + + + C_PRELOAD_REGS + 1 + + + C_PRIM_FIFO_TYPE + 1kx36 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL + 6 + + + C_PROG_EMPTY_THRESH_NEGATE_VAL + 7 + + + C_PROG_EMPTY_TYPE + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL + 1017 + + + C_PROG_FULL_THRESH_NEGATE_VAL + 1016 + + + C_PROG_FULL_TYPE + 0 + + + C_RD_DATA_COUNT_WIDTH + 10 + + + C_RD_DEPTH + 1024 + + + C_RD_FREQ + 100 + + + C_RD_PNTR_WIDTH + 10 + + + C_UNDERFLOW_LOW + 0 + + + C_USE_DOUT_RST + 0 + + + C_USE_ECC + 0 + + + C_USE_EMBEDDED_REG + 0 + + + C_USE_PIPELINE_REG + 0 + + + C_POWER_SAVING_MODE + 0 + + + C_USE_FIFO16_FLAGS + 0 + + + C_USE_FWFT_DATA_COUNT + 0 + + + C_VALID_LOW + 0 + + + C_WR_ACK_LOW + 0 + + + C_WR_DATA_COUNT_WIDTH + 10 + + + C_WR_DEPTH + 1024 + + + C_WR_FREQ + 100 + + + C_WR_PNTR_WIDTH + 10 + + + C_WR_RESPONSE_LATENCY + 1 + + + C_MSGON_VAL + 1 + + + C_ENABLE_RST_SYNC + 1 + + + C_EN_SAFETY_CKT + 0 + + + C_ERROR_INJECTION_TYPE + 0 + + + C_SYNCHRONIZER_STAGE + 2 + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_HAS_AXI_WR_CHANNEL + 1 + + + C_HAS_AXI_RD_CHANNEL + 1 + + + C_HAS_SLAVE_CE + 0 + + + C_HAS_MASTER_CE + 0 + + + C_ADD_NGC_CONSTRAINT + 0 + + + C_USE_COMMON_OVERFLOW + 0 + + + C_USE_COMMON_UNDERFLOW + 0 + + + C_USE_DEFAULT_SETTINGS + 0 + + + C_AXI_ID_WIDTH + 1 + + + C_AXI_ADDR_WIDTH + 32 + + + C_AXI_DATA_WIDTH + 64 + + + C_AXI_LEN_WIDTH + 8 + + + C_AXI_LOCK_WIDTH + 1 + + + C_HAS_AXI_ID + 0 + + + C_HAS_AXI_AWUSER + 0 + + + C_HAS_AXI_WUSER + 0 + + + C_HAS_AXI_BUSER + 0 + + + C_HAS_AXI_ARUSER + 0 + + + C_HAS_AXI_RUSER + 0 + + + C_AXI_ARUSER_WIDTH + 1 + + + C_AXI_AWUSER_WIDTH + 1 + + + C_AXI_WUSER_WIDTH + 1 + + + C_AXI_BUSER_WIDTH + 1 + + + C_AXI_RUSER_WIDTH + 1 + + + C_HAS_AXIS_TDATA + 1 + + + C_HAS_AXIS_TID + 0 + + + C_HAS_AXIS_TDEST + 0 + + + C_HAS_AXIS_TUSER + 1 + + + C_HAS_AXIS_TREADY + 1 + + + C_HAS_AXIS_TLAST + 0 + + + C_HAS_AXIS_TSTRB + 0 + + + C_HAS_AXIS_TKEEP + 0 + + + C_AXIS_TDATA_WIDTH + 8 + + + C_AXIS_TID_WIDTH + 1 + + + C_AXIS_TDEST_WIDTH + 1 + + + C_AXIS_TUSER_WIDTH + 4 + + + C_AXIS_TSTRB_WIDTH + 1 + + + C_AXIS_TKEEP_WIDTH + 1 + + + C_WACH_TYPE + 0 + + + C_WDCH_TYPE + 0 + + + C_WRCH_TYPE + 0 + + + C_RACH_TYPE + 0 + + + C_RDCH_TYPE + 0 + + + C_AXIS_TYPE + 0 + + + C_IMPLEMENTATION_TYPE_WACH + 1 + + + C_IMPLEMENTATION_TYPE_WDCH + 1 + + + C_IMPLEMENTATION_TYPE_WRCH + 1 + + + C_IMPLEMENTATION_TYPE_RACH + 1 + + + C_IMPLEMENTATION_TYPE_RDCH + 1 + + + C_IMPLEMENTATION_TYPE_AXIS + 1 + + + C_APPLICATION_TYPE_WACH + 0 + + + C_APPLICATION_TYPE_WDCH + 0 + + + C_APPLICATION_TYPE_WRCH + 0 + + + C_APPLICATION_TYPE_RACH + 0 + + + C_APPLICATION_TYPE_RDCH + 0 + + + C_APPLICATION_TYPE_AXIS + 0 + + + C_PRIM_FIFO_TYPE_WACH + 512x36 + + + C_PRIM_FIFO_TYPE_WDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_WRCH + 512x36 + + + C_PRIM_FIFO_TYPE_RACH + 512x36 + + + C_PRIM_FIFO_TYPE_RDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_AXIS + 1kx18 + + + C_USE_ECC_WACH + 0 + + + C_USE_ECC_WDCH + 0 + + + C_USE_ECC_WRCH + 0 + + + C_USE_ECC_RACH + 0 + + + C_USE_ECC_RDCH + 0 + + + C_USE_ECC_AXIS + 0 + + + C_ERROR_INJECTION_TYPE_WACH + 0 + + + C_ERROR_INJECTION_TYPE_WDCH + 0 + + + C_ERROR_INJECTION_TYPE_WRCH + 0 + + + C_ERROR_INJECTION_TYPE_RACH + 0 + + + C_ERROR_INJECTION_TYPE_RDCH + 0 + + + C_ERROR_INJECTION_TYPE_AXIS + 0 + + + C_DIN_WIDTH_WACH + 1 + + + C_DIN_WIDTH_WDCH + 64 + + + C_DIN_WIDTH_WRCH + 2 + + + C_DIN_WIDTH_RACH + 32 + + + C_DIN_WIDTH_RDCH + 64 + + + C_DIN_WIDTH_AXIS + 1 + + + C_WR_DEPTH_WACH + 16 + + + C_WR_DEPTH_WDCH + 1024 + + + C_WR_DEPTH_WRCH + 16 + + + C_WR_DEPTH_RACH + 16 + + + C_WR_DEPTH_RDCH + 1024 + + + C_WR_DEPTH_AXIS + 1024 + + + C_WR_PNTR_WIDTH_WACH + 4 + + + C_WR_PNTR_WIDTH_WDCH + 10 + + + C_WR_PNTR_WIDTH_WRCH + 4 + + + C_WR_PNTR_WIDTH_RACH + 4 + + + C_WR_PNTR_WIDTH_RDCH + 10 + + + C_WR_PNTR_WIDTH_AXIS + 10 + + + C_HAS_DATA_COUNTS_WACH + 0 + + + C_HAS_DATA_COUNTS_WDCH + 0 + + + C_HAS_DATA_COUNTS_WRCH + 0 + + + C_HAS_DATA_COUNTS_RACH + 0 + + + C_HAS_DATA_COUNTS_RDCH + 0 + + + C_HAS_DATA_COUNTS_AXIS + 0 + + + C_HAS_PROG_FLAGS_WACH + 0 + + + C_HAS_PROG_FLAGS_WDCH + 0 + + + C_HAS_PROG_FLAGS_WRCH + 0 + + + C_HAS_PROG_FLAGS_RACH + 0 + + + C_HAS_PROG_FLAGS_RDCH + 0 + + + C_HAS_PROG_FLAGS_AXIS + 0 + + + C_PROG_FULL_TYPE_WACH + 0 + + + C_PROG_FULL_TYPE_WDCH + 0 + + + C_PROG_FULL_TYPE_WRCH + 0 + + + C_PROG_FULL_TYPE_RACH + 0 + + + C_PROG_FULL_TYPE_RDCH + 0 + + + C_PROG_FULL_TYPE_AXIS + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WRCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_AXIS + 1023 + + + C_PROG_EMPTY_TYPE_WACH + 0 + + + C_PROG_EMPTY_TYPE_WDCH + 0 + + + C_PROG_EMPTY_TYPE_WRCH + 0 + + + C_PROG_EMPTY_TYPE_RACH + 0 + + + C_PROG_EMPTY_TYPE_RDCH + 0 + + + C_PROG_EMPTY_TYPE_AXIS + 0 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS + 1022 + + + C_REG_SLICE_MODE_WACH + 0 + + + C_REG_SLICE_MODE_WDCH + 0 + + + C_REG_SLICE_MODE_WRCH + 0 + + + C_REG_SLICE_MODE_RACH + 0 + + + C_REG_SLICE_MODE_RDCH + 0 + + + C_REG_SLICE_MODE_AXIS + 0 + + + + + + choice_list_087d29fa + 0 + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_165ed04b + 64 + + + choice_list_1bf17f68 + 604 + 151 + 302 + 604 + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_b4a6dded + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + + + choice_list_bf1143fa + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32768 + 65536 + 131072 + + + choice_pairs_08e28d5f + Active_High + Active_Low + + + choice_pairs_19452de4 + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + + + choice_pairs_26bda4ef + Asynchronous_Reset + + + choice_pairs_2d5d8925 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + Common_Clock_Shift_Register + Common_Clock_Builtin_FIFO + Independent_Clocks_Block_RAM + Independent_Clocks_Distributed_RAM + Independent_Clocks_Builtin_FIFO + + + choice_pairs_3c123ec0 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + + + choice_pairs_40558afa + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + + + choice_pairs_53eba4dc + Native + AXI_MEMORY_MAPPED + AXI_STREAM + + + choice_pairs_541ed8d9 + Embedded_Reg + Fabric_Reg + Both + + + choice_pairs_5548b404 + Common_Clock + Independent_Clock + + + choice_pairs_5f1451ad + Standard_FIFO + First_Word_Fall_Through + + + choice_pairs_619f3529 + AXI4 + AXI3 + AXI4_Lite + + + choice_pairs_8334cf20 + Data_FIFO + Packet_FIFO + Low_Latency_Data_FIFO + + + choice_pairs_9b232fe1 + Slave_Interface_Clock_Enable + Master_Interface_Clock_Enable + + + choice_pairs_a8c5818a + Fully_Registered + Light_Weight + + + choice_pairs_b3e9d19b + FIFO + Register_Slice + Pass_Through_Wire + + + choice_pairs_bec132cf + FIFO + Register_Slice + + + choice_pairs_c94a1851 + Hard_ECC + Soft_ECC + + + choice_pairs_ccb14e2b + READ_WRITE + READ_ONLY + WRITE_ONLY + + + choice_pairs_eb98f74b + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Single_Programmable_Empty_Threshold_Input_Port + + + choice_pairs_ec2b452f + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Single_Programmable_Full_Threshold_Input_Port + + + The FIFO Generator is a parameterizable first-in/first-out memory queue generator. Use it to generate resource and performance optimized FIFOs with common or independent read/write clock domains, and optional fixed or programmable full and empty flags and handshaking signals. Choose from a selection of memory resource types for implementation. Optional Hamming code based error detection and correction as well as error injection capability for system test help to insure data integrity. FIFO width and depth are parameterizable, and for native interface FIFOs, asymmetric read and write port widths are also supported. + + + Component_Name + uart_mig_afifo + + + + true + + + + + + Fifo_Implementation + Independent_Clocks_Builtin_FIFO + + + + true + + + + + + synchronization_stages + 2 + + + + true + + + + + + synchronization_stages_axi + 2 + + + + true + + + + + + INTERFACE_TYPE + Native + + + + true + + + + + + Performance_Options + First_Word_Fall_Through + + + + true + + + + + + asymmetric_port_width + false + + + + false + + + + + + Input_Data_Width + 604 + + + + true + + + + + + Input_Depth + 1024 + + + + true + + + + + + Output_Data_Width + 604 + + + + false + + + + + + Output_Depth + 1024 + + + + false + + + + + + Enable_ECC + false + + + + true + + + + + + Use_Embedded_Registers + false + + + + false + + + + + + Reset_Pin + true + + + + false + + + + + + Enable_Reset_Synchronization + true + + + + false + + + + + + Reset_Type + Asynchronous_Reset + + + + false + + + + + + Full_Flags_Reset_Value + 0 + + + + false + + + + + + Use_Dout_Reset + false + + + + false + + + + + + Dout_Reset_Value + 0 + + + + false + + + + + + dynamic_power_saving + false + + + + false + + + + + + Almost_Full_Flag + false + + + + false + + + + + + Almost_Empty_Flag + false + + + + false + + + + + + Valid_Flag + true + + + + true + + + + + + Valid_Sense + Active_High + + + + true + + + + + + Underflow_Flag + false + + + + true + + + + + + Underflow_Sense + Active_High + + + + false + + + + + + Write_Acknowledge_Flag + false + + + + true + + + + + + Write_Acknowledge_Sense + Active_High + + + + false + + + + + + Overflow_Flag + false + + + + true + + + + + + Overflow_Sense + Active_High + + + + false + + + + + + Inject_Sbit_Error + false + + + + false + + + + + + Inject_Dbit_Error + false + + + + false + + + + + + ecc_pipeline_reg + false + + + + false + + + + + + Use_Extra_Logic + false + + + + false + + + + + + Data_Count + false + + + + false + + + + + + Data_Count_Width + 10 + + + + false + + + + + + Write_Data_Count + false + + + + false + + + + + + Write_Data_Count_Width + 10 + + + + false + + + + + + Read_Data_Count + false + + + + false + + + + + + Read_Data_Count_Width + 10 + + + + false + + + + + + Disable_Timing_Violations + false + + + + true + + + + + + Read_Clock_Frequency + 100 + + + + true + + + + + + Write_Clock_Frequency + 100 + + + + true + + + + + + Programmable_Full_Type + No_Programmable_Full_Threshold + + + + true + + + + + + Full_Threshold_Assert_Value + 1017 + + + + false + + + + + + Full_Threshold_Negate_Value + 1016 + + + + false + + + + + + Programmable_Empty_Type + No_Programmable_Empty_Threshold + + + + true + + + + + + Empty_Threshold_Assert_Value + 6 + + + + false + + + + + + Empty_Threshold_Negate_Value + 7 + + + + false + + + + + + PROTOCOL + AXI4 + + + + false + + + + + + Clock_Type_AXI + Common_Clock + + + + true + + + + + + HAS_ACLKEN + false + + + + false + + + + + + Clock_Enable_Type + Slave_Interface_Clock_Enable + + + + false + + + + + + READ_WRITE_MODE + READ_WRITE + + + + true + + + + + + ID_WIDTH + 0 + + + + false + + + + + + ADDRESS_WIDTH + 32 + + + + false + + + + + + DATA_WIDTH + 64 + + + + false + + + + + + AWUSER_Width + 0 + + + + false + + + + + + WUSER_Width + 0 + + + + false + + + + + + BUSER_Width + 0 + + + + false + + + + + + ARUSER_Width + 0 + + + + false + + + + + + RUSER_Width + 0 + + + + false + + + + + + TDATA_NUM_BYTES + 1 + + + + true + + + + + + TID_WIDTH + 0 + + + + false + + + + + + TDEST_WIDTH + 0 + + + + false + + + + + + TUSER_WIDTH + 4 + + + + false + + + + + + Enable_TREADY + true + + + + false + + + + + + Enable_TLAST + false + + + + true + + + + + + HAS_TSTRB + false + + + + false + + + + + + TSTRB_WIDTH + 1 + + + + false + + + + + + HAS_TKEEP + false + + + + false + + + + + + TKEEP_WIDTH + 1 + + + + false + + + + + + wach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wach + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wach + false + + + + false + + + + + + Inject_Sbit_Error_wach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wach + false + + + + false + + + + + + Input_Depth_wach + 16 + + + + true + + + + + + Enable_Data_Counts_wach + false + + + + false + + + + + + Programmable_Full_Type_wach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wdch + false + + + + false + + + + + + Inject_Sbit_Error_wdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wdch + false + + + + false + + + + + + Input_Depth_wdch + 1024 + + + + true + + + + + + Enable_Data_Counts_wdch + false + + + + false + + + + + + Programmable_Full_Type_wdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wrch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wrch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wrch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wrch + false + + + + false + + + + + + Inject_Sbit_Error_wrch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wrch + false + + + + false + + + + + + Input_Depth_wrch + 16 + + + + true + + + + + + Enable_Data_Counts_wrch + false + + + + false + + + + + + Programmable_Full_Type_wrch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wrch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wrch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wrch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rach + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rach + false + + + + false + + + + + + Inject_Sbit_Error_rach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rach + false + + + + false + + + + + + Input_Depth_rach + 16 + + + + true + + + + + + Enable_Data_Counts_rach + false + + + + false + + + + + + Programmable_Full_Type_rach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rdch + false + + + + false + + + + + + Inject_Sbit_Error_rdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rdch + false + + + + false + + + + + + Input_Depth_rdch + 1024 + + + + true + + + + + + Enable_Data_Counts_rdch + false + + + + false + + + + + + Programmable_Full_Type_rdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + axis_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_axis + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_axis + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_axis + false + + + + false + + + + + + Inject_Sbit_Error_axis + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_axis + Double Bit Error Injection + false + + + + false + + + + + + Input_Depth_axis + 1024 + + + + true + + + + + + Enable_Data_Counts_axis + false + + + + false + + + + + + Programmable_Full_Type_axis + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_axis + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_axis + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_axis + Empty Threshold Assert Value + 1022 + + + + false + + + + + + Register_Slice_Mode_wach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wrch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_axis + Register Slice Options + Fully_Registered + + + + true + + + + + + Underflow_Flag_AXI + Underflow Flag + false + + + + true + + + + + + Underflow_Sense_AXI + Underflow (Read Error) + Active_High + + + + true + + + + + + Overflow_Flag_AXI + Overflow Flag + false + + + + true + + + + + + Overflow_Sense_AXI + Overflow (Write Error) + Active_High + + + + true + + + + + + Disable_Timing_Violations_AXI + false + + + + true + + + + + + Add_NGC_Constraint_AXI + false + + + + true + + + + + + Enable_Common_Underflow + false + + + + true + + + + + + Enable_Common_Overflow + false + + + + true + + + + + + enable_read_pointer_increment_by2 + false + + + + true + + + + + + Use_Embedded_Registers_axis + false + + + + false + + + + + + enable_low_latency + false + + + + false + + + + + + use_dout_register + false + + + + false + + + + + + Master_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Slave_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Output_Register_Type + Embedded_Reg + + + + false + + + + + + Enable_Safety_Circuit + false + + + + false + + + + + + Enable_ECC_Type + Hard_ECC + + + + false + + + + + + C_SELECT_XPM + 0 + + + + + FIFO Generator + 4 + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.veo b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.veo new file mode 100644 index 0000000..bd0e43a --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.veo @@ -0,0 +1,123 @@ +//***************************************************************************** +// (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor : Xilinx +// \ \ \/ Version : 4.0 +// \ \ Application : MIG +// / / Filename : mig_7series_0.veo +// /___/ /\ Date Last Modified : $Date: 2011/06/02 08:34:47 $ +// \ \ / \ Date Created : Tue Sept 21 2010 +// \___\/\___\ +// +// Device : 7 Series +// Design Name : DDR3 SDRAM +// Purpose : Template file containing code that can be used as a model +// for instantiating a CORE Generator module in a HDL design. +// Revision History : +//***************************************************************************** + +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG + + mig_7series_0 u_mig_7series_0 ( + + // Memory interface ports + .ddr3_addr (ddr3_addr), // output [13:0] ddr3_addr + .ddr3_ba (ddr3_ba), // output [2:0] ddr3_ba + .ddr3_cas_n (ddr3_cas_n), // output ddr3_cas_n + .ddr3_ck_n (ddr3_ck_n), // output [0:0] ddr3_ck_n + .ddr3_ck_p (ddr3_ck_p), // output [0:0] ddr3_ck_p + .ddr3_cke (ddr3_cke), // output [0:0] ddr3_cke + .ddr3_ras_n (ddr3_ras_n), // output ddr3_ras_n + .ddr3_reset_n (ddr3_reset_n), // output ddr3_reset_n + .ddr3_we_n (ddr3_we_n), // output ddr3_we_n + .ddr3_dq (ddr3_dq), // inout [63:0] ddr3_dq + .ddr3_dqs_n (ddr3_dqs_n), // inout [7:0] ddr3_dqs_n + .ddr3_dqs_p (ddr3_dqs_p), // inout [7:0] ddr3_dqs_p + .init_calib_complete (init_calib_complete), // output init_calib_complete + + .ddr3_cs_n (ddr3_cs_n), // output [0:0] ddr3_cs_n + .ddr3_dm (ddr3_dm), // output [7:0] ddr3_dm + .ddr3_odt (ddr3_odt), // output [0:0] ddr3_odt + // Application interface ports + .app_addr (app_addr), // input [27:0] app_addr + .app_cmd (app_cmd), // input [2:0] app_cmd + .app_en (app_en), // input app_en + .app_wdf_data (app_wdf_data), // input [511:0] app_wdf_data + .app_wdf_end (app_wdf_end), // input app_wdf_end + .app_wdf_wren (app_wdf_wren), // input app_wdf_wren + .app_rd_data (app_rd_data), // output [511:0] app_rd_data + .app_rd_data_end (app_rd_data_end), // output app_rd_data_end + .app_rd_data_valid (app_rd_data_valid), // output app_rd_data_valid + .app_rdy (app_rdy), // output app_rdy + .app_wdf_rdy (app_wdf_rdy), // output app_wdf_rdy + .app_sr_req (app_sr_req), // input app_sr_req + .app_ref_req (app_ref_req), // input app_ref_req + .app_zq_req (app_zq_req), // input app_zq_req + .app_sr_active (app_sr_active), // output app_sr_active + .app_ref_ack (app_ref_ack), // output app_ref_ack + .app_zq_ack (app_zq_ack), // output app_zq_ack + .ui_clk (ui_clk), // output ui_clk + .ui_clk_sync_rst (ui_clk_sync_rst), // output ui_clk_sync_rst + .app_wdf_mask (app_wdf_mask), // input [63:0] app_wdf_mask + // System Clock Ports + .sys_clk_i (sys_clk_i), + .sys_rst (sys_rst) // input sys_rst + ); + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file mig_7series_0.v when simulating +// the core, mig_7series_0. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.xci b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.xci new file mode 100644 index 0000000..8bc3e91 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.xci @@ -0,0 +1,1196 @@ + + + xilinx.com + xci + unknown + 1.0 + + + mig_7series_0 + + + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 100.0 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 1200.0 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + DIFF + FALSE + 0 + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 100.0 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 1200.0 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + DIFF + FALSE + 0 + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 100.0 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 1200.0 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + DIFF + FALSE + 0 + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 100.0 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 1200.0 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + DIFF + FALSE + 0 + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 100.0 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 1200.0 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + DIFF + FALSE + 0 + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 100.0 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 1200.0 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + DIFF + FALSE + 0 + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 100.0 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 1200.0 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + DIFF + FALSE + 0 + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 100.0 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 1200.0 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + DIFF + FALSE + 0 + 0 + 32 + 32 + 32 + 4 + 1048576 + 32 + 4 + 1048576 + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + 1 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + 28 + 3 + 1 + 1 + 1 + 64 + OFF + 8 + 3 + 8 + 64 + 1 + OFF + 14 + 1 + 1 + 1 + 4 + 1 + 8 + 8 + 2 + OFF + 1 + OFF + 200000000 + FALSE + 8 + 3 + 1 + 1 + 1 + 8 + OFF + 1 + 1 + 1 + 8 + OFF + 14 + 1 + 1 + 1 + 2 + 1 + DDR3 + FALSE + 10.0 + FALSE + 10 + FALSE + 10 + FALSE + 10 + FALSE + 10 + 800 + 1 + 0.000 + ACTIVE_LOW + 29 + 1 + 8 + 18 + OFF + 1 + NONE + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 1 + 18 + OFF + 1 + 1 + 1 + 8 + 1 + 29 + 1 + 29 + 2 + 1 + 18 + 1 + 1 + NOBUF + INTERNAL + FALSE + 0 + Custom + mig_7series_0 + Custom + Custom + mig_a.prj + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 3 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.xml b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.xml new file mode 100644 index 0000000..c2a74aa --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0.xml @@ -0,0 +1,99399 @@ + + + xilinx.com + customized_ip + mig_7series_0 + 1.0 + + + SYSTEM_RESET + + + + true + + + + RST + + + sys_rst + + + + + + POLARITY + ACTIVE_LOW + + + BOARD.ASSOCIATED_PARAM + RESET_BOARD_INTERFACE + + + + + CLK_REF + + + + true + + + + CLK_P + + + clk_ref_p + + + + + CLK_N + + + clk_ref_n + + + + + + + false + + + + + + CLK_REF_I + + + + true + + + + CLK + + + clk_ref_i + + + + + + + false + + + + + + DDR3 + + + + true + + + + DQ + + + ddr3_dq + + + + + DQS_P + + + ddr3_dqs_p + + + + + DQS_N + + + ddr3_dqs_n + + + + + ADDR + + + ddr3_addr + + + + + BA + + + ddr3_ba + + + + + RAS_N + + + ddr3_ras_n + + + + + CAS_N + + + ddr3_cas_n + + + + + WE_N + + + ddr3_we_n + + + + + RESET_N + + + ddr3_reset_n + + + + + CK_P + + + ddr3_ck_p + + + + + CK_N + + + ddr3_ck_n + + + + + CKE + + + ddr3_cke + + + + + CS_N + + + ddr3_cs_n + + + + + DM + + + ddr3_dm + + + + + ODT + + + ddr3_odt + + + + + PARITY + + + ddr3_parity + + + + + + + true + + + + + + DDR2 + + + + true + + + + DQ + + + ddr2_dq + + + + + DQS_P + + + ddr2_dqs_p + + + + + DQS_N + + + ddr2_dqs_n + + + + + ADDR + + + ddr2_addr + + + + + BA + + + ddr2_ba + + + + + RAS_N + + + ddr2_ras_n + + + + + CAS_N + + + ddr2_cas_n + + + + + WE_N + + + ddr2_we_n + + + + + RESET_N + + + ddr2_reset_n + + + + + CK_P + + + ddr2_ck_p + + + + + CK_N + + + ddr2_ck_n + + + + + CKE + + + ddr2_cke + + + + + CS_N + + + ddr2_cs_n + + + + + DM + + + ddr2_dm + + + + + ODT + + + ddr2_odt + + + + + PARITY + + + ddr2_parity + + + + + + + false + + + + + + RESET + + + + true + + + + RST + + + ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + true + + + + + + DDR3_RESET + + + + true + + + + RST + + + ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + true + + + + + + DDR2_RESET + + + + true + + + + RST + + + ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + true + + + + + + LPDDR2_RESET + + + + true + + + + RST + + + lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + true + + + + + + QDRIIP_RESET + + + + true + + + + RST + + + qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + true + + + + + + RLDII_RESET + + + + true + + + + RST + + + rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + true + + + + + + RLDIII_RESET + + + + true + + + + RST + + + rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + true + + + + + + CLOCK + + + + true + + + + CLK + + + ui_clk + + + + + + FREQ_HZ + 200000000 + + + ASSOCIATED_BUSIF + S_AXI:S_AXI_CTRL + + + ASSOCIATED_RESET + aresetn:ui_clk_sync_rst + + + PHASE + 0 + + + + + + true + + + + + + MMCM_CLKOUT0 + + + + true + + + + CLK + + + ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + aresetn + + + PHASE + 0 + + + + + + true + + + + + + MMCM_CLKOUT1 + + + + true + + + + CLK + + + ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + aresetn + + + PHASE + 0 + + + + + + true + + + + + + MMCM_CLKOUT2 + + + + true + + + + CLK + + + ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + aresetn + + + PHASE + 0 + + + + + + true + + + + + + MMCM_CLKOUT3 + + + + true + + + + CLK + + + ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + aresetn + + + PHASE + 0 + + + + + + true + + + + + + MMCM_CLKOUT4 + + + + true + + + + CLK + + + ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + aresetn + + + PHASE + 0 + + + + + + true + + + + + + S_AXI_CTRL + + + + + + true + + + + AWVALID + + + s_axi_ctrl_awvalid + + + + + AWREADY + + + s_axi_ctrl_awready + + + + + AWADDR + + + s_axi_ctrl_awaddr + + + + + WVALID + + + s_axi_ctrl_wvalid + + + + + WREADY + + + s_axi_ctrl_wready + + + + + WDATA + + + s_axi_ctrl_wdata + + + + + BVALID + + + s_axi_ctrl_bvalid + + + + + BREADY + + + s_axi_ctrl_bready + + + + + BRESP + + + s_axi_ctrl_bresp + + + + + ARVALID + + + s_axi_ctrl_arvalid + + + + + ARREADY + + + s_axi_ctrl_arready + + + + + ARADDR + + + s_axi_ctrl_araddr + + + + + RVALID + + + s_axi_ctrl_rvalid + + + + + RREADY + + + s_axi_ctrl_rready + + + + + RDATA + + + s_axi_ctrl_rdata + + + + + RRESP + + + s_axi_ctrl_rresp + + + + + + FREQ_HZ + 200000000 + + + + + + false + + + + + + S_AXI + + + + + + true + + + + AWID + + + s_axi_awid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWLEN + + + s_axi_awlen + + + + + AWSIZE + + + s_axi_awsize + + + + + AWBURST + + + s_axi_awburst + + + + + AWLOCK + + + s_axi_awlock + + + + + AWCACHE + + + s_axi_awcache + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWVALID + + + s_axi_awvalid + + + + + AWREADY + + + s_axi_awready + + + + + WDATA + + + s_axi_wdata + + + + + WSTRB + + + s_axi_wstrb + + + + + WLAST + + + s_axi_wlast + + + + + WVALID + + + s_axi_wvalid + + + + + WREADY + + + s_axi_wready + + + + + BREADY + + + s_axi_bready + + + + + BID + + + s_axi_bid + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + ARID + + + s_axi_arid + + + + + ARADDR + + + s_axi_araddr + + + + + ARLEN + + + s_axi_arlen + + + + + ARSIZE + + + s_axi_arsize + + + + + ARBURST + + + s_axi_arburst + + + + + ARLOCK + + + s_axi_arlock + + + + + ARCACHE + + + s_axi_arcache + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARVALID + + + s_axi_arvalid + + + + + ARREADY + + + s_axi_arready + + + + + RREADY + + + s_axi_rready + + + + + RID + + + s_axi_rid + + + + + RDATA + + + s_axi_rdata + + + + + RRESP + + + s_axi_rresp + + + + + RLAST + + + s_axi_rlast + + + + + RVALID + + + s_axi_rvalid + + + + + + FREQ_HZ + 200000000 + + + + + + false + + + + + + SYS_CLK + + + + true + + + + CLK_P + + + sys_clk_p + + + + + CLK_N + + + sys_clk_n + + + + + + + false + + + + + + SYS_CLK_I + + + + true + + + + CLK + + + sys_clk_i + + + + + + + true + + + + + + ARESETN + + + + true + + + + ARESETN + + + aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + C0_DDR3 + + + + true + + + + DQ + + + c0_ddr3_dq + + + + + DQS_P + + + c0_ddr3_dqs_p + + + + + DQS_N + + + c0_ddr3_dqs_n + + + + + ADDR + + + c0_ddr3_addr + + + + + BA + + + c0_ddr3_ba + + + + + RAS_N + + + c0_ddr3_ras_n + + + + + CAS_N + + + c0_ddr3_cas_n + + + + + WE_N + + + c0_ddr3_we_n + + + + + RESET_N + + + c0_ddr3_reset_n + + + + + CK_P + + + c0_ddr3_ck_p + + + + + CK_N + + + c0_ddr3_ck_n + + + + + CKE + + + c0_ddr3_cke + + + + + CS_N + + + c0_ddr3_cs_n + + + + + DM + + + c0_ddr3_dm + + + + + ODT + + + c0_ddr3_odt + + + + + PARITY + + + c0_ddr3_parity + + + + + + + false + + + + + + C0_DDR2 + + + + true + + + + DQ + + + c0_ddr2_dq + + + + + DQS_P + + + c0_ddr2_dqs_p + + + + + DQS_N + + + c0_ddr2_dqs_n + + + + + ADDR + + + c0_ddr2_addr + + + + + BA + + + c0_ddr2_ba + + + + + RAS_N + + + c0_ddr2_ras_n + + + + + CAS_N + + + c0_ddr2_cas_n + + + + + WE_N + + + c0_ddr2_we_n + + + + + RESET_N + + + c0_ddr2_reset_n + + + + + CK_P + + + c0_ddr2_ck_p + + + + + CK_N + + + c0_ddr2_ck_n + + + + + CKE + + + c0_ddr2_cke + + + + + CS_N + + + c0_ddr2_cs_n + + + + + DM + + + c0_ddr2_dm + + + + + ODT + + + c0_ddr2_odt + + + + + PARITY + + + c0_ddr2_parity + + + + + + + false + + + + + + C0_RESET + + + + true + + + + RST + + + c0_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C0_DDR3_RESET + + + + true + + + + RST + + + c0_ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C0_DDR2_RESET + + + + true + + + + RST + + + c0_ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C0_LPDDR2_RESET + + + + true + + + + RST + + + c0_lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C0_QDRIIP_RESET + + + + true + + + + RST + + + c0_qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C0_RLDII_RESET + + + + true + + + + RST + + + c0_rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C0_RLDIII_RESET + + + + true + + + + RST + + + c0_rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C0_CLOCK + + + + true + + + + CLK + + + c0_ui_clk + + + + + + FREQ_HZ + 100 + + + ASSOCIATED_BUSIF + S0_AXI:S0_AXI_CTRL + + + ASSOCIATED_RESET + c0_aresetn:c0_ui_clk_sync_rst + + + PHASE + 0 + + + + + + false + + + + + + C0_MMCM_CLKOUT0 + + + + true + + + + CLK + + + c0_ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c0_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C0_MMCM_CLKOUT1 + + + + true + + + + CLK + + + c0_ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c0_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C0_MMCM_CLKOUT2 + + + + true + + + + CLK + + + c0_ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c0_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C0_MMCM_CLKOUT3 + + + + true + + + + CLK + + + c0_ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c0_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C0_MMCM_CLKOUT4 + + + + true + + + + CLK + + + c0_ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c0_aresetn + + + PHASE + 0 + + + + + + false + + + + + + S0_AXI_CTRL + + + + + + true + + + + AWVALID + + + c0_s_axi_ctrl_awvalid + + + + + AWREADY + + + c0_s_axi_ctrl_awready + + + + + AWADDR + + + c0_s_axi_ctrl_awaddr + + + + + WVALID + + + c0_s_axi_ctrl_wvalid + + + + + WREADY + + + c0_s_axi_ctrl_wready + + + + + WDATA + + + c0_s_axi_ctrl_wdata + + + + + BVALID + + + c0_s_axi_ctrl_bvalid + + + + + BREADY + + + c0_s_axi_ctrl_bready + + + + + BRESP + + + c0_s_axi_ctrl_bresp + + + + + ARVALID + + + c0_s_axi_ctrl_arvalid + + + + + ARREADY + + + c0_s_axi_ctrl_arready + + + + + ARADDR + + + c0_s_axi_ctrl_araddr + + + + + RVALID + + + c0_s_axi_ctrl_rvalid + + + + + RREADY + + + c0_s_axi_ctrl_rready + + + + + RDATA + + + c0_s_axi_ctrl_rdata + + + + + RRESP + + + c0_s_axi_ctrl_rresp + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + S0_AXI + + + + + + true + + + + AWID + + + c0_s_axi_awid + + + + + AWADDR + + + c0_s_axi_awaddr + + + + + AWLEN + + + c0_s_axi_awlen + + + + + AWSIZE + + + c0_s_axi_awsize + + + + + AWBURST + + + c0_s_axi_awburst + + + + + AWLOCK + + + c0_s_axi_awlock + + + + + AWCACHE + + + c0_s_axi_awcache + + + + + AWPROT + + + c0_s_axi_awprot + + + + + AWQOS + + + c0_s_axi_awqos + + + + + AWVALID + + + c0_s_axi_awvalid + + + + + AWREADY + + + c0_s_axi_awready + + + + + WDATA + + + c0_s_axi_wdata + + + + + WSTRB + + + c0_s_axi_wstrb + + + + + WLAST + + + c0_s_axi_wlast + + + + + WVALID + + + c0_s_axi_wvalid + + + + + WREADY + + + c0_s_axi_wready + + + + + BREADY + + + c0_s_axi_bready + + + + + BID + + + c0_s_axi_bid + + + + + BRESP + + + c0_s_axi_bresp + + + + + BVALID + + + c0_s_axi_bvalid + + + + + ARID + + + c0_s_axi_arid + + + + + ARADDR + + + c0_s_axi_araddr + + + + + ARLEN + + + c0_s_axi_arlen + + + + + ARSIZE + + + c0_s_axi_arsize + + + + + ARBURST + + + c0_s_axi_arburst + + + + + ARLOCK + + + c0_s_axi_arlock + + + + + ARCACHE + + + c0_s_axi_arcache + + + + + ARPROT + + + c0_s_axi_arprot + + + + + ARQOS + + + c0_s_axi_arqos + + + + + ARVALID + + + c0_s_axi_arvalid + + + + + ARREADY + + + c0_s_axi_arready + + + + + RREADY + + + c0_s_axi_rready + + + + + RID + + + c0_s_axi_rid + + + + + RDATA + + + c0_s_axi_rdata + + + + + RRESP + + + c0_s_axi_rresp + + + + + RLAST + + + c0_s_axi_rlast + + + + + RVALID + + + c0_s_axi_rvalid + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + C0_SYS_CLK + + + + true + + + + CLK_P + + + c0_sys_clk_p + + + + + CLK_N + + + c0_sys_clk_n + + + + + + + false + + + + + + C0_SYS_CLK_I + + + + true + + + + CLK + + + c0_sys_clk_i + + + + + + + false + + + + + + C0_ARESETN + + + + true + + + + ARESETN + + + c0_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + C1_DDR3 + + + + true + + + + DQ + + + c1_ddr3_dq + + + + + DQS_P + + + c1_ddr3_dqs_p + + + + + DQS_N + + + c1_ddr3_dqs_n + + + + + ADDR + + + c1_ddr3_addr + + + + + BA + + + c1_ddr3_ba + + + + + RAS_N + + + c1_ddr3_ras_n + + + + + CAS_N + + + c1_ddr3_cas_n + + + + + WE_N + + + c1_ddr3_we_n + + + + + RESET_N + + + c1_ddr3_reset_n + + + + + CK_P + + + c1_ddr3_ck_p + + + + + CK_N + + + c1_ddr3_ck_n + + + + + CKE + + + c1_ddr3_cke + + + + + CS_N + + + c1_ddr3_cs_n + + + + + DM + + + c1_ddr3_dm + + + + + ODT + + + c1_ddr3_odt + + + + + PARITY + + + c1_ddr3_parity + + + + + + + false + + + + + + C1_DDR2 + + + + true + + + + DQ + + + c1_ddr2_dq + + + + + DQS_P + + + c1_ddr2_dqs_p + + + + + DQS_N + + + c1_ddr2_dqs_n + + + + + ADDR + + + c1_ddr2_addr + + + + + BA + + + c1_ddr2_ba + + + + + RAS_N + + + c1_ddr2_ras_n + + + + + CAS_N + + + c1_ddr2_cas_n + + + + + WE_N + + + c1_ddr2_we_n + + + + + RESET_N + + + c1_ddr2_reset_n + + + + + CK_P + + + c1_ddr2_ck_p + + + + + CK_N + + + c1_ddr2_ck_n + + + + + CKE + + + c1_ddr2_cke + + + + + CS_N + + + c1_ddr2_cs_n + + + + + DM + + + c1_ddr2_dm + + + + + ODT + + + c1_ddr2_odt + + + + + PARITY + + + c1_ddr2_parity + + + + + + + false + + + + + + C1_RESET + + + + true + + + + RST + + + c1_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C1_DDR3_RESET + + + + true + + + + RST + + + c1_ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C1_DDR2_RESET + + + + true + + + + RST + + + c1_ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C1_LPDDR2_RESET + + + + true + + + + RST + + + c1_lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C1_QDRIIP_RESET + + + + true + + + + RST + + + c1_qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C1_RLDII_RESET + + + + true + + + + RST + + + c1_rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C1_RLDIII_RESET + + + + true + + + + RST + + + c1_rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C1_CLOCK + + + + true + + + + CLK + + + c1_ui_clk + + + + + + FREQ_HZ + 100 + + + ASSOCIATED_BUSIF + S1_AXI:S1_AXI_CTRL + + + ASSOCIATED_RESET + c1_aresetn:c1_ui_clk_sync_rst + + + PHASE + 0 + + + + + + false + + + + + + C1_MMCM_CLKOUT0 + + + + true + + + + CLK + + + c1_ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c1_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C1_MMCM_CLKOUT1 + + + + true + + + + CLK + + + c1_ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c1_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C1_MMCM_CLKOUT2 + + + + true + + + + CLK + + + c1_ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c1_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C1_MMCM_CLKOUT3 + + + + true + + + + CLK + + + c1_ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c1_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C1_MMCM_CLKOUT4 + + + + true + + + + CLK + + + c1_ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c1_aresetn + + + PHASE + 0 + + + + + + false + + + + + + S1_AXI_CTRL + + + + + + true + + + + AWVALID + + + c1_s_axi_ctrl_awvalid + + + + + AWREADY + + + c1_s_axi_ctrl_awready + + + + + AWADDR + + + c1_s_axi_ctrl_awaddr + + + + + WVALID + + + c1_s_axi_ctrl_wvalid + + + + + WREADY + + + c1_s_axi_ctrl_wready + + + + + WDATA + + + c1_s_axi_ctrl_wdata + + + + + BVALID + + + c1_s_axi_ctrl_bvalid + + + + + BREADY + + + c1_s_axi_ctrl_bready + + + + + BRESP + + + c1_s_axi_ctrl_bresp + + + + + ARVALID + + + c1_s_axi_ctrl_arvalid + + + + + ARREADY + + + c1_s_axi_ctrl_arready + + + + + ARADDR + + + c1_s_axi_ctrl_araddr + + + + + RVALID + + + c1_s_axi_ctrl_rvalid + + + + + RREADY + + + c1_s_axi_ctrl_rready + + + + + RDATA + + + c1_s_axi_ctrl_rdata + + + + + RRESP + + + c1_s_axi_ctrl_rresp + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + S1_AXI + + + + + + true + + + + AWID + + + c1_s_axi_awid + + + + + AWADDR + + + c1_s_axi_awaddr + + + + + AWLEN + + + c1_s_axi_awlen + + + + + AWSIZE + + + c1_s_axi_awsize + + + + + AWBURST + + + c1_s_axi_awburst + + + + + AWLOCK + + + c1_s_axi_awlock + + + + + AWCACHE + + + c1_s_axi_awcache + + + + + AWPROT + + + c1_s_axi_awprot + + + + + AWQOS + + + c1_s_axi_awqos + + + + + AWVALID + + + c1_s_axi_awvalid + + + + + AWREADY + + + c1_s_axi_awready + + + + + WDATA + + + c1_s_axi_wdata + + + + + WSTRB + + + c1_s_axi_wstrb + + + + + WLAST + + + c1_s_axi_wlast + + + + + WVALID + + + c1_s_axi_wvalid + + + + + WREADY + + + c1_s_axi_wready + + + + + BREADY + + + c1_s_axi_bready + + + + + BID + + + c1_s_axi_bid + + + + + BRESP + + + c1_s_axi_bresp + + + + + BVALID + + + c1_s_axi_bvalid + + + + + ARID + + + c1_s_axi_arid + + + + + ARADDR + + + c1_s_axi_araddr + + + + + ARLEN + + + c1_s_axi_arlen + + + + + ARSIZE + + + c1_s_axi_arsize + + + + + ARBURST + + + c1_s_axi_arburst + + + + + ARLOCK + + + c1_s_axi_arlock + + + + + ARCACHE + + + c1_s_axi_arcache + + + + + ARPROT + + + c1_s_axi_arprot + + + + + ARQOS + + + c1_s_axi_arqos + + + + + ARVALID + + + c1_s_axi_arvalid + + + + + ARREADY + + + c1_s_axi_arready + + + + + RREADY + + + c1_s_axi_rready + + + + + RID + + + c1_s_axi_rid + + + + + RDATA + + + c1_s_axi_rdata + + + + + RRESP + + + c1_s_axi_rresp + + + + + RLAST + + + c1_s_axi_rlast + + + + + RVALID + + + c1_s_axi_rvalid + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + C1_SYS_CLK + + + + true + + + + CLK_P + + + c1_sys_clk_p + + + + + CLK_N + + + c1_sys_clk_n + + + + + + + false + + + + + + C1_SYS_CLK_I + + + + true + + + + CLK + + + c1_sys_clk_i + + + + + + + false + + + + + + C1_ARESETN + + + + true + + + + ARESETN + + + c1_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + C2_DDR3 + + + + true + + + + DQ + + + c2_ddr3_dq + + + + + DQS_P + + + c2_ddr3_dqs_p + + + + + DQS_N + + + c2_ddr3_dqs_n + + + + + ADDR + + + c2_ddr3_addr + + + + + BA + + + c2_ddr3_ba + + + + + RAS_N + + + c2_ddr3_ras_n + + + + + CAS_N + + + c2_ddr3_cas_n + + + + + WE_N + + + c2_ddr3_we_n + + + + + RESET_N + + + c2_ddr3_reset_n + + + + + CK_P + + + c2_ddr3_ck_p + + + + + CK_N + + + c2_ddr3_ck_n + + + + + CKE + + + c2_ddr3_cke + + + + + CS_N + + + c2_ddr3_cs_n + + + + + DM + + + c2_ddr3_dm + + + + + ODT + + + c2_ddr3_odt + + + + + PARITY + + + c2_ddr3_parity + + + + + + + false + + + + + + C2_DDR2 + + + + true + + + + DQ + + + c2_ddr2_dq + + + + + DQS_P + + + c2_ddr2_dqs_p + + + + + DQS_N + + + c2_ddr2_dqs_n + + + + + ADDR + + + c2_ddr2_addr + + + + + BA + + + c2_ddr2_ba + + + + + RAS_N + + + c2_ddr2_ras_n + + + + + CAS_N + + + c2_ddr2_cas_n + + + + + WE_N + + + c2_ddr2_we_n + + + + + RESET_N + + + c2_ddr2_reset_n + + + + + CK_P + + + c2_ddr2_ck_p + + + + + CK_N + + + c2_ddr2_ck_n + + + + + CKE + + + c2_ddr2_cke + + + + + CS_N + + + c2_ddr2_cs_n + + + + + DM + + + c2_ddr2_dm + + + + + ODT + + + c2_ddr2_odt + + + + + PARITY + + + c2_ddr2_parity + + + + + + + false + + + + + + C2_RESET + + + + true + + + + RST + + + c2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C2_DDR3_RESET + + + + true + + + + RST + + + c2_ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C2_DDR2_RESET + + + + true + + + + RST + + + c2_ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C2_LPDDR2_RESET + + + + true + + + + RST + + + c2_lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C2_QDRIIP_RESET + + + + true + + + + RST + + + c2_qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C2_RLDII_RESET + + + + true + + + + RST + + + c2_rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C2_RLDIII_RESET + + + + true + + + + RST + + + c2_rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C2_CLOCK + + + + true + + + + CLK + + + c2_ui_clk + + + + + + FREQ_HZ + 100 + + + ASSOCIATED_BUSIF + S2_AXI:S2_AXI_CTRL + + + ASSOCIATED_RESET + c2_aresetn:c2_ui_clk_sync_rst + + + PHASE + 0 + + + + + + false + + + + + + C2_MMCM_CLKOUT0 + + + + true + + + + CLK + + + c2_ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c2_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C2_MMCM_CLKOUT1 + + + + true + + + + CLK + + + c2_ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c2_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C2_MMCM_CLKOUT2 + + + + true + + + + CLK + + + c2_ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c2_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C2_MMCM_CLKOUT3 + + + + true + + + + CLK + + + c2_ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c2_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C2_MMCM_CLKOUT4 + + + + true + + + + CLK + + + c2_ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c2_aresetn + + + PHASE + 0 + + + + + + false + + + + + + S2_AXI_CTRL + + + + + + true + + + + AWVALID + + + c2_s_axi_ctrl_awvalid + + + + + AWREADY + + + c2_s_axi_ctrl_awready + + + + + AWADDR + + + c2_s_axi_ctrl_awaddr + + + + + WVALID + + + c2_s_axi_ctrl_wvalid + + + + + WREADY + + + c2_s_axi_ctrl_wready + + + + + WDATA + + + c2_s_axi_ctrl_wdata + + + + + BVALID + + + c2_s_axi_ctrl_bvalid + + + + + BREADY + + + c2_s_axi_ctrl_bready + + + + + BRESP + + + c2_s_axi_ctrl_bresp + + + + + ARVALID + + + c2_s_axi_ctrl_arvalid + + + + + ARREADY + + + c2_s_axi_ctrl_arready + + + + + ARADDR + + + c2_s_axi_ctrl_araddr + + + + + RVALID + + + c2_s_axi_ctrl_rvalid + + + + + RREADY + + + c2_s_axi_ctrl_rready + + + + + RDATA + + + c2_s_axi_ctrl_rdata + + + + + RRESP + + + c2_s_axi_ctrl_rresp + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + S2_AXI + + + + + + true + + + + AWID + + + c2_s_axi_awid + + + + + AWADDR + + + c2_s_axi_awaddr + + + + + AWLEN + + + c2_s_axi_awlen + + + + + AWSIZE + + + c2_s_axi_awsize + + + + + AWBURST + + + c2_s_axi_awburst + + + + + AWLOCK + + + c2_s_axi_awlock + + + + + AWCACHE + + + c2_s_axi_awcache + + + + + AWPROT + + + c2_s_axi_awprot + + + + + AWQOS + + + c2_s_axi_awqos + + + + + AWVALID + + + c2_s_axi_awvalid + + + + + AWREADY + + + c2_s_axi_awready + + + + + WDATA + + + c2_s_axi_wdata + + + + + WSTRB + + + c2_s_axi_wstrb + + + + + WLAST + + + c2_s_axi_wlast + + + + + WVALID + + + c2_s_axi_wvalid + + + + + WREADY + + + c2_s_axi_wready + + + + + BREADY + + + c2_s_axi_bready + + + + + BID + + + c2_s_axi_bid + + + + + BRESP + + + c2_s_axi_bresp + + + + + BVALID + + + c2_s_axi_bvalid + + + + + ARID + + + c2_s_axi_arid + + + + + ARADDR + + + c2_s_axi_araddr + + + + + ARLEN + + + c2_s_axi_arlen + + + + + ARSIZE + + + c2_s_axi_arsize + + + + + ARBURST + + + c2_s_axi_arburst + + + + + ARLOCK + + + c2_s_axi_arlock + + + + + ARCACHE + + + c2_s_axi_arcache + + + + + ARPROT + + + c2_s_axi_arprot + + + + + ARQOS + + + c2_s_axi_arqos + + + + + ARVALID + + + c2_s_axi_arvalid + + + + + ARREADY + + + c2_s_axi_arready + + + + + RREADY + + + c2_s_axi_rready + + + + + RID + + + c2_s_axi_rid + + + + + RDATA + + + c2_s_axi_rdata + + + + + RRESP + + + c2_s_axi_rresp + + + + + RLAST + + + c2_s_axi_rlast + + + + + RVALID + + + c2_s_axi_rvalid + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + C2_SYS_CLK + + + + true + + + + CLK_P + + + c2_sys_clk_p + + + + + CLK_N + + + c2_sys_clk_n + + + + + + + false + + + + + + C2_SYS_CLK_I + + + + true + + + + CLK + + + c2_sys_clk_i + + + + + + + false + + + + + + C2_ARESETN + + + + true + + + + ARESETN + + + c2_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + C3_DDR3 + + + + true + + + + DQ + + + c3_ddr3_dq + + + + + DQS_P + + + c3_ddr3_dqs_p + + + + + DQS_N + + + c3_ddr3_dqs_n + + + + + ADDR + + + c3_ddr3_addr + + + + + BA + + + c3_ddr3_ba + + + + + RAS_N + + + c3_ddr3_ras_n + + + + + CAS_N + + + c3_ddr3_cas_n + + + + + WE_N + + + c3_ddr3_we_n + + + + + RESET_N + + + c3_ddr3_reset_n + + + + + CK_P + + + c3_ddr3_ck_p + + + + + CK_N + + + c3_ddr3_ck_n + + + + + CKE + + + c3_ddr3_cke + + + + + CS_N + + + c3_ddr3_cs_n + + + + + DM + + + c3_ddr3_dm + + + + + ODT + + + c3_ddr3_odt + + + + + PARITY + + + c3_ddr3_parity + + + + + + + false + + + + + + C3_DDR2 + + + + true + + + + DQ + + + c3_ddr2_dq + + + + + DQS_P + + + c3_ddr2_dqs_p + + + + + DQS_N + + + c3_ddr2_dqs_n + + + + + ADDR + + + c3_ddr2_addr + + + + + BA + + + c3_ddr2_ba + + + + + RAS_N + + + c3_ddr2_ras_n + + + + + CAS_N + + + c3_ddr2_cas_n + + + + + WE_N + + + c3_ddr2_we_n + + + + + RESET_N + + + c3_ddr2_reset_n + + + + + CK_P + + + c3_ddr2_ck_p + + + + + CK_N + + + c3_ddr2_ck_n + + + + + CKE + + + c3_ddr2_cke + + + + + CS_N + + + c3_ddr2_cs_n + + + + + DM + + + c3_ddr2_dm + + + + + ODT + + + c3_ddr2_odt + + + + + PARITY + + + c3_ddr2_parity + + + + + + + false + + + + + + C3_RESET + + + + true + + + + RST + + + c3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C3_DDR3_RESET + + + + true + + + + RST + + + c3_ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C3_DDR2_RESET + + + + true + + + + RST + + + c3_ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C3_LPDDR2_RESET + + + + true + + + + RST + + + c3_lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C3_QDRIIP_RESET + + + + true + + + + RST + + + c3_qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C3_RLDII_RESET + + + + true + + + + RST + + + c3_rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C3_RLDIII_RESET + + + + true + + + + RST + + + c3_rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C3_CLOCK + + + + true + + + + CLK + + + c3_ui_clk + + + + + + FREQ_HZ + 100 + + + ASSOCIATED_BUSIF + S3_AXI:S3_AXI_CTRL + + + ASSOCIATED_RESET + c3_aresetn:c3_ui_clk_sync_rst + + + PHASE + 0 + + + + + + false + + + + + + C3_MMCM_CLKOUT0 + + + + true + + + + CLK + + + c3_ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c3_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C3_MMCM_CLKOUT1 + + + + true + + + + CLK + + + c3_ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c3_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C3_MMCM_CLKOUT2 + + + + true + + + + CLK + + + c3_ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c3_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C3_MMCM_CLKOUT3 + + + + true + + + + CLK + + + c3_ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c3_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C3_MMCM_CLKOUT4 + + + + true + + + + CLK + + + c3_ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c3_aresetn + + + PHASE + 0 + + + + + + false + + + + + + S3_AXI_CTRL + + + + + + true + + + + AWVALID + + + c3_s_axi_ctrl_awvalid + + + + + AWREADY + + + c3_s_axi_ctrl_awready + + + + + AWADDR + + + c3_s_axi_ctrl_awaddr + + + + + WVALID + + + c3_s_axi_ctrl_wvalid + + + + + WREADY + + + c3_s_axi_ctrl_wready + + + + + WDATA + + + c3_s_axi_ctrl_wdata + + + + + BVALID + + + c3_s_axi_ctrl_bvalid + + + + + BREADY + + + c3_s_axi_ctrl_bready + + + + + BRESP + + + c3_s_axi_ctrl_bresp + + + + + ARVALID + + + c3_s_axi_ctrl_arvalid + + + + + ARREADY + + + c3_s_axi_ctrl_arready + + + + + ARADDR + + + c3_s_axi_ctrl_araddr + + + + + RVALID + + + c3_s_axi_ctrl_rvalid + + + + + RREADY + + + c3_s_axi_ctrl_rready + + + + + RDATA + + + c3_s_axi_ctrl_rdata + + + + + RRESP + + + c3_s_axi_ctrl_rresp + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + S3_AXI + + + + + + true + + + + AWID + + + c3_s_axi_awid + + + + + AWADDR + + + c3_s_axi_awaddr + + + + + AWLEN + + + c3_s_axi_awlen + + + + + AWSIZE + + + c3_s_axi_awsize + + + + + AWBURST + + + c3_s_axi_awburst + + + + + AWLOCK + + + c3_s_axi_awlock + + + + + AWCACHE + + + c3_s_axi_awcache + + + + + AWPROT + + + c3_s_axi_awprot + + + + + AWQOS + + + c3_s_axi_awqos + + + + + AWVALID + + + c3_s_axi_awvalid + + + + + AWREADY + + + c3_s_axi_awready + + + + + WDATA + + + c3_s_axi_wdata + + + + + WSTRB + + + c3_s_axi_wstrb + + + + + WLAST + + + c3_s_axi_wlast + + + + + WVALID + + + c3_s_axi_wvalid + + + + + WREADY + + + c3_s_axi_wready + + + + + BREADY + + + c3_s_axi_bready + + + + + BID + + + c3_s_axi_bid + + + + + BRESP + + + c3_s_axi_bresp + + + + + BVALID + + + c3_s_axi_bvalid + + + + + ARID + + + c3_s_axi_arid + + + + + ARADDR + + + c3_s_axi_araddr + + + + + ARLEN + + + c3_s_axi_arlen + + + + + ARSIZE + + + c3_s_axi_arsize + + + + + ARBURST + + + c3_s_axi_arburst + + + + + ARLOCK + + + c3_s_axi_arlock + + + + + ARCACHE + + + c3_s_axi_arcache + + + + + ARPROT + + + c3_s_axi_arprot + + + + + ARQOS + + + c3_s_axi_arqos + + + + + ARVALID + + + c3_s_axi_arvalid + + + + + ARREADY + + + c3_s_axi_arready + + + + + RREADY + + + c3_s_axi_rready + + + + + RID + + + c3_s_axi_rid + + + + + RDATA + + + c3_s_axi_rdata + + + + + RRESP + + + c3_s_axi_rresp + + + + + RLAST + + + c3_s_axi_rlast + + + + + RVALID + + + c3_s_axi_rvalid + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + C3_SYS_CLK + + + + true + + + + CLK_P + + + c3_sys_clk_p + + + + + CLK_N + + + c3_sys_clk_n + + + + + + + false + + + + + + C3_SYS_CLK_I + + + + true + + + + CLK + + + c3_sys_clk_i + + + + + + + false + + + + + + C3_ARESETN + + + + true + + + + ARESETN + + + c3_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + C4_DDR3 + + + + true + + + + DQ + + + c4_ddr3_dq + + + + + DQS_P + + + c4_ddr3_dqs_p + + + + + DQS_N + + + c4_ddr3_dqs_n + + + + + ADDR + + + c4_ddr3_addr + + + + + BA + + + c4_ddr3_ba + + + + + RAS_N + + + c4_ddr3_ras_n + + + + + CAS_N + + + c4_ddr3_cas_n + + + + + WE_N + + + c4_ddr3_we_n + + + + + RESET_N + + + c4_ddr3_reset_n + + + + + CK_P + + + c4_ddr3_ck_p + + + + + CK_N + + + c4_ddr3_ck_n + + + + + CKE + + + c4_ddr3_cke + + + + + CS_N + + + c4_ddr3_cs_n + + + + + DM + + + c4_ddr3_dm + + + + + ODT + + + c4_ddr3_odt + + + + + PARITY + + + c4_ddr3_parity + + + + + + + false + + + + + + C4_DDR2 + + + + true + + + + DQ + + + c4_ddr2_dq + + + + + DQS_P + + + c4_ddr2_dqs_p + + + + + DQS_N + + + c4_ddr2_dqs_n + + + + + ADDR + + + c4_ddr2_addr + + + + + BA + + + c4_ddr2_ba + + + + + RAS_N + + + c4_ddr2_ras_n + + + + + CAS_N + + + c4_ddr2_cas_n + + + + + WE_N + + + c4_ddr2_we_n + + + + + RESET_N + + + c4_ddr2_reset_n + + + + + CK_P + + + c4_ddr2_ck_p + + + + + CK_N + + + c4_ddr2_ck_n + + + + + CKE + + + c4_ddr2_cke + + + + + CS_N + + + c4_ddr2_cs_n + + + + + DM + + + c4_ddr2_dm + + + + + ODT + + + c4_ddr2_odt + + + + + PARITY + + + c4_ddr2_parity + + + + + + + false + + + + + + C4_RESET + + + + true + + + + RST + + + c4_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C4_DDR3_RESET + + + + true + + + + RST + + + c4_ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C4_DDR2_RESET + + + + true + + + + RST + + + c4_ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C4_LPDDR2_RESET + + + + true + + + + RST + + + c4_lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C4_QDRIIP_RESET + + + + true + + + + RST + + + c4_qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C4_RLDII_RESET + + + + true + + + + RST + + + c4_rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C4_RLDIII_RESET + + + + true + + + + RST + + + c4_rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C4_CLOCK + + + + true + + + + CLK + + + c4_ui_clk + + + + + + FREQ_HZ + 100 + + + ASSOCIATED_BUSIF + S4_AXI:S4_AXI_CTRL + + + ASSOCIATED_RESET + c4_aresetn:c4_ui_clk_sync_rst + + + PHASE + 0 + + + + + + false + + + + + + C4_MMCM_CLKOUT0 + + + + true + + + + CLK + + + c4_ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c4_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C4_MMCM_CLKOUT1 + + + + true + + + + CLK + + + c4_ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c4_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C4_MMCM_CLKOUT2 + + + + true + + + + CLK + + + c4_ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c4_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C4_MMCM_CLKOUT3 + + + + true + + + + CLK + + + c4_ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c4_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C4_MMCM_CLKOUT4 + + + + true + + + + CLK + + + c4_ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c4_aresetn + + + PHASE + 0 + + + + + + false + + + + + + S4_AXI_CTRL + + + + + + true + + + + AWVALID + + + c4_s_axi_ctrl_awvalid + + + + + AWREADY + + + c4_s_axi_ctrl_awready + + + + + AWADDR + + + c4_s_axi_ctrl_awaddr + + + + + WVALID + + + c4_s_axi_ctrl_wvalid + + + + + WREADY + + + c4_s_axi_ctrl_wready + + + + + WDATA + + + c4_s_axi_ctrl_wdata + + + + + BVALID + + + c4_s_axi_ctrl_bvalid + + + + + BREADY + + + c4_s_axi_ctrl_bready + + + + + BRESP + + + c4_s_axi_ctrl_bresp + + + + + ARVALID + + + c4_s_axi_ctrl_arvalid + + + + + ARREADY + + + c4_s_axi_ctrl_arready + + + + + ARADDR + + + c4_s_axi_ctrl_araddr + + + + + RVALID + + + c4_s_axi_ctrl_rvalid + + + + + RREADY + + + c4_s_axi_ctrl_rready + + + + + RDATA + + + c4_s_axi_ctrl_rdata + + + + + RRESP + + + c4_s_axi_ctrl_rresp + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + S4_AXI + + + + + + true + + + + AWID + + + c4_s_axi_awid + + + + + AWADDR + + + c4_s_axi_awaddr + + + + + AWLEN + + + c4_s_axi_awlen + + + + + AWSIZE + + + c4_s_axi_awsize + + + + + AWBURST + + + c4_s_axi_awburst + + + + + AWLOCK + + + c4_s_axi_awlock + + + + + AWCACHE + + + c4_s_axi_awcache + + + + + AWPROT + + + c4_s_axi_awprot + + + + + AWQOS + + + c4_s_axi_awqos + + + + + AWVALID + + + c4_s_axi_awvalid + + + + + AWREADY + + + c4_s_axi_awready + + + + + WDATA + + + c4_s_axi_wdata + + + + + WSTRB + + + c4_s_axi_wstrb + + + + + WLAST + + + c4_s_axi_wlast + + + + + WVALID + + + c4_s_axi_wvalid + + + + + WREADY + + + c4_s_axi_wready + + + + + BREADY + + + c4_s_axi_bready + + + + + BID + + + c4_s_axi_bid + + + + + BRESP + + + c4_s_axi_bresp + + + + + BVALID + + + c4_s_axi_bvalid + + + + + ARID + + + c4_s_axi_arid + + + + + ARADDR + + + c4_s_axi_araddr + + + + + ARLEN + + + c4_s_axi_arlen + + + + + ARSIZE + + + c4_s_axi_arsize + + + + + ARBURST + + + c4_s_axi_arburst + + + + + ARLOCK + + + c4_s_axi_arlock + + + + + ARCACHE + + + c4_s_axi_arcache + + + + + ARPROT + + + c4_s_axi_arprot + + + + + ARQOS + + + c4_s_axi_arqos + + + + + ARVALID + + + c4_s_axi_arvalid + + + + + ARREADY + + + c4_s_axi_arready + + + + + RREADY + + + c4_s_axi_rready + + + + + RID + + + c4_s_axi_rid + + + + + RDATA + + + c4_s_axi_rdata + + + + + RRESP + + + c4_s_axi_rresp + + + + + RLAST + + + c4_s_axi_rlast + + + + + RVALID + + + c4_s_axi_rvalid + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + C4_SYS_CLK + + + + true + + + + CLK_P + + + c4_sys_clk_p + + + + + CLK_N + + + c4_sys_clk_n + + + + + + + false + + + + + + C4_SYS_CLK_I + + + + true + + + + CLK + + + c4_sys_clk_i + + + + + + + false + + + + + + C4_ARESETN + + + + true + + + + ARESETN + + + c4_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + C5_DDR3 + + + + true + + + + DQ + + + c5_ddr3_dq + + + + + DQS_P + + + c5_ddr3_dqs_p + + + + + DQS_N + + + c5_ddr3_dqs_n + + + + + ADDR + + + c5_ddr3_addr + + + + + BA + + + c5_ddr3_ba + + + + + RAS_N + + + c5_ddr3_ras_n + + + + + CAS_N + + + c5_ddr3_cas_n + + + + + WE_N + + + c5_ddr3_we_n + + + + + RESET_N + + + c5_ddr3_reset_n + + + + + CK_P + + + c5_ddr3_ck_p + + + + + CK_N + + + c5_ddr3_ck_n + + + + + CKE + + + c5_ddr3_cke + + + + + CS_N + + + c5_ddr3_cs_n + + + + + DM + + + c5_ddr3_dm + + + + + ODT + + + c5_ddr3_odt + + + + + PARITY + + + c5_ddr3_parity + + + + + + + false + + + + + + C5_DDR2 + + + + true + + + + DQ + + + c5_ddr2_dq + + + + + DQS_P + + + c5_ddr2_dqs_p + + + + + DQS_N + + + c5_ddr2_dqs_n + + + + + ADDR + + + c5_ddr2_addr + + + + + BA + + + c5_ddr2_ba + + + + + RAS_N + + + c5_ddr2_ras_n + + + + + CAS_N + + + c5_ddr2_cas_n + + + + + WE_N + + + c5_ddr2_we_n + + + + + RESET_N + + + c5_ddr2_reset_n + + + + + CK_P + + + c5_ddr2_ck_p + + + + + CK_N + + + c5_ddr2_ck_n + + + + + CKE + + + c5_ddr2_cke + + + + + CS_N + + + c5_ddr2_cs_n + + + + + DM + + + c5_ddr2_dm + + + + + ODT + + + c5_ddr2_odt + + + + + PARITY + + + c5_ddr2_parity + + + + + + + false + + + + + + C5_RESET + + + + true + + + + RST + + + c5_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C5_DDR3_RESET + + + + true + + + + RST + + + c5_ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C5_DDR2_RESET + + + + true + + + + RST + + + c5_ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C5_LPDDR2_RESET + + + + true + + + + RST + + + c5_lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C5_QDRIIP_RESET + + + + true + + + + RST + + + c5_qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C5_RLDII_RESET + + + + true + + + + RST + + + c5_rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C5_RLDIII_RESET + + + + true + + + + RST + + + c5_rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C5_CLOCK + + + + true + + + + CLK + + + c5_ui_clk + + + + + + FREQ_HZ + 100 + + + ASSOCIATED_BUSIF + S5_AXI:S5_AXI_CTRL + + + ASSOCIATED_RESET + c5_aresetn:c5_ui_clk_sync_rst + + + PHASE + 0 + + + + + + false + + + + + + C5_MMCM_CLKOUT0 + + + + true + + + + CLK + + + c5_ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c5_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C5_MMCM_CLKOUT1 + + + + true + + + + CLK + + + c5_ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c5_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C5_MMCM_CLKOUT2 + + + + true + + + + CLK + + + c5_ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c5_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C5_MMCM_CLKOUT3 + + + + true + + + + CLK + + + c5_ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c5_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C5_MMCM_CLKOUT4 + + + + true + + + + CLK + + + c5_ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c5_aresetn + + + PHASE + 0 + + + + + + false + + + + + + S5_AXI_CTRL + + + + + + true + + + + AWVALID + + + c5_s_axi_ctrl_awvalid + + + + + AWREADY + + + c5_s_axi_ctrl_awready + + + + + AWADDR + + + c5_s_axi_ctrl_awaddr + + + + + WVALID + + + c5_s_axi_ctrl_wvalid + + + + + WREADY + + + c5_s_axi_ctrl_wready + + + + + WDATA + + + c5_s_axi_ctrl_wdata + + + + + BVALID + + + c5_s_axi_ctrl_bvalid + + + + + BREADY + + + c5_s_axi_ctrl_bready + + + + + BRESP + + + c5_s_axi_ctrl_bresp + + + + + ARVALID + + + c5_s_axi_ctrl_arvalid + + + + + ARREADY + + + c5_s_axi_ctrl_arready + + + + + ARADDR + + + c5_s_axi_ctrl_araddr + + + + + RVALID + + + c5_s_axi_ctrl_rvalid + + + + + RREADY + + + c5_s_axi_ctrl_rready + + + + + RDATA + + + c5_s_axi_ctrl_rdata + + + + + RRESP + + + c5_s_axi_ctrl_rresp + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + S5_AXI + + + + + + true + + + + AWID + + + c5_s_axi_awid + + + + + AWADDR + + + c5_s_axi_awaddr + + + + + AWLEN + + + c5_s_axi_awlen + + + + + AWSIZE + + + c5_s_axi_awsize + + + + + AWBURST + + + c5_s_axi_awburst + + + + + AWLOCK + + + c5_s_axi_awlock + + + + + AWCACHE + + + c5_s_axi_awcache + + + + + AWPROT + + + c5_s_axi_awprot + + + + + AWQOS + + + c5_s_axi_awqos + + + + + AWVALID + + + c5_s_axi_awvalid + + + + + AWREADY + + + c5_s_axi_awready + + + + + WDATA + + + c5_s_axi_wdata + + + + + WSTRB + + + c5_s_axi_wstrb + + + + + WLAST + + + c5_s_axi_wlast + + + + + WVALID + + + c5_s_axi_wvalid + + + + + WREADY + + + c5_s_axi_wready + + + + + BREADY + + + c5_s_axi_bready + + + + + BID + + + c5_s_axi_bid + + + + + BRESP + + + c5_s_axi_bresp + + + + + BVALID + + + c5_s_axi_bvalid + + + + + ARID + + + c5_s_axi_arid + + + + + ARADDR + + + c5_s_axi_araddr + + + + + ARLEN + + + c5_s_axi_arlen + + + + + ARSIZE + + + c5_s_axi_arsize + + + + + ARBURST + + + c5_s_axi_arburst + + + + + ARLOCK + + + c5_s_axi_arlock + + + + + ARCACHE + + + c5_s_axi_arcache + + + + + ARPROT + + + c5_s_axi_arprot + + + + + ARQOS + + + c5_s_axi_arqos + + + + + ARVALID + + + c5_s_axi_arvalid + + + + + ARREADY + + + c5_s_axi_arready + + + + + RREADY + + + c5_s_axi_rready + + + + + RID + + + c5_s_axi_rid + + + + + RDATA + + + c5_s_axi_rdata + + + + + RRESP + + + c5_s_axi_rresp + + + + + RLAST + + + c5_s_axi_rlast + + + + + RVALID + + + c5_s_axi_rvalid + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + C5_SYS_CLK + + + + true + + + + CLK_P + + + c5_sys_clk_p + + + + + CLK_N + + + c5_sys_clk_n + + + + + + + false + + + + + + C5_SYS_CLK_I + + + + true + + + + CLK + + + c5_sys_clk_i + + + + + + + false + + + + + + C5_ARESETN + + + + true + + + + ARESETN + + + c5_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + C6_DDR3 + + + + true + + + + DQ + + + c6_ddr3_dq + + + + + DQS_P + + + c6_ddr3_dqs_p + + + + + DQS_N + + + c6_ddr3_dqs_n + + + + + ADDR + + + c6_ddr3_addr + + + + + BA + + + c6_ddr3_ba + + + + + RAS_N + + + c6_ddr3_ras_n + + + + + CAS_N + + + c6_ddr3_cas_n + + + + + WE_N + + + c6_ddr3_we_n + + + + + RESET_N + + + c6_ddr3_reset_n + + + + + CK_P + + + c6_ddr3_ck_p + + + + + CK_N + + + c6_ddr3_ck_n + + + + + CKE + + + c6_ddr3_cke + + + + + CS_N + + + c6_ddr3_cs_n + + + + + DM + + + c6_ddr3_dm + + + + + ODT + + + c6_ddr3_odt + + + + + PARITY + + + c6_ddr3_parity + + + + + + + false + + + + + + C6_DDR2 + + + + true + + + + DQ + + + c6_ddr2_dq + + + + + DQS_P + + + c6_ddr2_dqs_p + + + + + DQS_N + + + c6_ddr2_dqs_n + + + + + ADDR + + + c6_ddr2_addr + + + + + BA + + + c6_ddr2_ba + + + + + RAS_N + + + c6_ddr2_ras_n + + + + + CAS_N + + + c6_ddr2_cas_n + + + + + WE_N + + + c6_ddr2_we_n + + + + + RESET_N + + + c6_ddr2_reset_n + + + + + CK_P + + + c6_ddr2_ck_p + + + + + CK_N + + + c6_ddr2_ck_n + + + + + CKE + + + c6_ddr2_cke + + + + + CS_N + + + c6_ddr2_cs_n + + + + + DM + + + c6_ddr2_dm + + + + + ODT + + + c6_ddr2_odt + + + + + PARITY + + + c6_ddr2_parity + + + + + + + false + + + + + + C6_RESET + + + + true + + + + RST + + + c6_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C6_DDR3_RESET + + + + true + + + + RST + + + c6_ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C6_DDR2_RESET + + + + true + + + + RST + + + c6_ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C6_LPDDR2_RESET + + + + true + + + + RST + + + c6_lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C6_QDRIIP_RESET + + + + true + + + + RST + + + c6_qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C6_RLDII_RESET + + + + true + + + + RST + + + c6_rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C6_RLDIII_RESET + + + + true + + + + RST + + + c6_rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C6_CLOCK + + + + true + + + + CLK + + + c6_ui_clk + + + + + + FREQ_HZ + 100 + + + ASSOCIATED_BUSIF + S6_AXI:S6_AXI_CTRL + + + ASSOCIATED_RESET + c6_aresetn:c6_ui_clk_sync_rst + + + PHASE + 0 + + + + + + false + + + + + + C6_MMCM_CLKOUT0 + + + + true + + + + CLK + + + c6_ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c6_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C6_MMCM_CLKOUT1 + + + + true + + + + CLK + + + c6_ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c6_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C6_MMCM_CLKOUT2 + + + + true + + + + CLK + + + c6_ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c6_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C6_MMCM_CLKOUT3 + + + + true + + + + CLK + + + c6_ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c6_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C6_MMCM_CLKOUT4 + + + + true + + + + CLK + + + c6_ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c6_aresetn + + + PHASE + 0 + + + + + + false + + + + + + S6_AXI_CTRL + + + + + + true + + + + AWVALID + + + c6_s_axi_ctrl_awvalid + + + + + AWREADY + + + c6_s_axi_ctrl_awready + + + + + AWADDR + + + c6_s_axi_ctrl_awaddr + + + + + WVALID + + + c6_s_axi_ctrl_wvalid + + + + + WREADY + + + c6_s_axi_ctrl_wready + + + + + WDATA + + + c6_s_axi_ctrl_wdata + + + + + BVALID + + + c6_s_axi_ctrl_bvalid + + + + + BREADY + + + c6_s_axi_ctrl_bready + + + + + BRESP + + + c6_s_axi_ctrl_bresp + + + + + ARVALID + + + c6_s_axi_ctrl_arvalid + + + + + ARREADY + + + c6_s_axi_ctrl_arready + + + + + ARADDR + + + c6_s_axi_ctrl_araddr + + + + + RVALID + + + c6_s_axi_ctrl_rvalid + + + + + RREADY + + + c6_s_axi_ctrl_rready + + + + + RDATA + + + c6_s_axi_ctrl_rdata + + + + + RRESP + + + c6_s_axi_ctrl_rresp + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + S6_AXI + + + + + + true + + + + AWID + + + c6_s_axi_awid + + + + + AWADDR + + + c6_s_axi_awaddr + + + + + AWLEN + + + c6_s_axi_awlen + + + + + AWSIZE + + + c6_s_axi_awsize + + + + + AWBURST + + + c6_s_axi_awburst + + + + + AWLOCK + + + c6_s_axi_awlock + + + + + AWCACHE + + + c6_s_axi_awcache + + + + + AWPROT + + + c6_s_axi_awprot + + + + + AWQOS + + + c6_s_axi_awqos + + + + + AWVALID + + + c6_s_axi_awvalid + + + + + AWREADY + + + c6_s_axi_awready + + + + + WDATA + + + c6_s_axi_wdata + + + + + WSTRB + + + c6_s_axi_wstrb + + + + + WLAST + + + c6_s_axi_wlast + + + + + WVALID + + + c6_s_axi_wvalid + + + + + WREADY + + + c6_s_axi_wready + + + + + BREADY + + + c6_s_axi_bready + + + + + BID + + + c6_s_axi_bid + + + + + BRESP + + + c6_s_axi_bresp + + + + + BVALID + + + c6_s_axi_bvalid + + + + + ARID + + + c6_s_axi_arid + + + + + ARADDR + + + c6_s_axi_araddr + + + + + ARLEN + + + c6_s_axi_arlen + + + + + ARSIZE + + + c6_s_axi_arsize + + + + + ARBURST + + + c6_s_axi_arburst + + + + + ARLOCK + + + c6_s_axi_arlock + + + + + ARCACHE + + + c6_s_axi_arcache + + + + + ARPROT + + + c6_s_axi_arprot + + + + + ARQOS + + + c6_s_axi_arqos + + + + + ARVALID + + + c6_s_axi_arvalid + + + + + ARREADY + + + c6_s_axi_arready + + + + + RREADY + + + c6_s_axi_rready + + + + + RID + + + c6_s_axi_rid + + + + + RDATA + + + c6_s_axi_rdata + + + + + RRESP + + + c6_s_axi_rresp + + + + + RLAST + + + c6_s_axi_rlast + + + + + RVALID + + + c6_s_axi_rvalid + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + C6_SYS_CLK + + + + true + + + + CLK_P + + + c6_sys_clk_p + + + + + CLK_N + + + c6_sys_clk_n + + + + + + + false + + + + + + C6_SYS_CLK_I + + + + true + + + + CLK + + + c6_sys_clk_i + + + + + + + false + + + + + + C6_ARESETN + + + + true + + + + ARESETN + + + c6_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + C7_DDR3 + + + + true + + + + DQ + + + c7_ddr3_dq + + + + + DQS_P + + + c7_ddr3_dqs_p + + + + + DQS_N + + + c7_ddr3_dqs_n + + + + + ADDR + + + c7_ddr3_addr + + + + + BA + + + c7_ddr3_ba + + + + + RAS_N + + + c7_ddr3_ras_n + + + + + CAS_N + + + c7_ddr3_cas_n + + + + + WE_N + + + c7_ddr3_we_n + + + + + RESET_N + + + c7_ddr3_reset_n + + + + + CK_P + + + c7_ddr3_ck_p + + + + + CK_N + + + c7_ddr3_ck_n + + + + + CKE + + + c7_ddr3_cke + + + + + CS_N + + + c7_ddr3_cs_n + + + + + DM + + + c7_ddr3_dm + + + + + ODT + + + c7_ddr3_odt + + + + + PARITY + + + c7_ddr3_parity + + + + + + + false + + + + + + C7_DDR2 + + + + true + + + + DQ + + + c7_ddr2_dq + + + + + DQS_P + + + c7_ddr2_dqs_p + + + + + DQS_N + + + c7_ddr2_dqs_n + + + + + ADDR + + + c7_ddr2_addr + + + + + BA + + + c7_ddr2_ba + + + + + RAS_N + + + c7_ddr2_ras_n + + + + + CAS_N + + + c7_ddr2_cas_n + + + + + WE_N + + + c7_ddr2_we_n + + + + + RESET_N + + + c7_ddr2_reset_n + + + + + CK_P + + + c7_ddr2_ck_p + + + + + CK_N + + + c7_ddr2_ck_n + + + + + CKE + + + c7_ddr2_cke + + + + + CS_N + + + c7_ddr2_cs_n + + + + + DM + + + c7_ddr2_dm + + + + + ODT + + + c7_ddr2_odt + + + + + PARITY + + + c7_ddr2_parity + + + + + + + false + + + + + + C7_RESET + + + + true + + + + RST + + + c7_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C7_DDR3_RESET + + + + true + + + + RST + + + c7_ddr3_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C7_DDR2_RESET + + + + true + + + + RST + + + c7_ddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C7_LPDDR2_RESET + + + + true + + + + RST + + + c7_lpddr2_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C7_QDRIIP_RESET + + + + true + + + + RST + + + c7_qdriip_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C7_RLDII_RESET + + + + true + + + + RST + + + c7_rldii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C7_RLDIII_RESET + + + + true + + + + RST + + + c7_rldiii_ui_clk_sync_rst + + + + + + POLARITY + ACTIVE_HIGH + + + + + + false + + + + + + C7_CLOCK + + + + true + + + + CLK + + + c7_ui_clk + + + + + + FREQ_HZ + 100 + + + ASSOCIATED_BUSIF + S7_AXI:S7_AXI_CTRL + + + ASSOCIATED_RESET + c7_aresetn:c7_ui_clk_sync_rst + + + PHASE + 0 + + + + + + false + + + + + + C7_MMCM_CLKOUT0 + + + + true + + + + CLK + + + c7_ui_addn_clk_0 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c7_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C7_MMCM_CLKOUT1 + + + + true + + + + CLK + + + c7_ui_addn_clk_1 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c7_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C7_MMCM_CLKOUT2 + + + + true + + + + CLK + + + c7_ui_addn_clk_2 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c7_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C7_MMCM_CLKOUT3 + + + + true + + + + CLK + + + c7_ui_addn_clk_3 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c7_aresetn + + + PHASE + 0 + + + + + + false + + + + + + C7_MMCM_CLKOUT4 + + + + true + + + + CLK + + + c7_ui_addn_clk_4 + + + + + + FREQ_HZ + 10 + + + ASSOCIATED_ASYNC_RESET + c7_aresetn + + + PHASE + 0 + + + + + + false + + + + + + S7_AXI_CTRL + + + + + + true + + + + AWVALID + + + c7_s_axi_ctrl_awvalid + + + + + AWREADY + + + c7_s_axi_ctrl_awready + + + + + AWADDR + + + c7_s_axi_ctrl_awaddr + + + + + WVALID + + + c7_s_axi_ctrl_wvalid + + + + + WREADY + + + c7_s_axi_ctrl_wready + + + + + WDATA + + + c7_s_axi_ctrl_wdata + + + + + BVALID + + + c7_s_axi_ctrl_bvalid + + + + + BREADY + + + c7_s_axi_ctrl_bready + + + + + BRESP + + + c7_s_axi_ctrl_bresp + + + + + ARVALID + + + c7_s_axi_ctrl_arvalid + + + + + ARREADY + + + c7_s_axi_ctrl_arready + + + + + ARADDR + + + c7_s_axi_ctrl_araddr + + + + + RVALID + + + c7_s_axi_ctrl_rvalid + + + + + RREADY + + + c7_s_axi_ctrl_rready + + + + + RDATA + + + c7_s_axi_ctrl_rdata + + + + + RRESP + + + c7_s_axi_ctrl_rresp + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + S7_AXI + + + + + + true + + + + AWID + + + c7_s_axi_awid + + + + + AWADDR + + + c7_s_axi_awaddr + + + + + AWLEN + + + c7_s_axi_awlen + + + + + AWSIZE + + + c7_s_axi_awsize + + + + + AWBURST + + + c7_s_axi_awburst + + + + + AWLOCK + + + c7_s_axi_awlock + + + + + AWCACHE + + + c7_s_axi_awcache + + + + + AWPROT + + + c7_s_axi_awprot + + + + + AWQOS + + + c7_s_axi_awqos + + + + + AWVALID + + + c7_s_axi_awvalid + + + + + AWREADY + + + c7_s_axi_awready + + + + + WDATA + + + c7_s_axi_wdata + + + + + WSTRB + + + c7_s_axi_wstrb + + + + + WLAST + + + c7_s_axi_wlast + + + + + WVALID + + + c7_s_axi_wvalid + + + + + WREADY + + + c7_s_axi_wready + + + + + BREADY + + + c7_s_axi_bready + + + + + BID + + + c7_s_axi_bid + + + + + BRESP + + + c7_s_axi_bresp + + + + + BVALID + + + c7_s_axi_bvalid + + + + + ARID + + + c7_s_axi_arid + + + + + ARADDR + + + c7_s_axi_araddr + + + + + ARLEN + + + c7_s_axi_arlen + + + + + ARSIZE + + + c7_s_axi_arsize + + + + + ARBURST + + + c7_s_axi_arburst + + + + + ARLOCK + + + c7_s_axi_arlock + + + + + ARCACHE + + + c7_s_axi_arcache + + + + + ARPROT + + + c7_s_axi_arprot + + + + + ARQOS + + + c7_s_axi_arqos + + + + + ARVALID + + + c7_s_axi_arvalid + + + + + ARREADY + + + c7_s_axi_arready + + + + + RREADY + + + c7_s_axi_rready + + + + + RID + + + c7_s_axi_rid + + + + + RDATA + + + c7_s_axi_rdata + + + + + RRESP + + + c7_s_axi_rresp + + + + + RLAST + + + c7_s_axi_rlast + + + + + RVALID + + + c7_s_axi_rvalid + + + + + + FREQ_HZ + 100 + + + + + + false + + + + + + C7_SYS_CLK + + + + true + + + + CLK_P + + + c7_sys_clk_p + + + + + CLK_N + + + c7_sys_clk_n + + + + + + + false + + + + + + C7_SYS_CLK_I + + + + true + + + + CLK + + + c7_sys_clk_i + + + + + + + false + + + + + + C7_ARESETN + + + + true + + + + ARESETN + + + c7_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + + s_axi_ctrl_memmap + + s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + memmap + + memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + c0_s_axi_ctrl_memmap + + c0_s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + c0_memmap + + c0_memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + c1_s_axi_ctrl_memmap + + c1_s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + c1_memmap + + c1_memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + c2_s_axi_ctrl_memmap + + c2_s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + c2_memmap + + c2_memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + c3_s_axi_ctrl_memmap + + c3_s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + c3_memmap + + c3_memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + c4_s_axi_ctrl_memmap + + c4_s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + c4_memmap + + c4_memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + c5_s_axi_ctrl_memmap + + c5_s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + c5_memmap + + c5_memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + c6_s_axi_ctrl_memmap + + c6_s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + c6_memmap + + c6_memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + c7_s_axi_ctrl_memmap + + c7_s_axi_ctrl_memaddr + 0 + 1048576 + 32 + register + read-write + + + + false + + + + + + + c7_memmap + + c7_memaddr + 0 + 1048576 + 32 + memory + read-write + + + + false + + + + + + + + + + device_temp_i + + in + + 11 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + sys_rst + + in + + + wire + dummy_view + + + + + + clk_ref_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + clk_ref_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + clk_ref_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dq + Data + Data + + inout + + 63 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_dm + data mask + data mask + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_byte_sel + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + app_en + + in + + + wire + dummy_view + + + + + + + true + + + + + + app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + app_wdf_end + + in + + + wire + dummy_view + + + + + + + true + + + + + + app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + app_wdf_wren + + in + + + wire + dummy_view + + + + + + + true + + + + + + app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + true + + + + + + app_rd_data_end + + out + + + wire + dummy_view + + + + + + + true + + + + + + app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + true + + + + + + app_rdy + + out + + + wire + dummy_view + + + + + + + true + + + + + + app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + true + + + + + + app_sr_req + + in + + + wire + dummy_view + + + + + + + true + + + + + + app_sr_active + + out + + + wire + dummy_view + + + + + + + true + + + + + + app_ref_req + + in + + + wire + dummy_view + + + + + + + true + + + + + + app_ref_ack + + out + + + wire + dummy_view + + + + + + + true + + + + + + app_zq_req + + in + + + wire + dummy_view + + + + + + + true + + + + + + app_zq_ack + + out + + + wire + dummy_view + + + + + + + true + + + + + + app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_addr + + in + + 27 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_wdf_data + + in + + 511 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_wdf_mask + + in + + 63 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_rd_data + + out + + 511 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_raw_not_ecc + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr3_app_ecc_multiple_err + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + true + + + + + + ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + ui_clk + + out + + + wire + dummy_view + + + + + + + true + + + + + + ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + true + + + + + + init_calib_complete + + out + + + wire + dummy_view + + + + + + + true + + + + + + aresetn + + in + + + wire + dummy_view + + + + + + + true + + + + + + c0_ddr3_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ui_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c0_s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c0_sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c0_init_calib_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c0_aresetn + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ui_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c1_s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c1_sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c1_init_calib_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c1_aresetn + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ui_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c2_s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c2_sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c2_init_calib_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c2_aresetn + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ui_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c3_s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c3_sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c3_init_calib_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c3_aresetn + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ui_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c4_s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c4_sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c4_init_calib_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c4_aresetn + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ui_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c5_s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c5_sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c5_init_calib_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c5_aresetn + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ui_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c6_s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c6_sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c6_init_calib_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c6_aresetn + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_addr + Address + Address + + out + + 13 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_ba + Bank Address + Bank Address + + out + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_ras_n + row address strobe + row address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_cas_n + column address strobe + column address strobe + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_we_n + write enable + write enable + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_odt + on die termination + on die termination + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dq + Data + Data + + inout + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dqs_p + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dqs_n + Data Strobe + Data Strobe + + inout + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_ca + Address + Address + + out + + 9 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_ck_p + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_ck_n + clock to memory device + clock to memory device + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_cke + clock enable + clock enable + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_cs_n + chip select + chip select + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dm + data mask + data mask + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_parity + parity bit + parity bit + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_ila_wrpath + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_ila_rdpath + + out + + 1022 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_ila_basic + + out + + 126 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_vio_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_byte_sel + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_sel_pi_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_pi_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_pi_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_sel_po_incdec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_po_f_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_po_f_stg23_sel + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_po_f_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_po_counter_read_val + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_addr + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_cmd + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_wdf_data + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_wdf_end + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_wdf_mask + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_wdf_wren + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_correct_en_i + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_rd_data + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_rd_data_end + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_rd_data_valid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_wdf_rdy + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_sr_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_sr_active + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_ref_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_ref_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_zq_req + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_zq_ack + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_raw_not_ecc + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_app_ecc_multiple_err + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr3_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_lpddr2_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_ui_clk_sync_rst + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ui_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ui_addn_clk_0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ui_addn_clk_1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ui_addn_clk_2 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ui_addn_clk_3 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_ui_addn_clk_4 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_ctrl_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_awid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_awaddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_awlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_awsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_awburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_awlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_awcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_awprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_awqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_awvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_awready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_wdata + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_wstrb + + in + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_wlast + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_wvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_wready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_bready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_bid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_bresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_bvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_arid + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_araddr + + in + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_arlen + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_arsize + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_arburst + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_arlock + + in + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_arcache + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_arprot + + in + + 2 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_arqos + + in + + 3 + 0 + + + + wire + dummy_view + + + + 0 + + + + + + false + + + + + + c7_s_axi_arvalid + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_arready + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_rready + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_rid + + out + + 3 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_rdata + + out + + 31 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_rresp + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_rlast + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_s_axi_rvalid + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_interrupt + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_mmcm_locked + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_cq_p + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_cq_n + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_q + + in + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_k_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_k_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_d + + out + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_sa + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_w_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_r_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_bw_n + + out + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_dll_off_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_ila0_data + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_ila0_trig + + out + + 6 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_ila1_data + + out + + 269 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_ila1_trig + + out + + 14 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_vio2_async_in + + out + + 198 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_vio2_sync_out + + in + + 34 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_wr_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_wr_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_wr_data0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_wr_bw_n0 + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_rd_cmd0 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_rd_addr0 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_rd_valid0 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_rd_data0 + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_wr_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_wr_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_wr_data1 + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_wr_bw_n1 + + in + + 15 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_rd_cmd1 + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_rd_addr1 + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_rd_valid1 + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_app_rd_data1 + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_qdriip_rst_clk + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_qk_p + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_qk_n + + in + + 7 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dq + + inout + + 17 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dm + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dk_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dk_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_ck_p + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_ck_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_cs_n + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_a + + out + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_ba + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_qvld + + in + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_we_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_ref_n + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_reset_n + reset to memory device + reset to memory device + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dbg_pi_tap_cnt + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_ila0_data + + out + + 638 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_ila0_trig + + out + + 30 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_vio1_async_in + + out + + 254 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_vio1_async_out + + out + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_vio1_sync_out + + in + + 62 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_win_inc + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_win_dec + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_win_active + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_win_current_byte + + in + + 2 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_dbg_pi_counter_read_val + + out + + 4 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_cmd_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_cmd + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_addr + + in + + 28 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_ba + + in + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_wr_en + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_wr_data + + in + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_wr_dm + + out + + 1 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_afifo_empty + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_afifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_afifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_afifo_afull + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_wdfifo_empty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_wdfifo_full + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_wdfifo_aempty + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_wdfifo_afull + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_rd_valid + + out + + 0 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_mem_ck_lock_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_rldiii_user_rd_data + + out + + 35 + 0 + + + + wire + dummy_view + + + + + + + false + + + + + + c7_sys_clk_p + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_sys_clk_n + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_sys_clk_i + Clock P + Clock P + + in + + + wire + dummy_view + + + + + + + false + + + + + + c7_init_calib_complete + + out + + + wire + dummy_view + + + + + + + false + + + + + + c7_aresetn + + in + + + wire + dummy_view + + + + + + + false + + + + + + + + NoOfControllers + Number of controllers + Number of controllers + 1 + + + COMBINED_INTERFACE + Indicates the controllers of same interface or same interface + Indicates the controllers of same interface or same interface + 0 + + + REFCLK_TYPE + Type of ref clk + Type of ref clk + NONE + + + MEM_TYPE + identify interface + identify interface + DDR3 + + + TEMP_MON_CONTROL + identify interface + identify interface + INTERNAL + + + POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + SYSCLK_TYPE + Type of sys clk + Type of sys clk + NOBUF + + + USE_AXI + USE AXI + USE AXI + 0 + + + ECC + ecc enable info + ecc enable info + OFF + + + DDR3_DQ_WIDTH + data bus width + data bus width + 64 + + + DDR3_DQS_WIDTH + data strobe width + data strobe width + 8 + + + DDR3_ROW_WIDTH + row width + row width + 14 + + + DDR3_BANK_WIDTH + bank width + bank width + 3 + + + DDR3_CK_WIDTH + clock width + clock width + 1 + + + DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + DDR3_DM_WIDTH + data mask width + data mask width + 8 + + + DDR3_ODT_WIDTH + odt width + odt width + 1 + + + DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 3 + + + DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + DDR2_ROW_WIDTH + row width + row width + 14 + + + DDR2_BANK_WIDTH + bank width + bank width + 3 + + + DDR2_CK_WIDTH + clock width + clock width + 1 + + + DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + DDR2_ODT_WIDTH + odt width + odt width + 1 + + + DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + LPDDR2_ROW_WIDTH + row width + row width + 14 + + + LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + DDR3_ADDR_WIDTH + addr width + addr width + 28 + + + DDR3_nCK_PER_CLK + nck per clk + nck per clk + 4 + + + DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 64 + + + DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 200000000 + + + PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 800 + + + MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + QDRIIP_DATA_WIDTH + data width + data width + 18 + + + QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + QDRIIP_BURST_LEN + burst len + burst len + 1 + + + RLDII_NUM_DEVICES + num devices + num devices + 1 + + + RLDII_DATA_WIDTH + data width + data width + 18 + + + RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + RLDII_QK_WIDTH + qk width + qk width + 8 + + + RLDII_CK_WIDTH + ck width + ck width + 1 + + + RLDII_DK_WIDTH + dk width + dk width + 1 + + + RLDII_DM_WIDTH + dm width + dm width + 1 + + + RLDII_BANK_WIDTH + bank width + bank width + 2 + + + RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + RLDIII_DATA_WIDTH + data width + data width + 18 + + + RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + RLDIII_QK_WIDTH + qk width + qk width + 8 + + + RLDIII_CK_WIDTH + ck width + ck width + 1 + + + RLDIII_DK_WIDTH + dk width + dk width + 1 + + + RLDIII_DM_WIDTH + dm width + dm width + 1 + + + RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + RLDX_DATA_WIDTH + data width + data width + 18 + + + RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + RLDX_BANK_WIDTH + bank width + bank width + 2 + + + RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + RLDX_DM_WIDTH + dm width + dm width + 1 + + + RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C0_MEM_TYPE + identify interface + identify interface + DDR3 + + + C0_IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + C0_SYSCLK_TYPE + Type of sys clk + Type of sys clk + DIFF + + + C0_USE_AXI + USE AXI + USE AXI + 0 + + + C0_ECC + ecc enable info + ecc enable info + OFF + + + C0_DDR3_DQ_WIDTH + data bus width + data bus width + 8 + + + C0_DDR3_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C0_DDR3_ROW_WIDTH + row width + row width + 14 + + + C0_DDR3_BANK_WIDTH + bank width + bank width + 3 + + + C0_DDR3_CK_WIDTH + clock width + clock width + 1 + + + C0_DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C0_DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + C0_DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C0_DDR3_DM_WIDTH + data mask width + data mask width + 1 + + + C0_DDR3_ODT_WIDTH + odt width + odt width + 1 + + + C0_DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C0_DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C0_DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C0_DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C0_DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C0_DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C0_DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C0_DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C0_DDR2_ROW_WIDTH + row width + row width + 14 + + + C0_DDR2_BANK_WIDTH + bank width + bank width + 3 + + + C0_DDR2_CK_WIDTH + clock width + clock width + 1 + + + C0_DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C0_DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C0_DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C0_DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C0_DDR2_ODT_WIDTH + odt width + odt width + 1 + + + C0_DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C0_DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C0_DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C0_DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C0_DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C0_DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C0_LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C0_LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C0_LPDDR2_ROW_WIDTH + row width + row width + 14 + + + C0_LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + C0_LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + C0_LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C0_LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C0_LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C0_LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C0_LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C0_LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C0_LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C0_LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C0_LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C0_LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C0_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C0_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C0_DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + C0_DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C0_DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C0_DDR3_ADDR_WIDTH + addr width + addr width + 8 + + + C0_DDR3_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C0_DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C0_DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C0_DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C0_DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C0_LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C0_LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C0_LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C0_FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 100.0 + + + C0_PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + C0_UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + C0_MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 1200.0 + + + C0_MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + C0_MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + C0_MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + C0_MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + C0_MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + C0_MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + C0_MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + C0_MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + C0_MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + C0_MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C0_C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C0_C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C0_C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C0_C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C0_C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C0_C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C0_C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C0_C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C0_QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + C0_QDRIIP_DATA_WIDTH + data width + data width + 18 + + + C0_QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + C0_QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + C0_QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C0_QDRIIP_BURST_LEN + burst len + burst len + 1 + + + C0_RLDII_NUM_DEVICES + num devices + num devices + 1 + + + C0_RLDII_DATA_WIDTH + data width + data width + 18 + + + C0_RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C0_RLDII_QK_WIDTH + qk width + qk width + 8 + + + C0_RLDII_CK_WIDTH + ck width + ck width + 1 + + + C0_RLDII_DK_WIDTH + dk width + dk width + 1 + + + C0_RLDII_DM_WIDTH + dm width + dm width + 1 + + + C0_RLDII_BANK_WIDTH + bank width + bank width + 2 + + + C0_RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C0_RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C0_RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + C0_RLDIII_DATA_WIDTH + data width + data width + 18 + + + C0_RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C0_RLDIII_QK_WIDTH + qk width + qk width + 8 + + + C0_RLDIII_CK_WIDTH + ck width + ck width + 1 + + + C0_RLDIII_DK_WIDTH + dk width + dk width + 1 + + + C0_RLDIII_DM_WIDTH + dm width + dm width + 1 + + + C0_RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + C0_RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C0_RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C0_RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C0_RLDX_DATA_WIDTH + data width + data width + 18 + + + C0_RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + C0_RLDX_BANK_WIDTH + bank width + bank width + 2 + + + C0_RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C0_RLDX_DM_WIDTH + dm width + dm width + 1 + + + C0_RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C0_RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + C0_RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C0_RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C0_RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + C0_RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C0_POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + C1_MEM_TYPE + identify interface + identify interface + DDR3 + + + C1_IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + C1_SYSCLK_TYPE + Type of sys clk + Type of sys clk + DIFF + + + C1_USE_AXI + USE AXI + USE AXI + 0 + + + C1_ECC + ecc enable info + ecc enable info + OFF + + + C1_DDR3_DQ_WIDTH + data bus width + data bus width + 8 + + + C1_DDR3_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C1_DDR3_ROW_WIDTH + row width + row width + 14 + + + C1_DDR3_BANK_WIDTH + bank width + bank width + 3 + + + C1_DDR3_CK_WIDTH + clock width + clock width + 1 + + + C1_DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C1_DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + C1_DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C1_DDR3_DM_WIDTH + data mask width + data mask width + 1 + + + C1_DDR3_ODT_WIDTH + odt width + odt width + 1 + + + C1_DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C1_DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C1_DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C1_DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C1_DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C1_DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C1_DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C1_DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C1_DDR2_ROW_WIDTH + row width + row width + 14 + + + C1_DDR2_BANK_WIDTH + bank width + bank width + 3 + + + C1_DDR2_CK_WIDTH + clock width + clock width + 1 + + + C1_DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C1_DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C1_DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C1_DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C1_DDR2_ODT_WIDTH + odt width + odt width + 1 + + + C1_DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C1_DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C1_DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C1_DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C1_DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C1_DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C1_LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C1_LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C1_LPDDR2_ROW_WIDTH + row width + row width + 14 + + + C1_LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + C1_LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + C1_LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C1_LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C1_LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C1_LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C1_LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C1_LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C1_LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C1_LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C1_LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C1_LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C1_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C1_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C1_DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + C1_DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C1_DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C1_DDR3_ADDR_WIDTH + addr width + addr width + 8 + + + C1_DDR3_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C1_DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C1_DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C1_DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C1_DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C1_LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C1_LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C1_LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C1_FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 100.0 + + + C1_PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + C1_UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + C1_MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 1200.0 + + + C1_MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + C1_MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + C1_MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + C1_MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + C1_MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + C1_MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + C1_MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + C1_MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + C1_MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + C1_MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C1_C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C1_C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C1_C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C1_C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C1_C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C1_C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C1_C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C1_C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C1_QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + C1_QDRIIP_DATA_WIDTH + data width + data width + 18 + + + C1_QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + C1_QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + C1_QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C1_QDRIIP_BURST_LEN + burst len + burst len + 1 + + + C1_RLDII_NUM_DEVICES + num devices + num devices + 1 + + + C1_RLDII_DATA_WIDTH + data width + data width + 18 + + + C1_RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C1_RLDII_QK_WIDTH + qk width + qk width + 8 + + + C1_RLDII_CK_WIDTH + ck width + ck width + 1 + + + C1_RLDII_DK_WIDTH + dk width + dk width + 1 + + + C1_RLDII_DM_WIDTH + dm width + dm width + 1 + + + C1_RLDII_BANK_WIDTH + bank width + bank width + 2 + + + C1_RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C1_RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C1_RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + C1_RLDIII_DATA_WIDTH + data width + data width + 18 + + + C1_RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C1_RLDIII_QK_WIDTH + qk width + qk width + 8 + + + C1_RLDIII_CK_WIDTH + ck width + ck width + 1 + + + C1_RLDIII_DK_WIDTH + dk width + dk width + 1 + + + C1_RLDIII_DM_WIDTH + dm width + dm width + 1 + + + C1_RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + C1_RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C1_RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C1_RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C1_RLDX_DATA_WIDTH + data width + data width + 18 + + + C1_RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + C1_RLDX_BANK_WIDTH + bank width + bank width + 2 + + + C1_RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C1_RLDX_DM_WIDTH + dm width + dm width + 1 + + + C1_RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C1_RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + C1_RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C1_RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C1_RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + C1_RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C1_POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + C2_MEM_TYPE + identify interface + identify interface + DDR3 + + + C2_IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + C2_SYSCLK_TYPE + Type of sys clk + Type of sys clk + DIFF + + + C2_USE_AXI + USE AXI + USE AXI + 0 + + + C2_ECC + ecc enable info + ecc enable info + OFF + + + C2_DDR3_DQ_WIDTH + data bus width + data bus width + 8 + + + C2_DDR3_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C2_DDR3_ROW_WIDTH + row width + row width + 14 + + + C2_DDR3_BANK_WIDTH + bank width + bank width + 3 + + + C2_DDR3_CK_WIDTH + clock width + clock width + 1 + + + C2_DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C2_DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + C2_DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C2_DDR3_DM_WIDTH + data mask width + data mask width + 1 + + + C2_DDR3_ODT_WIDTH + odt width + odt width + 1 + + + C2_DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C2_DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C2_DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C2_DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C2_DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C2_DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C2_DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C2_DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C2_DDR2_ROW_WIDTH + row width + row width + 14 + + + C2_DDR2_BANK_WIDTH + bank width + bank width + 3 + + + C2_DDR2_CK_WIDTH + clock width + clock width + 1 + + + C2_DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C2_DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C2_DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C2_DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C2_DDR2_ODT_WIDTH + odt width + odt width + 1 + + + C2_DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C2_DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C2_DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C2_DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C2_DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C2_DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C2_LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C2_LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C2_LPDDR2_ROW_WIDTH + row width + row width + 14 + + + C2_LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + C2_LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + C2_LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C2_LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C2_LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C2_LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C2_LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C2_LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C2_LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C2_LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C2_LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C2_LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C2_DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + C2_DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C2_DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C2_DDR3_ADDR_WIDTH + addr width + addr width + 8 + + + C2_DDR3_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C2_DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C2_DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C2_DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C2_DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C2_LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C2_LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C2_LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C2_FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 100.0 + + + C2_PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + C2_UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + C2_MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 1200.0 + + + C2_MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + C2_MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + C2_MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + C2_MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + C2_MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + C2_MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + C2_MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + C2_MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + C2_MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + C2_MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C2_C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C2_C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C2_C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C2_C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C2_C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C2_C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C2_C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C2_C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C2_QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + C2_QDRIIP_DATA_WIDTH + data width + data width + 18 + + + C2_QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + C2_QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + C2_QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C2_QDRIIP_BURST_LEN + burst len + burst len + 1 + + + C2_RLDII_NUM_DEVICES + num devices + num devices + 1 + + + C2_RLDII_DATA_WIDTH + data width + data width + 18 + + + C2_RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C2_RLDII_QK_WIDTH + qk width + qk width + 8 + + + C2_RLDII_CK_WIDTH + ck width + ck width + 1 + + + C2_RLDII_DK_WIDTH + dk width + dk width + 1 + + + C2_RLDII_DM_WIDTH + dm width + dm width + 1 + + + C2_RLDII_BANK_WIDTH + bank width + bank width + 2 + + + C2_RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C2_RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C2_RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + C2_RLDIII_DATA_WIDTH + data width + data width + 18 + + + C2_RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C2_RLDIII_QK_WIDTH + qk width + qk width + 8 + + + C2_RLDIII_CK_WIDTH + ck width + ck width + 1 + + + C2_RLDIII_DK_WIDTH + dk width + dk width + 1 + + + C2_RLDIII_DM_WIDTH + dm width + dm width + 1 + + + C2_RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + C2_RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C2_RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C2_RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C2_RLDX_DATA_WIDTH + data width + data width + 18 + + + C2_RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + C2_RLDX_BANK_WIDTH + bank width + bank width + 2 + + + C2_RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C2_RLDX_DM_WIDTH + dm width + dm width + 1 + + + C2_RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C2_RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + C2_RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C2_RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C2_RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + C2_RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C2_POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + C3_MEM_TYPE + identify interface + identify interface + DDR3 + + + C3_IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + C3_SYSCLK_TYPE + Type of sys clk + Type of sys clk + DIFF + + + C3_USE_AXI + USE AXI + USE AXI + 0 + + + C3_ECC + ecc enable info + ecc enable info + OFF + + + C3_DDR3_DQ_WIDTH + data bus width + data bus width + 8 + + + C3_DDR3_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C3_DDR3_ROW_WIDTH + row width + row width + 14 + + + C3_DDR3_BANK_WIDTH + bank width + bank width + 3 + + + C3_DDR3_CK_WIDTH + clock width + clock width + 1 + + + C3_DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C3_DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + C3_DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C3_DDR3_DM_WIDTH + data mask width + data mask width + 1 + + + C3_DDR3_ODT_WIDTH + odt width + odt width + 1 + + + C3_DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C3_DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C3_DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C3_DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C3_DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C3_DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C3_DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C3_DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C3_DDR2_ROW_WIDTH + row width + row width + 14 + + + C3_DDR2_BANK_WIDTH + bank width + bank width + 3 + + + C3_DDR2_CK_WIDTH + clock width + clock width + 1 + + + C3_DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C3_DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C3_DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C3_DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C3_DDR2_ODT_WIDTH + odt width + odt width + 1 + + + C3_DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C3_DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C3_DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C3_DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C3_DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C3_DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C3_LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C3_LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C3_LPDDR2_ROW_WIDTH + row width + row width + 14 + + + C3_LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + C3_LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + C3_LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C3_LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C3_LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C3_LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C3_LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C3_LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C3_LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C3_LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C3_LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C3_LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C3_DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + C3_DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C3_DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C3_DDR3_ADDR_WIDTH + addr width + addr width + 8 + + + C3_DDR3_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C3_DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C3_DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C3_DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C3_DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C3_LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C3_LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C3_LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C3_FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 100.0 + + + C3_PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + C3_UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + C3_MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 1200.0 + + + C3_MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + C3_MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + C3_MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + C3_MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + C3_MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + C3_MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + C3_MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + C3_MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + C3_MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + C3_MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C3_C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C3_C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C3_C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C3_C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C3_C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C3_C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C3_C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C3_C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C3_QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + C3_QDRIIP_DATA_WIDTH + data width + data width + 18 + + + C3_QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + C3_QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + C3_QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C3_QDRIIP_BURST_LEN + burst len + burst len + 1 + + + C3_RLDII_NUM_DEVICES + num devices + num devices + 1 + + + C3_RLDII_DATA_WIDTH + data width + data width + 18 + + + C3_RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C3_RLDII_QK_WIDTH + qk width + qk width + 8 + + + C3_RLDII_CK_WIDTH + ck width + ck width + 1 + + + C3_RLDII_DK_WIDTH + dk width + dk width + 1 + + + C3_RLDII_DM_WIDTH + dm width + dm width + 1 + + + C3_RLDII_BANK_WIDTH + bank width + bank width + 2 + + + C3_RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C3_RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C3_RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + C3_RLDIII_DATA_WIDTH + data width + data width + 18 + + + C3_RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C3_RLDIII_QK_WIDTH + qk width + qk width + 8 + + + C3_RLDIII_CK_WIDTH + ck width + ck width + 1 + + + C3_RLDIII_DK_WIDTH + dk width + dk width + 1 + + + C3_RLDIII_DM_WIDTH + dm width + dm width + 1 + + + C3_RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + C3_RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C3_RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C3_RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C3_RLDX_DATA_WIDTH + data width + data width + 18 + + + C3_RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + C3_RLDX_BANK_WIDTH + bank width + bank width + 2 + + + C3_RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C3_RLDX_DM_WIDTH + dm width + dm width + 1 + + + C3_RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C3_RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + C3_RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C3_RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C3_RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + C3_RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C3_POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + C4_MEM_TYPE + identify interface + identify interface + DDR3 + + + C4_IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + C4_SYSCLK_TYPE + Type of sys clk + Type of sys clk + DIFF + + + C4_USE_AXI + USE AXI + USE AXI + 0 + + + C4_ECC + ecc enable info + ecc enable info + OFF + + + C4_DDR3_DQ_WIDTH + data bus width + data bus width + 8 + + + C4_DDR3_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C4_DDR3_ROW_WIDTH + row width + row width + 14 + + + C4_DDR3_BANK_WIDTH + bank width + bank width + 3 + + + C4_DDR3_CK_WIDTH + clock width + clock width + 1 + + + C4_DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C4_DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + C4_DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C4_DDR3_DM_WIDTH + data mask width + data mask width + 1 + + + C4_DDR3_ODT_WIDTH + odt width + odt width + 1 + + + C4_DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C4_DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C4_DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C4_DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C4_DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C4_DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C4_DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C4_DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C4_DDR2_ROW_WIDTH + row width + row width + 14 + + + C4_DDR2_BANK_WIDTH + bank width + bank width + 3 + + + C4_DDR2_CK_WIDTH + clock width + clock width + 1 + + + C4_DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C4_DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C4_DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C4_DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C4_DDR2_ODT_WIDTH + odt width + odt width + 1 + + + C4_DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C4_DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C4_DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C4_DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C4_DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C4_DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C4_LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C4_LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C4_LPDDR2_ROW_WIDTH + row width + row width + 14 + + + C4_LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + C4_LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + C4_LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C4_LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C4_LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C4_LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C4_LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C4_LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C4_LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C4_LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C4_LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C4_LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C4_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C4_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C4_DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + C4_DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C4_DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C4_DDR3_ADDR_WIDTH + addr width + addr width + 8 + + + C4_DDR3_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C4_DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C4_DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C4_DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C4_DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C4_LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C4_LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C4_LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C4_FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 100.0 + + + C4_PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + C4_UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + C4_MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 1200.0 + + + C4_MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + C4_MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + C4_MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + C4_MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + C4_MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + C4_MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + C4_MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + C4_MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + C4_MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + C4_MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C4_C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C4_C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C4_C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C4_C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C4_C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C4_C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C4_C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C4_C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C4_QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + C4_QDRIIP_DATA_WIDTH + data width + data width + 18 + + + C4_QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + C4_QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + C4_QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C4_QDRIIP_BURST_LEN + burst len + burst len + 1 + + + C4_RLDII_NUM_DEVICES + num devices + num devices + 1 + + + C4_RLDII_DATA_WIDTH + data width + data width + 18 + + + C4_RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C4_RLDII_QK_WIDTH + qk width + qk width + 8 + + + C4_RLDII_CK_WIDTH + ck width + ck width + 1 + + + C4_RLDII_DK_WIDTH + dk width + dk width + 1 + + + C4_RLDII_DM_WIDTH + dm width + dm width + 1 + + + C4_RLDII_BANK_WIDTH + bank width + bank width + 2 + + + C4_RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C4_RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C4_RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + C4_RLDIII_DATA_WIDTH + data width + data width + 18 + + + C4_RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C4_RLDIII_QK_WIDTH + qk width + qk width + 8 + + + C4_RLDIII_CK_WIDTH + ck width + ck width + 1 + + + C4_RLDIII_DK_WIDTH + dk width + dk width + 1 + + + C4_RLDIII_DM_WIDTH + dm width + dm width + 1 + + + C4_RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + C4_RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C4_RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C4_RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C4_RLDX_DATA_WIDTH + data width + data width + 18 + + + C4_RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + C4_RLDX_BANK_WIDTH + bank width + bank width + 2 + + + C4_RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C4_RLDX_DM_WIDTH + dm width + dm width + 1 + + + C4_RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C4_RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + C4_RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C4_RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C4_RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + C4_RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C4_POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + C5_MEM_TYPE + identify interface + identify interface + DDR3 + + + C5_IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + C5_SYSCLK_TYPE + Type of sys clk + Type of sys clk + DIFF + + + C5_USE_AXI + USE AXI + USE AXI + 0 + + + C5_ECC + ecc enable info + ecc enable info + OFF + + + C5_DDR3_DQ_WIDTH + data bus width + data bus width + 8 + + + C5_DDR3_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C5_DDR3_ROW_WIDTH + row width + row width + 14 + + + C5_DDR3_BANK_WIDTH + bank width + bank width + 3 + + + C5_DDR3_CK_WIDTH + clock width + clock width + 1 + + + C5_DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C5_DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + C5_DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C5_DDR3_DM_WIDTH + data mask width + data mask width + 1 + + + C5_DDR3_ODT_WIDTH + odt width + odt width + 1 + + + C5_DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C5_DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C5_DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C5_DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C5_DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C5_DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C5_DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C5_DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C5_DDR2_ROW_WIDTH + row width + row width + 14 + + + C5_DDR2_BANK_WIDTH + bank width + bank width + 3 + + + C5_DDR2_CK_WIDTH + clock width + clock width + 1 + + + C5_DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C5_DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C5_DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C5_DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C5_DDR2_ODT_WIDTH + odt width + odt width + 1 + + + C5_DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C5_DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C5_DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C5_DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C5_DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C5_DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C5_LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C5_LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C5_LPDDR2_ROW_WIDTH + row width + row width + 14 + + + C5_LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + C5_LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + C5_LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C5_LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C5_LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C5_LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C5_LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C5_LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C5_LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C5_LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C5_LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C5_LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C5_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C5_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C5_DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + C5_DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C5_DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C5_DDR3_ADDR_WIDTH + addr width + addr width + 8 + + + C5_DDR3_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C5_DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C5_DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C5_DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C5_DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C5_LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C5_LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C5_LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C5_FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 100.0 + + + C5_PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + C5_UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + C5_MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 1200.0 + + + C5_MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + C5_MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + C5_MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + C5_MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + C5_MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + C5_MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + C5_MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + C5_MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + C5_MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + C5_MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C5_C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C5_C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C5_C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C5_C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C5_C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C5_C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C5_C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C5_C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C5_QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + C5_QDRIIP_DATA_WIDTH + data width + data width + 18 + + + C5_QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + C5_QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + C5_QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C5_QDRIIP_BURST_LEN + burst len + burst len + 1 + + + C5_RLDII_NUM_DEVICES + num devices + num devices + 1 + + + C5_RLDII_DATA_WIDTH + data width + data width + 18 + + + C5_RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C5_RLDII_QK_WIDTH + qk width + qk width + 8 + + + C5_RLDII_CK_WIDTH + ck width + ck width + 1 + + + C5_RLDII_DK_WIDTH + dk width + dk width + 1 + + + C5_RLDII_DM_WIDTH + dm width + dm width + 1 + + + C5_RLDII_BANK_WIDTH + bank width + bank width + 2 + + + C5_RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C5_RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C5_RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + C5_RLDIII_DATA_WIDTH + data width + data width + 18 + + + C5_RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C5_RLDIII_QK_WIDTH + qk width + qk width + 8 + + + C5_RLDIII_CK_WIDTH + ck width + ck width + 1 + + + C5_RLDIII_DK_WIDTH + dk width + dk width + 1 + + + C5_RLDIII_DM_WIDTH + dm width + dm width + 1 + + + C5_RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + C5_RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C5_RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C5_RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C5_RLDX_DATA_WIDTH + data width + data width + 18 + + + C5_RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + C5_RLDX_BANK_WIDTH + bank width + bank width + 2 + + + C5_RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C5_RLDX_DM_WIDTH + dm width + dm width + 1 + + + C5_RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C5_RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + C5_RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C5_RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C5_RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + C5_RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C5_POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + C6_MEM_TYPE + identify interface + identify interface + DDR3 + + + C6_IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + C6_SYSCLK_TYPE + Type of sys clk + Type of sys clk + DIFF + + + C6_USE_AXI + USE AXI + USE AXI + 0 + + + C6_ECC + ecc enable info + ecc enable info + OFF + + + C6_DDR3_DQ_WIDTH + data bus width + data bus width + 8 + + + C6_DDR3_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C6_DDR3_ROW_WIDTH + row width + row width + 14 + + + C6_DDR3_BANK_WIDTH + bank width + bank width + 3 + + + C6_DDR3_CK_WIDTH + clock width + clock width + 1 + + + C6_DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C6_DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + C6_DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C6_DDR3_DM_WIDTH + data mask width + data mask width + 1 + + + C6_DDR3_ODT_WIDTH + odt width + odt width + 1 + + + C6_DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C6_DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C6_DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C6_DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C6_DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C6_DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C6_DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C6_DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C6_DDR2_ROW_WIDTH + row width + row width + 14 + + + C6_DDR2_BANK_WIDTH + bank width + bank width + 3 + + + C6_DDR2_CK_WIDTH + clock width + clock width + 1 + + + C6_DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C6_DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C6_DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C6_DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C6_DDR2_ODT_WIDTH + odt width + odt width + 1 + + + C6_DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C6_DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C6_DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C6_DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C6_DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C6_DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C6_LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C6_LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C6_LPDDR2_ROW_WIDTH + row width + row width + 14 + + + C6_LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + C6_LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + C6_LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C6_LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C6_LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C6_LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C6_LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C6_LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C6_LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C6_LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C6_LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C6_LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C6_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C6_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C6_DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + C6_DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C6_DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C6_DDR3_ADDR_WIDTH + addr width + addr width + 8 + + + C6_DDR3_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C6_DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C6_DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C6_DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C6_DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C6_LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C6_LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C6_LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C6_FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 100.0 + + + C6_PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + C6_UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + C6_MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 1200.0 + + + C6_MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + C6_MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + C6_MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + C6_MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + C6_MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + C6_MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + C6_MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + C6_MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + C6_MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + C6_MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C6_C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C6_C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C6_C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C6_C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C6_C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C6_C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C6_C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C6_C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C6_QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + C6_QDRIIP_DATA_WIDTH + data width + data width + 18 + + + C6_QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + C6_QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + C6_QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C6_QDRIIP_BURST_LEN + burst len + burst len + 1 + + + C6_RLDII_NUM_DEVICES + num devices + num devices + 1 + + + C6_RLDII_DATA_WIDTH + data width + data width + 18 + + + C6_RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C6_RLDII_QK_WIDTH + qk width + qk width + 8 + + + C6_RLDII_CK_WIDTH + ck width + ck width + 1 + + + C6_RLDII_DK_WIDTH + dk width + dk width + 1 + + + C6_RLDII_DM_WIDTH + dm width + dm width + 1 + + + C6_RLDII_BANK_WIDTH + bank width + bank width + 2 + + + C6_RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C6_RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C6_RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + C6_RLDIII_DATA_WIDTH + data width + data width + 18 + + + C6_RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C6_RLDIII_QK_WIDTH + qk width + qk width + 8 + + + C6_RLDIII_CK_WIDTH + ck width + ck width + 1 + + + C6_RLDIII_DK_WIDTH + dk width + dk width + 1 + + + C6_RLDIII_DM_WIDTH + dm width + dm width + 1 + + + C6_RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + C6_RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C6_RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C6_RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C6_RLDX_DATA_WIDTH + data width + data width + 18 + + + C6_RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + C6_RLDX_BANK_WIDTH + bank width + bank width + 2 + + + C6_RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C6_RLDX_DM_WIDTH + dm width + dm width + 1 + + + C6_RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C6_RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + C6_RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C6_RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C6_RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + C6_RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C6_POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + C7_MEM_TYPE + identify interface + identify interface + DDR3 + + + C7_IS_CLK_SHARED + is clk shared + is clk shared + FALSE + + + C7_SYSCLK_TYPE + Type of sys clk + Type of sys clk + DIFF + + + C7_USE_AXI + USE AXI + USE AXI + 0 + + + C7_ECC + ecc enable info + ecc enable info + OFF + + + C7_DDR3_DQ_WIDTH + data bus width + data bus width + 8 + + + C7_DDR3_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C7_DDR3_ROW_WIDTH + row width + row width + 14 + + + C7_DDR3_BANK_WIDTH + bank width + bank width + 3 + + + C7_DDR3_CK_WIDTH + clock width + clock width + 1 + + + C7_DDR3_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C7_DDR3_CS_WIDTH + chip select width + chip select width + 1 + + + C7_DDR3_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C7_DDR3_DM_WIDTH + data mask width + data mask width + 1 + + + C7_DDR3_ODT_WIDTH + odt width + odt width + 1 + + + C7_DDR3_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C7_DDR3_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C7_DDR3_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C7_DDR3_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C7_DDR3_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C7_DDR3_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C7_DDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C7_DDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C7_DDR2_ROW_WIDTH + row width + row width + 14 + + + C7_DDR2_BANK_WIDTH + bank width + bank width + 3 + + + C7_DDR2_CK_WIDTH + clock width + clock width + 1 + + + C7_DDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C7_DDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C7_DDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C7_DDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C7_DDR2_ODT_WIDTH + odt width + odt width + 1 + + + C7_DDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C7_DDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C7_DDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C7_DDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C7_DDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C7_DDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C7_LPDDR2_DQ_WIDTH + data bus width + data bus width + 8 + + + C7_LPDDR2_DQS_WIDTH + data strobe width + data strobe width + 1 + + + C7_LPDDR2_ROW_WIDTH + row width + row width + 14 + + + C7_LPDDR2_BANK_WIDTH + bank width + bank width + 3 + + + C7_LPDDR2_CK_WIDTH + clock width + clock width + 1 + + + C7_LPDDR2_CKE_WIDTH + clock enable width + clock enable width + 1 + + + C7_LPDDR2_CS_WIDTH + chip select width + chip select width + 1 + + + C7_LPDDR2_nCS_PER_RANK + chip select per rank + chip select per rank + 1 + + + C7_LPDDR2_DM_WIDTH + data mask width + data mask width + 1 + + + C7_LPDDR2_USE_CS_PORT + CS Port is in use + CS Port is in use + 1 + + + C7_LPDDR2_USE_DM_PORT + DM Port is in use + DM Port is in use + 1 + + + C7_LPDDR2_USE_ODT_PORT + ODT Port is in use + ODT Port is in use + 1 + + + C7_LPDDR2_REG_CTRL + Indicates Registered DIMM or not + Indicates Registered DIMM or not + OFF + + + C7_LPDDR2_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C7_LPDDR2_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C7_DQS_CNT_WIDTH + DQS count width + DQS count width + 1 + + + C7_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C7_DDRX_ADDR_WIDTH + addr width + addr width + 8 + + + C7_DDRX_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C7_DDRX_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C7_DDR3_ADDR_WIDTH + addr width + addr width + 8 + + + C7_DDR3_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C7_DDR3_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C7_DDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C7_DDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C7_DDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C7_LPDDR2_ADDR_WIDTH + addr width + addr width + 8 + + + C7_LPDDR2_nCK_PER_CLK + nck per clk + nck per clk + 2 + + + C7_LPDDR2_DATA_WIDTH + datawidth excluding the ECC + datawidth excluding the ECC + 8 + + + C7_FREQ_HZ + defines the UI Clk freq + defines the UI Clk freq + 100.0 + + + C7_PHASE + defines the UI Clk phase + defines the UI Clk phase + 0.000 + + + C7_UI_EXTRA_CLOCKS + Enablement of extra clocks + Enablement of extra clocks + FALSE + + + C7_MMCM_VCO + Max possible VCO of MMCM primitive + Max possible VCO of MMCM primitive + 1200.0 + + + C7_MMCM_CLKOUT0_FREQ + mmcm extra clkout0 + mmcm extra clkout0 + 10.0 + + + C7_MMCM_CLKOUT1_FREQ + mmcm extra clkout1 + mmcm extra clkout1 + 10 + + + C7_MMCM_CLKOUT2_FREQ + mmcm extra clkout2 + mmcm extra clkout2 + 10 + + + C7_MMCM_CLKOUT3_FREQ + mmcm extra clkout3 + mmcm extra clkout3 + 10 + + + C7_MMCM_CLKOUT4_FREQ + mmcm extra clkout4 + mmcm extra clkout4 + 10 + + + C7_MMCM_CLKOUT0_EN + Indicates Enablement of CLKOUT0 + Indicates Enablement of CLKOUT0 + FALSE + + + C7_MMCM_CLKOUT2_EN + Indicates Enablement of CLKOUT2 + Indicates Enablement of CLKOUT2 + FALSE + + + C7_MMCM_CLKOUT1_EN + Indicates Enablement of CLKOUT1 + Indicates Enablement of CLKOUT1 + FALSE + + + C7_MMCM_CLKOUT3_EN + Indicates Enablement of CLKOUT3 + Indicates Enablement of CLKOUT3 + FALSE + + + C7_MMCM_CLKOUT4_EN + Indicates Enablement of CLKOUT4 + Indicates Enablement of CLKOUT4 + FALSE + + + C7_C_S_AXI_CTRL_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C7_C_S_AXI_CTRL_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C7_C_S_AXI_CTRL_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C7_C_S_AXI_CTRL_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C7_C_S_AXI_ID_WIDTH + AXI ID Width + AXI ID Width + 4 + + + C7_C_S_AXI_DATA_WIDTH + AXI Data Width + AXI Data Width + 32 + + + C7_C_S_AXI_ADDR_WIDTH + AXI Addr Width + AXI Addr Width + 32 + + + C7_C_S_AXI_MEM_SIZE + Memory Address Space + Memory Address Space + 1048576 + + + C7_QDRIIP_NUM_DEVICES + num devices + num devices + 1 + + + C7_QDRIIP_DATA_WIDTH + data width + data width + 18 + + + C7_QDRIIP_ADDR_WIDTH + addr width + addr width + 29 + + + C7_QDRIIP_BW_WIDTH + bw width + bw width + 8 + + + C7_QDRIIP_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C7_QDRIIP_BURST_LEN + burst len + burst len + 1 + + + C7_RLDII_NUM_DEVICES + num devices + num devices + 1 + + + C7_RLDII_DATA_WIDTH + data width + data width + 18 + + + C7_RLDII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C7_RLDII_QK_WIDTH + qk width + qk width + 8 + + + C7_RLDII_CK_WIDTH + ck width + ck width + 1 + + + C7_RLDII_DK_WIDTH + dk width + dk width + 1 + + + C7_RLDII_DM_WIDTH + dm width + dm width + 1 + + + C7_RLDII_BANK_WIDTH + bank width + bank width + 2 + + + C7_RLDII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C7_RLDII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C7_RLDIII_NUM_DEVICES + num devices + num devices + 1 + + + C7_RLDIII_DATA_WIDTH + data width + data width + 18 + + + C7_RLDIII_RLD_ADDR_WIDTH + rld addr width + rld addr width + 29 + + + C7_RLDIII_QK_WIDTH + qk width + qk width + 8 + + + C7_RLDIII_CK_WIDTH + ck width + ck width + 1 + + + C7_RLDIII_DK_WIDTH + dk width + dk width + 1 + + + C7_RLDIII_DM_WIDTH + dm width + dm width + 1 + + + C7_RLDIII_BANK_WIDTH + bank width + bank width + 2 + + + C7_RLDIII_QVLD_WIDTH + qvld width + qvld width + 1 + + + C7_RLDIII_DEBUG_PORT + Debug Port enable info + Debug Port enable info + OFF + + + C7_RLDX_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C7_RLDX_DATA_WIDTH + data width + data width + 18 + + + C7_RLDX_ADDR_WIDTH + addr width + addr width + 29 + + + C7_RLDX_BANK_WIDTH + bank width + bank width + 2 + + + C7_RLDX_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C7_RLDX_DM_WIDTH + dm width + dm width + 1 + + + C7_RLDII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C7_RLDII_ADDR_WIDTH + addr width + addr width + 29 + + + C7_RLDII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C7_RLDIII_CMD_PER_CLK + cmd per clock + cmd per clock + 1 + + + C7_RLDIII_ADDR_WIDTH + addr width + addr width + 29 + + + C7_RLDIII_nCK_PER_CLK + nCk per clock + nCk per clock + 1 + + + C7_POLARITY + Polarity of the value + Polarity of the value + ACTIVE_LOW + + + + + + choice_list_1570a756 + DIFF + SINGLE + NOBUF + + + choice_list_350ebf94 + DIFF + SINGLE + NOBUF + NONE + + + choice_list_40181835 + 32 + 64 + 128 + 256 + 512 + 1024 + + + choice_list_6eff49bd + ACTIVE_LOW + ACTIVE_HIGH + + + choice_list_b54243b1 + DDR3 + DDR2 + LPDDR2 + QDRIIP + RLDII + RLDIII + + + choice_list_bdb560e1 + 8 + 16 + 24 + 32 + 40 + 48 + 56 + 64 + 72 + + + choice_list_c7c132f6 + 0.000 + 337.500 + 315.000 + + + choice_list_ce26ebdb + Custom + reset + + + choice_list_cf6acb30 + 18 + 36 + 72 + + + choice_list_d10f4555 + FALSE + TRUE + + + choice_list_dc86ec6e + OFF + ON + + + choice_list_dd2843c6 + 1 + 2 + 4 + 8 + + + choice_list_e5b95726 + INTERNAL + EXTERNAL + + + choice_list_e7c484ae + TRUE + FALSE + + + choice_pairs_72baff11 + Custom + ddr3_sdram + + + This Memory Interface Generator is a simple menu driven tool to generate advanced memory interfaces. This tool generates HDL and pin placement constraints that will help you design your application. Kintex-7 supports DDR3 SDRAM, DDR2 SDRAM, LPDDR2 SDRAM, QDR II+ SRAM, RLDRAMII and RLDRAMIII. Virtex-7 supports DDR3 SDRAM, DDR2 SDRAM, LPDDR2 SDRAM, QDR II+ SRAM, RLDRAMII and RLDRAMIII. Artix-7 supports DDR3 SDRAM, DDR2 SDRAM and LPDDR2 SDRAM. Zynq supports DDR3 SDRAM, DDR2 SDRAM and LPDDR2 SDRAM + + + XML_INPUT_FILE + XML_INPUT_FILE + mig_a.prj + + + RESET_BOARD_INTERFACE + RESET_BOARD_INTERFACE + Custom + + + MIG_DONT_TOUCH_PARAM + MIG_DONT_TOUCH_PARAM + Custom + + + BOARD_MIG_PARAM + BOARD_MIG_PARAM + Custom + + + Component_Name + mig_7series_0 + + + + + Memory Interface Generator (MIG 7 Series) + 3 + + + + + + + + + 2017.1 + + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/datasheet.txt b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/datasheet.txt new file mode 100644 index 0000000..81caa9b --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/datasheet.txt @@ -0,0 +1,75 @@ + + +Vivado Project Options: + Target Device : xc7z045-ffg900 + Speed Grade : -2 + HDL : verilog + Synthesis Tool : VIVADO + +MIG Output Options: + Module Name : mig_7series_0 + No of Controllers : 1 + Selected Compatible Device(s) : -- + +FPGA Options: + System Clock Type : No Buffer + Reference Clock Type : Use System Clock + Debug Port : OFF + Internal Vref : disabled + IO Power Reduction : ON + XADC instantiation in MIG : Enabled + +Extended FPGA Options: + DCI for DQ,DQS/DQS#,DM : enabled + Internal Termination (HR Banks) : 50 Ohms + +/*******************************************************/ +/* Controller 0 */ +/*******************************************************/ +Controller Options : + Memory : DDR3_SDRAM + Interface : NATIVE + Design Clock Frequency : 1250 ps ( 0.00 MHz) + Phy to Controller Clock Ratio : 4:1 + Input Clock Period : 5000 ps + CLKFBOUT_MULT (PLL) : 8 + DIVCLK_DIVIDE (PLL) : 1 + VCC_AUX IO : 2.0V + Memory Type : SODIMMs + Memory Part : MT8JTF12864HZ-1G6 + Equivalent Part(s) : -- + Data Width : 64 + ECC : Disabled + Data Mask : enabled + ORDERING : Normal + +AXI Parameters : + Data Width : 512 + Arbitration Scheme : RD_PRI_REG + Narrow Burst Support : 0 + ID Width : 4 + +Memory Options: + Burst Length (MR0[1:0]) : 8 - Fixed + Read Burst Type (MR0[3]) : Sequential + CAS Latency (MR0[6:4]) : 11 + Output Drive Strength (MR1[5,1]) : RZQ/7 + Controller CS option : Enable + Rtt_NOM - ODT (MR1[9,6,2]) : RZQ/6 + Rtt_WR - Dynamic ODT (MR2[10:9]) : Dynamic ODT off + Memory Address Mapping : BANK_ROW_COLUMN + + +Bank Selections: + +System_Control: + SignalName: sys_rst + PadLocation: No connect Bank: Select Bank + SignalName: init_calib_complete + PadLocation: No connect Bank: Select Bank + SignalName: tg_compare_error + PadLocation: No connect Bank: Select Bank + + + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/docs/phy_only_support_readme.txt b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/docs/phy_only_support_readme.txt new file mode 100644 index 0000000..9afa4bd --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/docs/phy_only_support_readme.txt @@ -0,0 +1,11 @@ +This file includes the information about the PHY layer support: + + - Folder "/user_design/rtl/phy" includes the PHY layer + RTL modules. + - The top-level PHY module to be instantiated is ddr_phy_top (ddr_phy_top.v) + - PHY modules can be used in any environment by taking the RTL modules + listed in "phy" folder and PHY layer needs to be connected to + the memory controller. + - Refer to User Guide (UG586) section "Physical Layer Interface (Non-Memory + Controller Design)" for more details on PHY interface signaling, + parameter(s) and timing information. diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/log.txt b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/log.txt new file mode 100644 index 0000000..ad852d1 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/log.txt @@ -0,0 +1,39 @@ + Log file + +Generated by MIG MIG Version 4.0 +Coregen 14.7 - Build Number P_INT.20170217 on ?? 7? 22 00:20:45 2017 + + +Creating the directory +/home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design +Created the SDC file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/par/example_top.xdc Successfully +Copied the Traffic Gen Files Successfully +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/../docs/phy_only_support_readme.txt Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/par/readme.txt Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/ddr3_model.sv Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/ddr3_model_parameters.vh Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/xsim_files.prj Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/xsim_options.tcl Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/xsim_run.sh Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/readme.txt Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/sim.do Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/sim_tb_top.v Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/ies_run.sh Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/vcs_run.sh Successfully +..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/wiredly.v Successfully +..Successful +Created the Top Level File - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/rtl/example_top_temp.v +Created the Top Level File - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/sim/sim_tb_top.v +The design output files are located in /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/example_design/rtl and ..example_design/par for rtl & ucf files respectively. diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/par/example_top.xdc b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/par/example_top.xdc new file mode 100644 index 0000000..3e200c7 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/par/example_top.xdc @@ -0,0 +1,27 @@ +################################################################################################## +## +## Xilinx, Inc. 2010 www.xilinx.com +## ?? 7? 22 00:20:45 2017 +## Generated by MIG Version 4.0 +## +################################################################################################## +## File name : example_top.xdc +## Details : Constraints file +## FPGA Family: ZYNQ +## FPGA Part: XC7Z045-FFG900 +## Speedgrade: -2 +## Design Entry: VERILOG +## Frequency: 0 MHz +## Time Period: 1250 ps +################################################################################################## + +################################################################################################## +## Controller 0 +## Memory Device: DDR3_SDRAM->SODIMMs->MT8JTF12864HZ-1G6 +## Data Width: 64 +## Time Period: 1250 +## Data Mask: 1 +################################################################################################## +############## NET - IOSTANDARD ################## + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/par/readme.txt b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/par/readme.txt new file mode 100644 index 0000000..c3ee363 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/par/readme.txt @@ -0,0 +1,17 @@ +Files in PAR folder : + +* "example_top.xdc" file is the constraint file for the design. This is used + by Vivado. It has clock constraints, location constraints, IO standards + and false path/SLICE constraints if any. + +* LTX/probe file is required when programming BIT file to FPGA as it contains + the information of debug signals like signal name and position with respect + to ILA/VIO core. The probe file (debug_nets.ltx) is auto generated by + vivado tool and is found in .runs/impl_1/debug_nets.ltx + +compatible_ucf folder: + +* MIG outputs this folder only when Pin Compatible FPGAs are checked in GUI + (Pin Compatible FPGAs page in GUI). It generates the XDC files for all + the Compatible FPGAs selected in GUI. If you want to switch to any of the + Compatible FPGAs follow the steps mentioned below. diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/example_top.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/example_top.v new file mode 100644 index 0000000..6462cf3 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/example_top.v @@ -0,0 +1,653 @@ +//***************************************************************************** +// (c) Copyright 2009 - 2013 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor : Xilinx +// \ \ \/ Version : 4.0 +// \ \ Application : MIG +// / / Filename : example_top.v +// /___/ /\ Date Last Modified : $Date: 2011/06/02 08:35:03 $ +// \ \ / \ Date Created : Tue Sept 21 2010 +// \___\/\___\ +// +// Device : 7 Series +// Design Name : DDR3 SDRAM +// Purpose : +// Top-level module. This module serves as an example, +// and allows the user to synthesize a self-contained design, +// which they can be used to test their hardware. +// In addition to the memory controller, the module instantiates: +// 1. Synthesizable testbench - used to model user's backend logic +// and generate different traffic patterns +// Reference : +// Revision History : +//***************************************************************************** + +//`define SKIP_CALIB +`timescale 1ps/1ps + +module example_top # + ( + + //*************************************************************************** + // Traffic Gen related parameters + //*************************************************************************** + parameter PORT_MODE = "BI_MODE", + parameter DATA_MODE = 4'b0010, + parameter TST_MEM_INSTR_MODE = "R_W_INSTR_MODE", + parameter EYE_TEST = "FALSE", + // set EYE_TEST = "TRUE" to probe memory + // signals. Traffic Generator will only + // write to one single location and no + // read transactions will be generated. + parameter DATA_PATTERN = "DGEN_ALL", + // For small devices, choose one only. + // For large device, choose "DGEN_ALL" + // "DGEN_HAMMER", "DGEN_WALKING1", + // "DGEN_WALKING0","DGEN_ADDR"," + // "DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + parameter CMD_PATTERN = "CGEN_ALL", + // "CGEN_PRBS","CGEN_FIXED","CGEN_BRAM", + // "CGEN_SEQUENTIAL", "CGEN_ALL" + parameter CMD_WDT = 'h3FF, + parameter WR_WDT = 'h1FFF, + parameter RD_WDT = 'h3FF, + parameter SEL_VICTIM_LINE = 0, + parameter BEGIN_ADDRESS = 32'h00000000, + parameter END_ADDRESS = 32'h00ffffff, + parameter PRBS_EADDR_MASK_POS = 32'hff000000, + + //*************************************************************************** + // The following parameters refer to width of various ports + //*************************************************************************** + parameter CK_WIDTH = 1, + // # of CK/CK# outputs to memory. + parameter nCS_PER_RANK = 1, + // # of unique CS outputs per rank for phy + parameter CKE_WIDTH = 1, + // # of CKE outputs to memory. + parameter DM_WIDTH = 8, + // # of DM (data mask) + parameter ODT_WIDTH = 1, + // # of ODT outputs to memory. + parameter BANK_WIDTH = 3, + // # of memory Bank Address bits. + parameter COL_WIDTH = 10, + // # of memory Column Address bits. + parameter CS_WIDTH = 1, + // # of unique CS outputs to memory. + parameter DQ_WIDTH = 64, + // # of DQ (data) + parameter DQS_WIDTH = 8, + parameter DQS_CNT_WIDTH = 3, + // = ceil(log2(DQS_WIDTH)) + parameter DRAM_WIDTH = 8, + // # of DQ per DQS + parameter ECC = "OFF", + parameter ECC_TEST = "OFF", + //parameter nBANK_MACHS = 4, + parameter nBANK_MACHS = 4, + parameter RANKS = 1, + // # of Ranks. + parameter ROW_WIDTH = 14, + // # of memory Row Address bits. + parameter ADDR_WIDTH = 28, + // # = RANK_WIDTH + BANK_WIDTH + // + ROW_WIDTH + COL_WIDTH; + // Chip Select is always tied to low for + // single rank devices + + //*************************************************************************** + // The following parameters are mode register settings + //*************************************************************************** + parameter BURST_MODE = "8", + // DDR3 SDRAM: + // Burst Length (Mode Register 0). + // # = "8", "4", "OTF". + // DDR2 SDRAM: + // Burst Length (Mode Register). + // # = "8", "4". + + + //*************************************************************************** + // The following parameters are multiplier and divisor factors for PLLE2. + // Based on the selected design frequency these parameters vary. + //*************************************************************************** + parameter CLKIN_PERIOD = 5000, + // Input Clock Period + parameter CLKFBOUT_MULT = 8, + // write PLL VCO multiplier + parameter DIVCLK_DIVIDE = 1, + // write PLL VCO divisor + parameter CLKOUT0_PHASE = 337.5, + // Phase for PLL output clock (CLKOUT0) + parameter CLKOUT0_DIVIDE = 2, + // VCO output divisor for PLL output clock (CLKOUT0) + parameter CLKOUT1_DIVIDE = 2, + // VCO output divisor for PLL output clock (CLKOUT1) + parameter CLKOUT2_DIVIDE = 32, + // VCO output divisor for PLL output clock (CLKOUT2) + parameter CLKOUT3_DIVIDE = 8, + // VCO output divisor for PLL output clock (CLKOUT3) + parameter MMCM_VCO = 800, + // Max Freq (MHz) of MMCM VCO + parameter MMCM_MULT_F = 4, + // write MMCM VCO multiplier + parameter MMCM_DIVCLK_DIVIDE = 1, + // write MMCM VCO divisor + + //*************************************************************************** + // Simulation parameters + //*************************************************************************** + parameter SIMULATION = "FALSE", + // Should be TRUE during design simulations and + // FALSE during implementations + + //*************************************************************************** + // IODELAY and PHY related parameters + //*************************************************************************** + parameter TCQ = 100, + + parameter DRAM_TYPE = "DDR3", + + + //*************************************************************************** + // System clock frequency parameters + //*************************************************************************** + parameter nCK_PER_CLK = 4, + // # of memory CKs per fabric CLK + + + + //*************************************************************************** + // Debug parameters + //*************************************************************************** + parameter DEBUG_PORT = "OFF", + // # = "ON" Enable debug signals/controls. + // = "OFF" Disable debug signals/controls. + + parameter RST_ACT_LOW = 1 + // =1 for active low reset, + // =0 for active high. + ) + ( + + // Inouts + inout [63:0] ddr3_dq, + inout [7:0] ddr3_dqs_n, + inout [7:0] ddr3_dqs_p, + + // Outputs + output [13:0] ddr3_addr, + output [2:0] ddr3_ba, + output ddr3_ras_n, + output ddr3_cas_n, + output ddr3_we_n, + output ddr3_reset_n, + output [0:0] ddr3_ck_p, + output [0:0] ddr3_ck_n, + output [0:0] ddr3_cke, + + output [0:0] ddr3_cs_n, + + output [7:0] ddr3_dm, + + output [0:0] ddr3_odt, + + + // Inputs + + // Single-ended system clock + input sys_clk_i, + + + output tg_compare_error, + output init_calib_complete, + + + + // System reset - Default polarity of sys_rst pin is Active Low. + // System reset polarity will change based on the option + // selected in GUI. + input sys_rst + ); + +function integer clogb2 (input integer size); + begin + size = size - 1; + for (clogb2=1; size>1; clogb2=clogb2+1) + size = size >> 1; + end + endfunction // clogb2 + + function integer STR_TO_INT; + input [7:0] in; + begin + if(in == "8") + STR_TO_INT = 8; + else if(in == "4") + STR_TO_INT = 4; + else + STR_TO_INT = 0; + end + endfunction + + + localparam DATA_WIDTH = 64; + localparam RANK_WIDTH = clogb2(RANKS); + localparam PAYLOAD_WIDTH = (ECC_TEST == "OFF") ? DATA_WIDTH : DQ_WIDTH; + localparam BURST_LENGTH = STR_TO_INT(BURST_MODE); + localparam APP_DATA_WIDTH = 2 * nCK_PER_CLK * PAYLOAD_WIDTH; + localparam APP_MASK_WIDTH = APP_DATA_WIDTH / 8; + + //*************************************************************************** + // Traffic Gen related parameters (derived) + //*************************************************************************** + localparam TG_ADDR_WIDTH = ((CS_WIDTH == 1) ? 0 : RANK_WIDTH) + + BANK_WIDTH + ROW_WIDTH + COL_WIDTH; + localparam MASK_SIZE = DATA_WIDTH/8; + + + // Wire declarations + + wire [(2*nCK_PER_CLK)-1:0] app_ecc_multiple_err; + wire [(2*nCK_PER_CLK)-1:0] app_ecc_single_err; + wire [ADDR_WIDTH-1:0] app_addr; + wire [2:0] app_cmd; + wire app_en; + wire app_rdy; + wire [APP_DATA_WIDTH-1:0] app_rd_data; + wire app_rd_data_end; + wire app_rd_data_valid; + wire [APP_DATA_WIDTH-1:0] app_wdf_data; + wire app_wdf_end; + wire [APP_MASK_WIDTH-1:0] app_wdf_mask; + wire app_wdf_rdy; + wire app_sr_active; + wire app_ref_ack; + wire app_zq_ack; + wire app_wdf_wren; + wire [(64+(2*APP_DATA_WIDTH))-1:0] error_status; + wire [(PAYLOAD_WIDTH/8)-1:0] cumlative_dq_lane_error; + wire mem_pattern_init_done; + wire [47:0] tg_wr_data_counts; + wire [47:0] tg_rd_data_counts; + wire modify_enable_sel; + wire [2:0] data_mode_manual_sel; + wire [2:0] addr_mode_manual_sel; + wire [APP_DATA_WIDTH-1:0] cmp_data; + reg [63:0] cmp_data_r; + wire cmp_data_valid; + reg cmp_data_valid_r; + wire cmp_error; + wire [(PAYLOAD_WIDTH/8)-1:0] dq_error_bytelane_cmp; + + wire clk; + wire rst; + + wire dbg_sel_pi_incdec; + wire dbg_pi_f_inc; + wire dbg_pi_f_dec; + wire dbg_sel_po_incdec; + wire dbg_po_f_inc; + wire dbg_po_f_stg23_sel; + wire dbg_po_f_dec; + + + wire vio_modify_enable; + wire [3:0] vio_data_mode_value; + wire vio_pause_traffic; + wire [2:0] vio_addr_mode_value; + wire [3:0] vio_instr_mode_value; + wire [1:0] vio_bl_mode_value; + wire [9:0] vio_fixed_bl_value; + wire [2:0] vio_fixed_instr_value; + wire vio_data_mask_gen; + wire vio_tg_rst; + wire vio_dbg_sel_pi_incdec; + wire vio_dbg_pi_f_inc; + wire vio_dbg_pi_f_dec; + wire vio_dbg_sel_po_incdec; + wire vio_dbg_po_f_inc; + wire vio_dbg_po_f_stg23_sel; + wire vio_dbg_po_f_dec; + + wire [11:0] device_temp; + +`ifdef SKIP_CALIB + // skip calibration wires + wire calib_tap_req; + reg calib_tap_load; + reg [6:0] calib_tap_addr; + reg [7:0] calib_tap_val; + reg calib_tap_load_done; +`endif + + + +//*************************************************************************** + + + + + + + +// Start of User Design top instance +//*************************************************************************** +// The User design is instantiated below. The memory interface ports are +// connected to the top-level and the application interface ports are +// connected to the traffic generator module. This provides a reference +// for connecting the memory controller to system. +//*************************************************************************** + + mig_7series_0 u_mig_7series_0 + ( + + +// Memory interface ports + .ddr3_addr (ddr3_addr), + .ddr3_ba (ddr3_ba), + .ddr3_cas_n (ddr3_cas_n), + .ddr3_ck_n (ddr3_ck_n), + .ddr3_ck_p (ddr3_ck_p), + .ddr3_cke (ddr3_cke), + .ddr3_ras_n (ddr3_ras_n), + .ddr3_we_n (ddr3_we_n), + .ddr3_dq (ddr3_dq), + .ddr3_dqs_n (ddr3_dqs_n), + .ddr3_dqs_p (ddr3_dqs_p), + .ddr3_reset_n (ddr3_reset_n), + .init_calib_complete (init_calib_complete), + + .ddr3_cs_n (ddr3_cs_n), + .ddr3_dm (ddr3_dm), + .ddr3_odt (ddr3_odt), +// Application interface ports + .app_addr (app_addr), + .app_cmd (app_cmd), + .app_en (app_en), + .app_wdf_data (app_wdf_data), + .app_wdf_end (app_wdf_end), + .app_wdf_wren (app_wdf_wren), + .app_rd_data (app_rd_data), + .app_rd_data_end (app_rd_data_end), + .app_rd_data_valid (app_rd_data_valid), + .app_rdy (app_rdy), + .app_wdf_rdy (app_wdf_rdy), + .app_sr_req (1'b0), + .app_ref_req (1'b0), + .app_zq_req (1'b0), + .app_sr_active (app_sr_active), + .app_ref_ack (app_ref_ack), + .app_zq_ack (app_zq_ack), + .ui_clk (clk), + .ui_clk_sync_rst (rst), + + .app_wdf_mask (app_wdf_mask), + + +// System Clock Ports + .sys_clk_i (sys_clk_i), + .device_temp (device_temp), + `ifdef SKIP_CALIB + .calib_tap_req (calib_tap_req), + .calib_tap_load (calib_tap_load), + .calib_tap_addr (calib_tap_addr), + .calib_tap_val (calib_tap_val), + .calib_tap_load_done (calib_tap_load_done), + `endif + + .sys_rst (sys_rst) + ); +// End of User Design top instance + + +//*************************************************************************** +// The traffic generation module instantiated below drives traffic (patterns) +// on the application interface of the memory controller +//*************************************************************************** + + mig_7series_v4_0_traffic_gen_top # + ( + .TCQ (TCQ), + .SIMULATION (SIMULATION), + .FAMILY ("VIRTEX7"), + .MEM_TYPE (DRAM_TYPE), + .TST_MEM_INSTR_MODE (TST_MEM_INSTR_MODE), + //.BL_WIDTH (BL_WIDTH), + .nCK_PER_CLK (nCK_PER_CLK), + .NUM_DQ_PINS (PAYLOAD_WIDTH), + .MEM_BURST_LEN (BURST_LENGTH), + .MEM_COL_WIDTH (COL_WIDTH), + .PORT_MODE (PORT_MODE), + .DATA_PATTERN (DATA_PATTERN), + .CMD_PATTERN (CMD_PATTERN), + .DATA_WIDTH (APP_DATA_WIDTH), + .ADDR_WIDTH (TG_ADDR_WIDTH), + .MASK_SIZE (MASK_SIZE), + .BEGIN_ADDRESS (BEGIN_ADDRESS), + .DATA_MODE (DATA_MODE), + .END_ADDRESS (END_ADDRESS), + .PRBS_EADDR_MASK_POS (PRBS_EADDR_MASK_POS), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .CMD_WDT (CMD_WDT), + .RD_WDT (RD_WDT), + .WR_WDT (WR_WDT), + .EYE_TEST (EYE_TEST) + ) + u_traffic_gen_top + ( + .clk (clk), + .rst (rst), + .tg_only_rst (po_win_tg_rst | vio_tg_rst), + .manual_clear_error (manual_clear_error), + .memc_init_done (init_calib_complete), + .memc_cmd_full (~app_rdy), + .memc_cmd_en (app_en), + .memc_cmd_instr (app_cmd), + .memc_cmd_bl (), + .memc_cmd_addr (app_addr), + .memc_wr_en (app_wdf_wren), + .memc_wr_end (app_wdf_end), + .memc_wr_mask (app_wdf_mask), + .memc_wr_data (app_wdf_data), + .memc_wr_full (~app_wdf_rdy), + .memc_rd_en (), + .memc_rd_data (app_rd_data), + .memc_rd_empty (~app_rd_data_valid), + .qdr_wr_cmd_o (), + .qdr_rd_cmd_o (), + .vio_pause_traffic (vio_pause_traffic), + .vio_modify_enable (vio_modify_enable), + .vio_data_mode_value (vio_data_mode_value), + .vio_addr_mode_value (vio_addr_mode_value), + .vio_instr_mode_value (vio_instr_mode_value), + .vio_bl_mode_value (vio_bl_mode_value), + .vio_fixed_bl_value (vio_fixed_bl_value), + .vio_fixed_instr_value(vio_fixed_instr_value), + .vio_data_mask_gen (vio_data_mask_gen), + .fixed_addr_i (32'b0), + .fixed_data_i (32'b0), + .simple_data0 (32'b0), + .simple_data1 (32'b0), + .simple_data2 (32'b0), + .simple_data3 (32'b0), + .simple_data4 (32'b0), + .simple_data5 (32'b0), + .simple_data6 (32'b0), + .simple_data7 (32'b0), + .wdt_en_i (wdt_en_w), + .bram_cmd_i (39'b0), + .bram_valid_i (1'b0), + .bram_rdy_o (), + .cmp_data (cmp_data), + .cmp_data_valid (cmp_data_valid), + .cmp_error (cmp_error), + .wr_data_counts (tg_wr_data_counts), + .rd_data_counts (tg_rd_data_counts), + .dq_error_bytelane_cmp (dq_error_bytelane_cmp), + .error (tg_compare_error), + .error_status (error_status), + .cumlative_dq_lane_error (cumlative_dq_lane_error), + .cmd_wdt_err_o (cmd_wdt_err_w), + .wr_wdt_err_o (wr_wdt_err_w), + .rd_wdt_err_o (rd_wdt_err_w), + .mem_pattern_init_done (mem_pattern_init_done) + ); + + + //***************************************************************** + // Default values are assigned to the debug inputs of the traffic + // generator + //***************************************************************** + assign vio_modify_enable = 1'b0; + assign vio_data_mode_value = 4'b0010; + assign vio_addr_mode_value = 3'b011; + assign vio_instr_mode_value = 4'b0010; + assign vio_bl_mode_value = 2'b10; + assign vio_fixed_bl_value = 8'd16; + assign vio_data_mask_gen = 1'b0; + assign vio_pause_traffic = 1'b0; + assign vio_fixed_instr_value = 3'b001; + assign dbg_clear_error = 1'b0; + assign po_win_tg_rst = 1'b0; + assign vio_tg_rst = 1'b0; + assign wdt_en_w = 1'b1; + + assign dbg_sel_pi_incdec = 'b0; + assign dbg_sel_po_incdec = 'b0; + assign dbg_pi_f_inc = 'b0; + assign dbg_pi_f_dec = 'b0; + assign dbg_po_f_inc = 'b0; + assign dbg_po_f_dec = 'b0; + assign dbg_po_f_stg23_sel = 'b0; + + +`ifdef SKIP_CALIB + //*************************************************************************** + // Skip calib test logic + //*************************************************************************** + + reg[3*DQS_WIDTH-1:0] po_coarse_tap; + reg[6*DQS_WIDTH-1:0] po_stg3_taps; + reg[6*DQS_WIDTH-1:0] po_stg2_taps; + reg[6*DQS_WIDTH-1:0] pi_stg2_taps; + reg[5*DQS_WIDTH-1:0] idelay_taps; + reg[11:0] cal_device_temp; + + + always @(posedge clk) begin + // tap values from golden run (factory) + po_coarse_tap <= #TCQ 'h2; + po_stg3_taps <= #TCQ 'h0D; + po_stg2_taps <= #TCQ 'h1D; + pi_stg2_taps <= #TCQ 'h1E; + idelay_taps <= #TCQ 'h08; + cal_device_temp <= #TCQ 'h000; + end + + always @(posedge clk) begin + if (rst) + calib_tap_load <= #TCQ 1'b0; + else if (calib_tap_req) + calib_tap_load <= #TCQ 1'b1; + end + + always @(posedge clk) begin + if (rst) begin + calib_tap_addr <= #TCQ 'd0; + calib_tap_val <= #TCQ po_coarse_tap[3*calib_tap_addr[6:3]+:3]; //'d1; + calib_tap_load_done <= #TCQ 1'b0; + end else if (calib_tap_load) begin + case (calib_tap_addr[2:0]) + 3'b000: begin + calib_tap_addr[2:0] <= #TCQ 3'b001; + calib_tap_val <= #TCQ po_stg3_taps[6*calib_tap_addr[6:3]+:6]; //'d19; + end + 3'b001: begin + calib_tap_addr[2:0] <= #TCQ 3'b010; + calib_tap_val <= #TCQ po_stg2_taps[6*calib_tap_addr[6:3]+:6]; //'d45; + end + 3'b010: begin + calib_tap_addr[2:0] <= #TCQ 3'b011; + calib_tap_val <= #TCQ pi_stg2_taps[6*calib_tap_addr[6:3]+:6]; //'d20; + end + 3'b011: begin + calib_tap_addr[2:0] <= #TCQ 3'b100; + calib_tap_val <= #TCQ idelay_taps[5*calib_tap_addr[6:3]+:5]; //'d1; + end + 3'b100: begin + if (calib_tap_addr[6:3] < DQS_WIDTH-1) begin + calib_tap_addr[2:0] <= #TCQ 3'b000; + calib_tap_val <= #TCQ po_coarse_tap[3*(calib_tap_addr[6:3]+1)+:3]; //'d1; + calib_tap_addr[6:3] <= #TCQ calib_tap_addr[6:3] + 1; + end else begin + calib_tap_addr[2:0] <= #TCQ 3'b110; + calib_tap_val <= #TCQ cal_device_temp[7:0]; + calib_tap_addr[6:3] <= #TCQ 4'b1111; + end + end + 3'b110: begin + calib_tap_addr[2:0] <= #TCQ 3'b111; + calib_tap_val <= #TCQ {4'h0,cal_device_temp[11:8]}; + calib_tap_addr[6:3] <= #TCQ 4'b1111; + end + 3'b111: begin + calib_tap_load_done <= #TCQ 1'b1; + end + endcase + end + end + + +//****************skip calib test logic end********************************** +`endif + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_afifo.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_afifo.v new file mode 100755 index 0000000..27b9c1d --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_afifo.v @@ -0,0 +1,231 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: afifo.v +// /___/ /\ Date Last Modified: $Date: 2011/06/02 08:37:18 $ +// \ \ / \ Date Created: Oct 21 2008 +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: A generic synchronous fifo. +//Reference: +//Revision History: 1.2 11/8/2010 Removed unused signals. + +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_afifo # +( + parameter TCQ = 100, + parameter DSIZE = 32, + parameter FIFO_DEPTH = 16, + parameter ASIZE = 4, + parameter SYNC = 1 // only has always '1' logic. +) +( +input wr_clk, +input rst, +input wr_en, +input [DSIZE-1:0] wr_data, +input rd_en, +input rd_clk, +output [DSIZE-1:0] rd_data, +output reg full, +output reg empty, +output reg almost_full +); + +// memory array +reg [DSIZE-1:0] mem [0:FIFO_DEPTH-1]; + +//Read Capture Logic +// if Sync = 1, then no need to remove metastability logic because wrclk = rdclk +reg [ASIZE:0] rd_capture_ptr; +reg [ASIZE:0] pre_rd_capture_gray_ptr; +reg [ASIZE:0] rd_capture_gray_ptr; + +reg [ASIZE:0] wr_capture_ptr; +reg [ASIZE:0] pre_wr_capture_gray_ptr; +reg [ASIZE:0] wr_capture_gray_ptr; +wire [ASIZE:0] buf_avail; +wire [ASIZE:0] buf_filled; +wire [ASIZE-1:0] wr_addr, rd_addr; +wire COutb,COutd; +reg COuta,COutc; +reg [ASIZE:0] wr_ptr, rd_ptr,rd_ptr_cp; +integer i,j,k; + + + always @ (rd_ptr) + rd_capture_ptr = rd_ptr; + + + +//capture the wr_gray_pointers to rd_clk domains and convert the gray pointers to binary pointers +// before do comparison. + + + +always @ (wr_ptr) + wr_capture_ptr = wr_ptr; + +// dualport ram +// Memory (RAM) that holds the contents of the FIFO + + +assign wr_addr = wr_ptr[ASIZE-1:0]; +assign rd_data = mem[rd_addr]; +always @(posedge wr_clk) +begin +if (wr_en && !full) + mem[wr_addr] <= #TCQ wr_data; + +end + + +// Read Side Logic + + +assign rd_addr = rd_ptr_cp[ASIZE-1:0]; +assign rd_strobe = rd_en && !empty; + +integer n; + // change the binary pointer to gray pointer + + +always @(posedge rd_clk) +begin +if (rst) + begin + rd_ptr <= #TCQ 'b0; + rd_ptr_cp <= #TCQ 'b0; + + end +else begin + if (rd_strobe) begin + {COuta,rd_ptr} <= #TCQ rd_ptr + 1'b1; + rd_ptr_cp <= #TCQ rd_ptr_cp + 1'b1; + + end + + // change the binary pointer to gray pointer +end + +end + +//generate empty signal +assign {COutb,buf_filled} = wr_capture_ptr - rd_ptr; + +always @ (posedge rd_clk ) +begin + if (rst) + empty <= #TCQ 1'b1; + else if ((buf_filled == 0) || (buf_filled == 1 && rd_strobe)) + empty <= #TCQ 1'b1; + else + empty <= #TCQ 1'b0; +end + + +// write side logic; + +reg [ASIZE:0] wbin; +wire [ASIZE:0] wgraynext, wbinnext; + + + +always @(posedge rd_clk) +begin +if (rst) + begin + wr_ptr <= #TCQ 'b0; + end +else begin + if (wr_en) + {COutc, wr_ptr} <= #TCQ wr_ptr + 1'b1; + + // change the binary pointer to gray pointer +end + +end + + +// calculate how many buf still available +//assign {COutd,buf_avail }= (rd_capture_ptr + 5'd16) - wr_ptr; +assign {COutd,buf_avail }= rd_capture_ptr - wr_ptr + + 5'd16; + + +always @ (posedge wr_clk ) +begin + if (rst) + full <= #TCQ 1'b0; + else if ((buf_avail == 0) || (buf_avail == 1 && wr_en)) + full <= #TCQ 1'b1; + else + full <= #TCQ 1'b0; +end + + +always @ (posedge wr_clk ) +begin + if (rst) + almost_full <= #TCQ 1'b0; + else if ((buf_avail == FIFO_DEPTH - 2 ) || ((buf_avail == FIFO_DEPTH -3) && wr_en)) + almost_full <= #TCQ 1'b1; + else + almost_full <= #TCQ 1'b0; +end + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_cmd_gen.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_cmd_gen.v new file mode 100755 index 0000000..bd05478 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_cmd_gen.v @@ -0,0 +1,1788 @@ +//***************************************************************************** +// (c) Copyright 2008-2009 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: cmd_gen.v +// /___/ /\ Date Last Modified: $Date: 2011/06/02 08:37:19 $ +// \ \ / \ Date Created: Oct 21 2008 +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This module genreates different type of commands, address, +// burst_length to mcb_flow_control module. +//Reference: +//Revision History: +// Nov14 2008. Added constraints for generating PRBS_BL when +// generated address is too close to end of address space. +// The BL will be force to 1 to avoid across other port's space. +// April 2 2009 Fixed Sequential Address Circuit to avoide generate any address +// beyond the allowed address range. +// Oct 22 2009 Fixed BRAM interface. +// Fixed run_traffic stop and go problem. +// Merged V6 and SP6 specific requirements. +// Modified syntax for VHDL Formality comparison. +// Dec 1 2011 Fixed Simple Data mode address generation problem. +// Jan 4 2012 Added percent write instruction mode ( mode == 4) to +// let user specify percentage of write commands out of mix +// write/read commands. + +//***************************************************************************** + + + +`timescale 1ps/1ps + + + +`define RD 3'b001; + +`define RDP 3'b011; + +`define WR 3'b000; + +`define WRP 3'b010; + +`define REFRESH 3'b100; + + + +(* use_dsp48 = "no" *) + +module mig_7series_v4_0_cmd_gen # + + ( + + parameter TCQ = 100, + + + + parameter FAMILY = "SPARTAN6", + + parameter MEM_TYPE = "DDR3", + + + + parameter BL_WIDTH = 6, // User Commands Burst length that send over User Interface. + + parameter MEM_BURST_LEN = 8, + + parameter nCK_PER_CLK = 4, + + parameter PORT_MODE = "BI_MODE", + + parameter NUM_DQ_PINS = 8, + + parameter DATA_PATTERN = "DGEN_ALL", // "DGEN__HAMMER", "DGEN_WALING1","DGEN_WALING0","DGEN_ADDR","DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + + parameter CMD_PATTERN = "CGEN_ALL", // "CGEN_RPBS","CGEN_FIXED", "CGEN_BRAM", "CGEN_SEQUENTIAL", "CGEN_ALL", + + parameter ADDR_WIDTH = 30, + + parameter BANK_WIDTH = 3, + + parameter DWIDTH = 32, + + parameter PIPE_STAGES = 0, + + parameter MEM_COL_WIDTH = 10, // memory column width + + parameter PRBS_EADDR_MASK_POS = 32'hFFFFD000, + + parameter PRBS_SADDR_MASK_POS = 32'h00002000, + + parameter PRBS_EADDR = 32'h00002000, + + parameter PRBS_SADDR = 32'h00002000 + + ) + + ( + + input clk_i, + + input [9:0] rst_i, + + input run_traffic_i, + + input [3:0] vio_instr_mode_value, + input [3:0] vio_percent_write, + input single_operation, + + // runtime parameter + + input mem_pattern_init_done_i, + + input [31:0] start_addr_i, // define the start of address + + input [31:0] end_addr_i, + + input [31:0] cmd_seed_i, // same seed apply to all addr_prbs_gen, bl_prbs_gen, instr_prbs_gen + + input load_seed_i, // + + // upper layer inputs to determine the command bus and data pattern + + // internal traffic generator initialize the memory with + + input [2:0] addr_mode_i, // "00" = bram; takes the address from bram output + + // "01" = fixed address from the fixed_addr input + + // "10" = psuedo ramdom pattern; generated from internal 64 bit LFSR + + // "11" = sequential + + + + input [3:0] data_mode_i, // 4'b0010:address as data + + // 4'b0011:DGEN_HAMMER + + // 4'b0100:DGEN_NEIGHBOUR + + // 4'b0101:DGEN_WALKING1 + + // 4'b0110:DGEN_WALKING0 + + // 4'b0111:PRBS_DATA + + + + // for each instr_mode, traffic gen fill up with a predetermined pattern before starting the instr_pattern that defined + + // in the instr_mode input. The runtime mode will be automatically loaded inside when it is in + + input [3:0] instr_mode_i, // "0000" = bram; takes instruction from bram output + + // "0001" = fixed instr from fixed instr input + + // "0010" = R/W + + // "0011" = RP/WP + + // "0100" = R/RP/W/WP + + // "0101" = R/RP/W/WP/REF + + // "0110" = PRBS + + + + + + input [1:0] bl_mode_i, // "00" = bram; takes the burst length from bram output + + // "01" = fixed , takes the burst length from the fixed_bl input + + // "10" = psuedo ramdom pattern; generated from internal 16 bit LFSR + + + + input mode_load_i, + + + + // fixed pattern inputs interface + + input [BL_WIDTH - 1:0] fixed_bl_i, // range from 1 to 64 + + input [2:0] fixed_instr_i, //RD 3'b001 + + //RDP 3'b011 + + //WR 3'b000 + + //WRP 3'b010 + + //REFRESH 3'b100 + + input [31:0] fixed_addr_i, // only upper 30 bits will be used + + // BRAM FIFO input + + input [31:0] bram_addr_i, // + + input [2:0] bram_instr_i, + + input [5:0] bram_bl_i, + + input bram_valid_i, + + output bram_rdy_o, + + + + input reading_rd_data_i, + + // mcb_flow_control interface + + input rdy_i, + + + + output [31:0] addr_o, // generated address + + output [2:0] instr_o, // generated instruction + + output [BL_WIDTH - 1:0] bl_o, // generated instruction + +// output reg [31:0] m_addr_o, + + output cmd_o_vld , // valid commands when asserted + + output reg mem_init_done_o + + ); + + + + localparam PRBS_ADDR_WIDTH = 32; + + localparam INSTR_PRBS_WIDTH = 16; + + localparam BL_PRBS_WIDTH = 16; + + + +localparam BRAM_DATAL_MODE = 4'b0000; + +localparam FIXED_DATA_MODE = 4'b0001; + +localparam ADDR_DATA_MODE = 4'b0010; + +localparam HAMMER_DATA_MODE = 4'b0011; + +localparam NEIGHBOR_DATA_MODE = 4'b0100; + +localparam WALKING1_DATA_MODE = 4'b0101; + +localparam WALKING0_DATA_MODE = 4'b0110; + +localparam PRBS_DATA_MODE = 4'b0111; + +localparam DWIDTH_BY_8 = (DWIDTH >> 3); + +localparam LOGB2_MEM_BURST_INT = (MEM_BURST_LEN == 8)? 3:2; + + + +reg [BL_WIDTH+DWIDTH_BY_8-1:0] bl_x_DWIDTH_BY_8; + +reg [BL_WIDTH+2:0] INC_COUNTS /* synthesis syn_dspstyle = logic */ ; + +reg [2:0] addr_mode_reg; + +reg [1:0] bl_mode_reg; + +reg [31:0] addr_counts /* synthesis syn_dspstyle = logic */ ; + +reg [31:0] addr_counts_next_r; + +reg [BANK_WIDTH-1:0] bank_counts; + +wire [14:0] prbs_bl; + +reg [2:0] instr_out; + +wire [14:0] prbs_instr_a; + +wire [14:0] prbs_instr_b; + +reg [BL_WIDTH - 1:0] prbs_brlen; + +wire [31:0] prbs_addr; + +wire [31:0] seq_addr; + +wire [31:0] fixed_addr; + +reg [31:0] addr_out ; + +reg [BL_WIDTH - 1:0] bl_out; + +reg [BL_WIDTH + DWIDTH/8 - 1:0]cal_blout; + +reg [BL_WIDTH - 1:0] bl_out_reg; + +reg mode_load_d1; + +reg mode_load_d2; + +reg mode_load_pulse; + +wire [BL_WIDTH+35:0] pipe_data_o; + +wire cmd_clk_en; + +wire pipe_out_vld; + +reg force_bl1; + +reg bl_out_clk_en; + +reg [BL_WIDTH+35:0] pipe_data_in; + +reg instr_vld; + +reg bl_out_vld; + +reg gen_addr_larger ; + +reg gen_bl_larger; + +reg [7:0] buf_avail_r; + +reg [6:0] rd_data_received_counts; + +reg [6:0] rd_data_counts_asked; + +reg instr_vld_dly1; + +reg first_load_pulse; + +reg mem_init_done; + +reg refresh_cmd_en ; + +reg [9:0] refresh_timer; + +reg refresh_prbs; + +reg cmd_vld; + +reg run_traffic_r; + +reg cmd_clk_en_r; + +reg finish_init; + +reg mem_init_done_r; + +reg first_mode_load_pulse_r1; + +reg first_mode_load_pulse_set; + +reg mode_load_pulse_r1; + +reg n_gen_write_only; + +reg [9:0]force_rd_counts; + +reg force_rd; + +reg bl_64; + +reg force_wrcmd_gen; +reg toggle_rw; +reg [3:0] write_percent_cnt; + + + +always @ (posedge clk_i) + + if (rst_i[0]) + + mem_init_done_o <= #TCQ 1'b0; + + else if (cmd_clk_en_r) + + mem_init_done_o <= #TCQ mem_init_done_r; + + +always @ (posedge clk_i) +begin + + run_traffic_r <= #TCQ run_traffic_i; + +end + + +// commands go through pipeline inserters + +assign addr_o = pipe_data_o[31:0]; + +assign instr_o = pipe_data_o[34:32]; + + + +assign bl_o = pipe_data_o[(BL_WIDTH - 1 + 35):35]; + + + + + + + + // most significant bit + +assign cmd_o_vld = pipe_data_o[BL_WIDTH + 35] & run_traffic_r; + +assign pipe_out_vld = pipe_data_o[BL_WIDTH + 35] & run_traffic_r; + + + + + +assign pipe_data_o = pipe_data_in; + + + +always @(posedge clk_i) begin + + + + instr_vld <= #TCQ (cmd_clk_en | (mode_load_pulse & first_load_pulse)); + + bl_out_clk_en <= #TCQ (cmd_clk_en | (mode_load_pulse & first_load_pulse)); + + bl_out_vld <= #TCQ bl_out_clk_en; + + end + + + +always @ (posedge clk_i) begin + + if (rst_i[0] || single_operation) + + first_load_pulse <= #TCQ 1'b1; + + else if (mode_load_pulse) + + first_load_pulse <= #TCQ 1'b0; + + else + + first_load_pulse <= #TCQ first_load_pulse; + + end + + + + + +always @(posedge clk_i) begin + +if (CMD_PATTERN == "CGEN_BRAM") + + cmd_vld <= #TCQ (cmd_clk_en ); + +else //if (CMD_PATTERN != "CGEN_BRAM") + + cmd_vld <= #TCQ (cmd_clk_en | (mode_load_pulse & first_load_pulse )); + + + +end + + + + + +assign cmd_clk_en = ( rdy_i & pipe_out_vld & run_traffic_i || mode_load_pulse && (CMD_PATTERN == "CGEN_BRAM")); + + + + + + + +integer i; + +always @ (posedge clk_i) + +if (rst_i[1]) + + bl_64 <= 1'b0; + +else if (data_mode_i == 7 || data_mode_i == 8 || data_mode_i == 9) + + bl_64 <= 1'b1; + +else + + bl_64 <= 1'b0; + + + + + + always @ (posedge clk_i) begin + + if (rst_i[1]) + + if (vio_instr_mode_value == 4'h7) + + pipe_data_in[31:0] <= #TCQ fixed_addr_i; + + else + + pipe_data_in[31:0] <= #TCQ start_addr_i; + + else if (instr_vld) + + // In order to simplify all different test pattern, the V6 generated + + // seed address from cmd_gen are aligned to burst length. The PRBS + + // burst length for write always 64 else it will break. + + // if (MEM_BURST_LEN == 8) + + if (data_mode_i == 5 || data_mode_i == 6) + + // for walking 1's / walking 0's pattern, the least 8 bits starting address + + // has to be all zero. This is to force the DQ pattern of each starting burst + + // starts from DQ0. + + if (FAMILY == "VIRTEX6") + + pipe_data_in[31:0] <= #TCQ {addr_out[31:6], 6'h00}; + + + + else + + pipe_data_in[31:0] <= #TCQ {addr_out[31:6], 6'h00}; // DWIDTH = 64 + + + + + + else if (data_mode_i == 4) + + // pipe_data_in[31:0] <= #TCQ {addr_out[31:3], 3'b000}; + + pipe_data_in[31:0] <= #TCQ {addr_out[31:6], 6'b000}; + + + + else if (bl_64) + + // nCK_PER_CLK = 4 && PRBS Length = 8 + + //force the least 11 bits starting address is always zero to align + + // PRBS sequence. + + if (nCK_PER_CLK == 4) + + if (FAMILY == "VIRTEX6") + + pipe_data_in[31:0] <= #TCQ {addr_out[31:11], 11'h000}; + + else + + pipe_data_in[31:0] <= #TCQ {addr_out[31:9], 9'h000}; + + + + else + + if (FAMILY == "VIRTEX6") + + pipe_data_in[31:0] <= #TCQ {addr_out[31:10], 10'h000}; + + else + + pipe_data_in[31:0] <= #TCQ {addr_out[31:9], 9'h000}; + + else if (gen_addr_larger && mem_init_done)// && (addr_mode_reg == 3'b100 || addr_mode_reg == 3'b010)) + + pipe_data_in[31:0] <= #TCQ {end_addr_i[31:8],8'h0}; + + else + + pipe_data_in[31:0] <= #TCQ {addr_out[31:2], 2'b00}; + + // else + + // pipe_data_in[31:0] <= #TCQ {addr_out[31:2],2'b00000}; + + + +end + + + +//end endgenerate + + + + + + always @ (posedge clk_i) begin + + if (rst_i[0]) + + force_wrcmd_gen <= #TCQ 1'b0; + + else if (buf_avail_r == 63) + + force_wrcmd_gen <= #TCQ 1'b0; + + else if (instr_vld_dly1 && pipe_data_in[32]== 1 && pipe_data_in[41:35] > 16) + + force_wrcmd_gen <= #TCQ 1'b1; + + end + +reg [3:0]instr_mode_reg; + + always @ (posedge clk_i) + + begin + + instr_mode_reg <= #TCQ instr_mode_i; + + end + + always @ (posedge clk_i) + + begin + + if (rst_i[2]) begin + + pipe_data_in[40:32] <= #TCQ 'b0; + + end + + else if (instr_vld) begin + + if (instr_mode_reg == 0) begin + + pipe_data_in[34:32] <= #TCQ instr_out; + + end + + else if (instr_out[2]) begin + + pipe_data_in[34:32] <= #TCQ 3'b100; + + end + + // + + else if ( FAMILY == "SPARTAN6" && PORT_MODE == "RD_MODE") + + begin + + pipe_data_in[34:32] <= #TCQ {instr_out[2:1],1'b1}; + + end + + + + else if ((force_wrcmd_gen || buf_avail_r <= 15) && FAMILY == "SPARTAN6" && PORT_MODE != "RD_MODE") + + begin + + pipe_data_in[34:32] <= #TCQ {instr_out[2],2'b00}; + + end + + else begin + + pipe_data_in[34:32] <= #TCQ instr_out; + + end + + + + //********* condition the generated bl value except if TG is programmed for BRAM interface' + + // if the generated address is close to end address range, the bl_out will be altered to 1. + + if (data_mode_i == 7 ) + + pipe_data_in[BL_WIDTH-1+35:35] <= #TCQ bl_out; + + + + else if (data_mode_i == 4 ) + + + + pipe_data_in[BL_WIDTH-1+35:35] <= #TCQ 10'd32; + + + + + + else + + if (gen_bl_larger && mem_pattern_init_done_i) // this condition is needed + + + + pipe_data_in[BL_WIDTH-1+35:35] <= #TCQ 10'd8; + + else if (force_bl1 && mem_pattern_init_done_i) + + pipe_data_in[BL_WIDTH-1+35:35] <= #TCQ 10'd2; // for V6 + + + + else + + pipe_data_in[BL_WIDTH-1+35:35] <= #TCQ bl_out; // 8:2' 4:4 + + + + end //else instr_vld + + end // always + + + +reg COut; + + + +always @ (posedge clk_i) + +begin + + if (rst_i[2]) + + pipe_data_in[BL_WIDTH + 35] <= #TCQ 'b0; + + else if (cmd_vld) + + pipe_data_in[BL_WIDTH + 35] <= #TCQ instr_vld;//instr_vld; + + else if (rdy_i && pipe_out_vld) + + pipe_data_in[BL_WIDTH + 35] <= #TCQ 1'b0; + + end + + + + always @ (posedge clk_i) + + instr_vld_dly1 <= #TCQ instr_vld; + + + + + +reg COutA; + +always @ (posedge clk_i) begin + + if (rst_i[0]) begin + + rd_data_counts_asked <= #TCQ 'b0; + + end else if (instr_vld_dly1 && pipe_data_in[32]== 1) begin + + if (pipe_data_in[(BL_WIDTH +35):35] == 0) + + {COutA,rd_data_counts_asked} <= #TCQ rd_data_counts_asked + (10'd64) ; + + else + + {COutA,rd_data_counts_asked} <= #TCQ rd_data_counts_asked + (pipe_data_in[41:35]) ; + + + + end + + end + + + +always @ (posedge clk_i) begin + + if (rst_i[0]) begin + + rd_data_received_counts <= #TCQ 'b0; + + end else if(reading_rd_data_i) begin + + rd_data_received_counts <= #TCQ rd_data_received_counts + 1'b1; + + end + + end + + + + + +reg COut_d; + + always @ (posedge clk_i) + + if (FAMILY == "SPARTAN6") + + {COut_d, buf_avail_r} <= #TCQ ( rd_data_received_counts[6:0] - rd_data_counts_asked[6:0] + 7'd64); + + else // Virtex 6 MC has no need to generate such constraints . + + buf_avail_r <= #TCQ 8'd64; + + + +localparam BRAM_ADDR = 2'b00; + +localparam FIXED_ADDR = 2'b01; + +localparam PRBS_ADDR = 2'b10; + +localparam SEQUENTIAL_ADDR = 2'b11; + + + +// registered the mode settings + +always @ (posedge clk_i) begin + + if (rst_i[3]) + + if (CMD_PATTERN == "CGEN_BRAM") + + addr_mode_reg <= #TCQ 3'b000; + + else + + addr_mode_reg <= #TCQ 3'b011; + + else if (mode_load_pulse) + + addr_mode_reg <= #TCQ addr_mode_i; + +end + + + +always @ (posedge clk_i) begin + + if (mode_load_pulse) begin + + bl_mode_reg <= #TCQ bl_mode_i ; + + end + +// mode_load_d1 <= #TCQ mode_load_i; +// +// mode_load_d2 <= #TCQ mode_load_d1; + +end + +always @ (posedge clk_i) +begin + if (rst_i[0]) + begin + mode_load_d1 <= #TCQ 'b0; + mode_load_d2 <= #TCQ 'b0; + end + else + begin + mode_load_d1 <= #TCQ mode_load_i ; + mode_load_d2 <= #TCQ mode_load_d1 ; + end +end + + + +always @ (posedge clk_i) + + mode_load_pulse <= #TCQ mode_load_d1 & ~mode_load_d2; + + + +// MUX the addr pattern out depending on the addr_mode setting + + + +// "000" = bram; takes the address from bram output + +// "001" = fixed address from the fixed_addr input + +// "010" = psuedo ramdom pattern; generated from internal 64 bit LFSR + +// "011" = sequential + +// "100" = mode that used for prbs addr , prbs bl and prbs data + +//always @(addr_mode_reg,prbs_addr,seq_addr,fixed_addr,bram_addr_i,data_mode_i) + +always @ (posedge clk_i) begin + +if (rst_i[3]) + + + + addr_out <= #TCQ start_addr_i; + +else if (vio_instr_mode_value == 4'h7) + + addr_out <= #TCQ fixed_addr_i; + + + +else + + case({addr_mode_reg}) + + 3'b000: addr_out <= #TCQ bram_addr_i; + + 3'b001: addr_out <= #TCQ fixed_addr; + +// 3'b010: addr_out <= #TCQ {prbs_addr[31:10], 10'h00}; // this is specific to + + // data mode = PRBS + + + + 3'b010: if (FAMILY == "VIRTEX6") + + if (data_mode_i == 5) // ??? optimize this + + addr_out <= #TCQ {prbs_addr[31:BL_WIDTH+1], {BL_WIDTH+1{1'b0}}}; // this is specific to + + else + + addr_out <= #TCQ {prbs_addr[31:BL_WIDTH], {BL_WIDTH{1'b0}}}; // this is specific to + + else + + addr_out <= #TCQ {prbs_addr}; + + + + + + 3'b011: addr_out <= #TCQ {2'b0,seq_addr[29:0]}; + + 3'b100: addr_out <= #TCQ {3'b000,seq_addr[6:2],seq_addr[23:0]};//{prbs_addr[31:6],6'b000000} ; + + 3'b101: addr_out <= #TCQ {prbs_addr[31:20],seq_addr[19:0]} ; + + + + default : addr_out <= #TCQ 'b0; + + endcase + +end + + + +// ADDR PRBS GENERATION + +generate + +if (CMD_PATTERN == "CGEN_PRBS" || CMD_PATTERN == "CGEN_ALL" ) + + begin: gen_prbs_addr + + mig_7series_v4_0_cmd_prbs_gen # + ( + + .TCQ (TCQ), + .FAMILY (FAMILY), + .ADDR_WIDTH (32), + .DWIDTH (DWIDTH), + .MEM_BURST_LEN (MEM_BURST_LEN), + .PRBS_WIDTH (32), + .SEED_WIDTH (32), + .PRBS_EADDR_MASK_POS (PRBS_EADDR_MASK_POS), + .PRBS_SADDR_MASK_POS (PRBS_SADDR_MASK_POS), + .PRBS_EADDR (PRBS_EADDR), + .PRBS_SADDR (PRBS_SADDR) + ) + + addr_prbs_gen + + ( + + .clk_i (clk_i), + + .clk_en (cmd_clk_en), + + .prbs_seed_init (mode_load_pulse), + + .prbs_seed_i (cmd_seed_i[31:0]), + + .prbs_o (prbs_addr) + + ); + + end + + else + + begin: no_prbs + + assign prbs_addr = 'b0; + + + + end + +endgenerate + + + +always @ (posedge clk_i) begin + +if (addr_out[31:8] >= end_addr_i[31:8]) + + gen_addr_larger <= 1'b1; + +else + + gen_addr_larger <= 1'b0; + +end + +wire [23:0] calc_end_addr /* synthesis syn_dspstyle = logic */ ; +assign calc_end_addr = (bl_out*(DWIDTH/8) + addr_out[31:8]) ; + +always @ (posedge clk_i) begin +if (instr_mode_i == 4 && mem_init_done) + gen_bl_larger <= 1'b0; + +else if ( calc_end_addr >= end_addr_i[31:8] ) + gen_bl_larger <= 1'b1; +else + gen_bl_larger <= 1'b0; +end + + + +//converting string to integer + +//localparam MEM_BURST_INT = (MEM_BURST_LEN == "8")? 8 : 4; + +localparam MEM_BURST_INT = MEM_BURST_LEN ; + + +generate + +if (FAMILY == "SPARTAN6") begin : INC_COUNTS_S + + always @ (posedge clk_i) + + if (mem_init_done) + INC_COUNTS <= #TCQ (DWIDTH/8)*(bl_out_reg); + else begin + if (fixed_bl_i == 0) + INC_COUNTS <= #TCQ (DWIDTH/8)*(64); + else + INC_COUNTS <= #TCQ (DWIDTH/8)*(fixed_bl_i); + end + + end + +else begin : INC_COUNTS_V + + always @ (posedge clk_i) begin + if (rst_i[3]) begin + INC_COUNTS[BL_WIDTH-1:0] <= fixed_bl_i * (DWIDTH)/16; + INC_COUNTS[BL_WIDTH+2:BL_WIDTH] <= 'b0; + end + else + if (nCK_PER_CLK == 4 && MEM_BURST_LEN != 2) + INC_COUNTS <= #TCQ (bl_out << LOGB2_MEM_BURST_INT); + else begin + if (MEM_TYPE != "QDR2PLUS") begin //nCK_PER_CK == 2 + if (MEM_BURST_LEN == 8 || MEM_BURST_LEN == 2) // 13:11 + INC_COUNTS <= #TCQ (bl_out << (LOGB2_MEM_BURST_INT - 1)); + else + INC_COUNTS <= #TCQ (bl_out << LOGB2_MEM_BURST_INT); + end + else begin + INC_COUNTS[BL_WIDTH-1:0] <= #TCQ bl_out; + INC_COUNTS[BL_WIDTH+2:BL_WIDTH] <= 'b0; + end + end + end + +end + +endgenerate + + +generate + +// Sequential Address pattern +// It is generated when rdy_i is valid and write command is valid and bl_cmd is valid. +if (CMD_PATTERN == "CGEN_SEQUENTIAL" || CMD_PATTERN == "CGEN_ALL" ) + + begin : seq_addr_gen + + assign seq_addr = addr_counts; + + always @ (posedge clk_i) + begin + + if (rst_i[2]) + + first_mode_load_pulse_set <= 1'b0; + + else if (mode_load_pulse_r1) + + first_mode_load_pulse_set <= #TCQ 1'b1; + end + + always @ (posedge clk_i) + begin + + mode_load_pulse_r1 <= #TCQ mode_load_pulse; + first_mode_load_pulse_r1 <= #TCQ mode_load_pulse & ~first_mode_load_pulse_set; + end + + always @ (posedge clk_i) + begin + + if (rst_i[4]) + + mem_init_done_r <= #TCQ 1'b0 ; + + else if (cmd_clk_en_r) + + mem_init_done_r <= #TCQ mem_init_done ; + end + + + reg COut_b,COut_c; + wire [32:0] addr_counts_added; + assign addr_counts_added = addr_counts + INC_COUNTS /* synthesis syn_dspstyle = logic */ ; + + always @ (posedge clk_i) + + addr_counts_next_r <= #TCQ addr_counts_added ; + + + always @ (posedge clk_i) + + cmd_clk_en_r <= #TCQ cmd_clk_en; + + + always @ (posedge clk_i) + begin + + if (rst_i[4]) begin + + addr_counts <= #TCQ start_addr_i; + mem_init_done <= #TCQ 1'b0; + + end + + else if (cmd_clk_en_r || first_mode_load_pulse_r1) + + if(addr_counts_next_r >= end_addr_i ) begin + + addr_counts <= #TCQ start_addr_i; + mem_init_done <= #TCQ 1'b1; + + end + + else // address counts get incremented by burst_length and port size each wr command generated + + {COut_c,addr_counts} <= #TCQ addr_counts_added ; + end + + end + + else + + begin: no_gen_seq_addr + + assign seq_addr = 'b0; + + end + +endgenerate + +always @ (posedge clk_i) begin + + if (rst_i[4]) + + n_gen_write_only <= 1'b0; + + else if (~n_gen_write_only && addr_counts_next_r>= end_addr_i) + + n_gen_write_only <= 1'b1; + + + + else if(addr_counts_next_r>= end_addr_i && instr_out[0] == 1'b0) + + n_gen_write_only <= 1'b0; +end + +generate + +// Fixed Address pattern +if (CMD_PATTERN == "CGEN_FIXED" || CMD_PATTERN == "CGEN_ALL" ) + + begin : fixed_addr_gen + + assign fixed_addr = (DWIDTH == 32)? {fixed_addr_i[31:2],2'b0} : + + (DWIDTH == 64)? {fixed_addr_i[31:3],3'b0}: + + (DWIDTH <= 128)? {fixed_addr_i[31:4],4'b0}: + + (DWIDTH <= 256)? {fixed_addr_i[31:5],5'b0}: + + {fixed_addr_i[31:6],6'b0}; + + end + +else + + begin : no_fixed_addr_gen + + assign fixed_addr = 'b0; + + end + +endgenerate + + +generate + +// BRAM Address pattern +if (CMD_PATTERN == "CGEN_BRAM" || CMD_PATTERN == "CGEN_ALL" ) + + begin : bram_addr_gen + + assign bram_rdy_o = run_traffic_i & cmd_clk_en & bram_valid_i | mode_load_pulse; + + end + +else + + begin: no_bram_addr_gen + + assign bram_rdy_o = 1'b0; + + end + +endgenerate + + + +/////////////////////////////////////////////////////////////////////////// + +// INSTR COMMAND GENERATION + + + +// tap points are 3,2 + +//`define RD 3'b001 + +//`define RDP 3'b011 + +//`define WR 3'b000 + +//`define WRP 3'b010 + +//`define REFRESH 3'b100 + +// use 14 stages 1 sr16; tap position 1,3,5,14 + + + +always @ (posedge clk_i) begin + +if (rst_i[4]) + + force_rd_counts <= #TCQ 'b0; + +else if (instr_vld) begin + + force_rd_counts <= #TCQ force_rd_counts + 1'b1; + + end + +end + + + +always @ (posedge clk_i) begin + +if (rst_i[4]) + + force_rd <= #TCQ 1'b0; + +else if (force_rd_counts[3]) + + force_rd <= #TCQ 1'b1; + +else + + force_rd <= #TCQ 1'b0; + +end + +// adding refresh timer to limit the amount of issuing refresh command. + +always @ (posedge clk_i) begin + +if (rst_i[4]) + + refresh_timer <= #TCQ 'b0; + +else + + refresh_timer <= #TCQ refresh_timer + 1'b1; + +end + + +always @ (posedge clk_i) begin + +if (rst_i[4]) + + refresh_cmd_en <= #TCQ 'b0; + +//else if (refresh_timer >= 12'hff0 && refresh_timer <= 12'hfff) + +else if (refresh_timer == 10'h3ff) + + refresh_cmd_en <= #TCQ 'b1; + +else if (cmd_clk_en && refresh_cmd_en) + + refresh_cmd_en <= #TCQ 'b0; +end + +always @ (posedge clk_i) begin + +if (FAMILY == "SPARTAN6") + + refresh_prbs <= #TCQ prbs_instr_b[3] & refresh_cmd_en; + +else + + refresh_prbs <= #TCQ 1'b0; + +end + +always @ (posedge clk_i) +begin +if (rst_i[4]) + write_percent_cnt <= 'b0; +else if (cmd_clk_en_r) + if ( write_percent_cnt == 9) + write_percent_cnt <= 'b0; + else + write_percent_cnt <= write_percent_cnt + 1'b1; +end +always @ (posedge clk_i) +begin +if (rst_i[4]) + toggle_rw <= 1'b0; +else if (cmd_clk_en_r && mem_init_done) + if (write_percent_cnt >= vio_percent_write) + toggle_rw <= 1'b1; + else + toggle_rw <= 1'b0; +end + +always @ (posedge clk_i) begin + + case(instr_mode_i) + + 0: instr_out <= #TCQ bram_instr_i; + + 1: instr_out <= #TCQ fixed_instr_i; + + 2: instr_out <= #TCQ {2'b00,(prbs_instr_a[0] | force_rd)}; + 3: instr_out <= #TCQ {2'b00,prbs_instr_a[0]}; //: WP/RP + 4: instr_out <= #TCQ {2'b00,toggle_rw}; // percent write + + + // may be add another PRBS for generating REFRESH + +// 5: instr_out <= #TCQ {prbs_instr_b[3],prbs_instr_b[0], prbs_instr_a[0]}; // W/WP/R/RP/REFRESH W/WP/R/RP/REFRESH + + 5: instr_out <= #TCQ {refresh_prbs ,prbs_instr_b[0], prbs_instr_a[0]}; // W/WP/R/RP/REFRESH W/WP/R/RP/REFRESH + + + + + + default : instr_out <= #TCQ {2'b00,1'b1}; + + endcase + +end + + + +generate // PRBS INSTRUCTION generation + +// use two PRBS generators and tap off 1 bit from each to create more randomness for + +// generating actual read/write commands + +if (CMD_PATTERN == "CGEN_PRBS" || CMD_PATTERN == "CGEN_ALL" ) + + begin: gen_prbs_instr + + mig_7series_v4_0_cmd_prbs_gen # + ( + + .TCQ (TCQ), + + .PRBS_CMD ("INSTR"), + + .DWIDTH (DWIDTH), + + + + .ADDR_WIDTH (32), + + .SEED_WIDTH (15), + + .PRBS_WIDTH (20) + + ) + + instr_prbs_gen_a + + ( + + .clk_i (clk_i), + + .clk_en (cmd_clk_en), + + .prbs_seed_init (load_seed_i), + + .prbs_seed_i (cmd_seed_i[14:0]), + + .prbs_o (prbs_instr_a) + + ); + + mig_7series_v4_0_cmd_prbs_gen # + ( + + .PRBS_CMD ("INSTR"), + + .DWIDTH (DWIDTH), + + + + .SEED_WIDTH (15), + + .PRBS_WIDTH (20) + + ) + instr_prbs_gen_b + ( + + .clk_i (clk_i), + + .clk_en (cmd_clk_en), + + .prbs_seed_init (load_seed_i), + + .prbs_seed_i (cmd_seed_i[16:2]), + + .prbs_o (prbs_instr_b) + + ); + + end + + else + + begin: no_prbs_instr_gen + + assign prbs_instr_a = 'b0; + + assign prbs_instr_b = 'b0; + + end + +endgenerate + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// BURST LENGTH GENERATION + +// burst length code = user burst length input - 1 + +// mcb_flow_control does the minus before sending out to mcb\ + +// when filling up the memory, need to make sure bl doesn't go beyound its upper limit boundary + +//assign force_bl1 = (addr_out[31:0] >= (end_addr_i[31:0] - 4*64)) ? 1'b1: 1'b0; + +// for neighbour pattern, need to limit the bl to make sure it is within column size boundary. + + + +// This is required in S6 . + + + +always @ (posedge clk_i) + +begin + +if (rst_i[4] ) + + cal_blout <= 'b0; + +else + + cal_blout <= bl_out* (DWIDTH/8); + +end + +wire [31:0] dummy; +wire [32:0] dummy_sub; + +assign dummy = (addr_out + cal_blout); +assign dummy_sub = (dummy - end_addr_i); + +always @(*) begin + + force_bl1 = 1'b0; + if (rst_i[6] || (mem_init_done && instr_mode_i == 4)) + force_bl1 = 1'b0; + else if ((dummy_sub[32] == 0) || (buf_avail_r <= 50 && PORT_MODE == "RD_MODE")) + force_bl1 = 1'b1; + +end + +//always @(addr_out,mem_init_done, instr_mode_i,bl_out,cal_blout,end_addr_i,rst_i,buf_avail_r,bl_x_DWIDTH_BY_8) begin + +// if (rst_i[6]) +// force_bl1 = 1'b0; +// else if (mem_init_done && instr_mode_i == 4) +// force_bl1 = 1'b0; + +// else if (((addr_out + cal_blout) >= end_addr_i) || (buf_avail_r <= 50 && PORT_MODE == "RD_MODE")) + +// force_bl1 = 1'b1; + +// else + +// force_bl1 = 1'b0; +//end + +always @(posedge clk_i) begin + + if (rst_i[6]) + + bl_out_reg <= #TCQ fixed_bl_i; + + else if (bl_out_vld) + + bl_out_reg <= #TCQ bl_out; + +end + +// BurstLength defination in Traffic Gen is the consecutive write/read commands + +// that sent to Memory Controller User Interface. In V6, cmd_gen module sends + +// the number of burst length to rd_data_gen, wr_data_gen and mcb_flow_control_v6. + +// The mcb_flow_control takes the base address of the first burst and the bl value, + +// it automatically increment the next consecutive address of the back-to-back commands + +// until the burst counts decrement to 0. + +//verilint STARC-2.2.3.3 off +always @ (posedge clk_i) begin + + if (mode_load_pulse || rst_i[3]) + + if (data_mode_i == 4) + + bl_out <= #TCQ 10'd32 ; + + else + + bl_out <= #TCQ fixed_bl_i ; + + else if (cmd_clk_en) begin + + case({bl_mode_reg}) + + 0: begin + + bl_out[5:0] <= #TCQ bram_bl_i ; + + bl_out[BL_WIDTH-1:6] <= #TCQ 'b0 ; + + + + end + + 1: if (data_mode_i == 4) + + bl_out <= #TCQ 10'd32 ; + + else + + bl_out <= #TCQ fixed_bl_i ; + + 2: bl_out <= #TCQ prbs_brlen; + + default : begin + + bl_out[5:0] <= #TCQ 6'h1; + + bl_out[BL_WIDTH - 1:6] <= #TCQ 'b0; + + + + end + + endcase + + end + +end +//verilint STARC-2.2.3.3 off + + + //synthesis translate_off + +//always @ (bl_out) + +// if(bl_out >2 && FAMILY == "VIRTEX6") begin + +// $display("Error ! Not valid burst length"); + +// $stop; + +// end + + //synthesis translate_on + + + +generate + +if (CMD_PATTERN == "CGEN_PRBS" || CMD_PATTERN == "CGEN_ALL" ) + + begin: gen_prbs_bl + + mig_7series_v4_0_cmd_prbs_gen # + ( + + .TCQ (TCQ), + + .FAMILY (FAMILY), + + .PRBS_CMD ("BLEN"), + + .ADDR_WIDTH (32), + + .SEED_WIDTH (15), + + .PRBS_WIDTH (20) + + ) + + bl_prbs_gen + + ( + + .clk_i (clk_i), + + .clk_en (cmd_clk_en), + + .prbs_seed_init (load_seed_i), + + .prbs_seed_i (cmd_seed_i[16:2]), + + .prbs_o (prbs_bl) + + ); + + + + always @ (prbs_bl) + + if (FAMILY == "SPARTAN6" || FAMILY == "MCB") // supports 1 throug 64 + + prbs_brlen[5:0] = (prbs_bl[5:1] == 5'b00000) ? 6'b000010: {prbs_bl[5:1],1'b0}; + + else // VIRTEX6 only supports 1 or 2 burst on user ports + + prbs_brlen = (prbs_bl[BL_WIDTH-1:1] == 5'b00000) ? {{BL_WIDTH-2{1'b0}},2'b10}: {prbs_bl[BL_WIDTH-1:1],1'b0}; + + end + + else + + begin: no_gen_prbs_bl + + assign prbs_bl = 'b0; + + end + +endgenerate + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_cmd_prbs_gen.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_cmd_prbs_gen.v new file mode 100755 index 0000000..2936c94 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_cmd_prbs_gen.v @@ -0,0 +1,268 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: cmd_prbs_gen.v +// /___/ /\ Date Last Modified: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This moduel use LFSR to generate random address, isntructions +// or burst_length. +//Reference: +//Revision History: 1.1 7/9/2009 Added condition to zero out the LSB address bits according to +// DWIDTH and FAMILY. 7/9/2009 +// 1.2 11/8/2010 Fixed the PRBS Address generation. +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_cmd_prbs_gen # + ( + parameter TCQ = 100, + parameter FAMILY = "SPARTAN6", + parameter MEM_BURST_LEN = 8, + parameter ADDR_WIDTH = 29, + parameter DWIDTH = 32, + parameter PRBS_CMD = "ADDRESS", // "INSTR", "BLEN","ADDRESS" + parameter PRBS_WIDTH = 64, // 64,15,20 + parameter SEED_WIDTH = 32, // 32,15,4 + + parameter PRBS_EADDR_MASK_POS = 32'hFFFFD000, + parameter PRBS_SADDR_MASK_POS = 32'h00002000, + parameter PRBS_EADDR = 32'h00002000, + parameter PRBS_SADDR = 32'h00002000 + ) + ( + input clk_i, + input prbs_seed_init, // when high the prbs_x_seed will be loaded + input clk_en, + input [SEED_WIDTH-1:0] prbs_seed_i, + + output[SEED_WIDTH-1:0] prbs_o // generated address + ); + +wire[ADDR_WIDTH - 1:0] ZEROS; +reg [SEED_WIDTH - 1:0] prbs; +reg [PRBS_WIDTH :1] lfsr_q; + +assign ZEROS = 'b0; + + +function integer logb2; + input integer number; + integer i; + begin + i = number; + for(logb2=1; i>0; logb2=logb2+1) + i = i >> 1; + end +endfunction + + +// +//************************************************************** +//#################################################################################################################### +// # +// # +// 64 taps: [64,63,61,60]: {{8'b01011000}, {56'b0}} # +// upper 32 bits are loadable # +// # +// +// +// ........................................................................................ +// ^ ^ ^ ^ | +// | ____ | ___ ___ | ___ | ___ ___ ___ | +// | | | |---|<- | | | | |---|<- | | |---|<- | |...| | | | | The first 32 bits are parallel loadable. +// ----|64 |<--|xor|<-- |63 |-->|62 |-|xor|<--|61 |<-|xor|<--|60 |...|33 |<--|1|<<-- +// |___| --- |___| |___| --- |___| --- |___|...|___| |___| +// +// +// <<-- shifting -- +//##################################################################################################################### + +// use SRLC32E for lower 32 stages and 32 registers for upper 32 stages. +// we need to provide 30 bits addres. SRLC32 has only one bit output. +// address seed will be loaded to upper 32 bits. +// +// parallel load and serial shift out to LFSR during INIT time + +generate + if(PRBS_CMD == "ADDRESS" && PRBS_WIDTH == 64) + begin :gen64_taps + always @ (posedge clk_i) begin + if(prbs_seed_init) begin//reset it to a known good state to prevent it locks up + lfsr_q <= #TCQ {31'b0,prbs_seed_i}; + end else if(clk_en) begin + lfsr_q[64] <= #TCQ lfsr_q[64] ^ lfsr_q[63]; + lfsr_q[63] <= #TCQ lfsr_q[62]; + lfsr_q[62] <= #TCQ lfsr_q[64] ^ lfsr_q[61]; + lfsr_q[61] <= #TCQ lfsr_q[64] ^ lfsr_q[60]; + lfsr_q[60:2] <= #TCQ lfsr_q[59:1]; + lfsr_q[1] <= #TCQ lfsr_q[64]; + end + end + + always @(lfsr_q[32:1]) begin + prbs = lfsr_q[32:1]; + end + end +//endgenerate +//generate +else if(PRBS_CMD == "ADDRESS" && PRBS_WIDTH == 32) + begin :gen32_taps + always @ (posedge clk_i) begin + if(prbs_seed_init) begin //reset it to a known good state to prevent it locks up + lfsr_q <= #TCQ {prbs_seed_i}; + end else if(clk_en) begin + lfsr_q[32:9] <= #TCQ lfsr_q[31:8]; + lfsr_q[8] <= #TCQ lfsr_q[32] ^ lfsr_q[7]; + lfsr_q[7] <= #TCQ lfsr_q[32] ^ lfsr_q[6]; + lfsr_q[6:4] <= #TCQ lfsr_q[5:3]; + + lfsr_q[3] <= #TCQ lfsr_q[32] ^ lfsr_q[2]; + lfsr_q[2] <= #TCQ lfsr_q[1] ; + lfsr_q[1] <= #TCQ lfsr_q[32]; + end + end + + integer i; + always @(lfsr_q[32:1]) begin + + if (FAMILY == "SPARTAN6" ) begin // for 32 bits + + for(i = logb2(DWIDTH) + 1; i <= SEED_WIDTH - 1; i = i + 1) + + if(PRBS_SADDR_MASK_POS[i] == 1) + prbs[i] = PRBS_SADDR[i] | lfsr_q[i+1]; + else if(PRBS_EADDR_MASK_POS[i] == 1) + prbs[i] = PRBS_EADDR[i] & lfsr_q[i+1]; + else + prbs[i] = lfsr_q[i+1]; + + prbs[logb2(DWIDTH ) :0] = {logb2(DWIDTH ) + 1{1'b0}}; + + end + else begin + for(i = logb2(MEM_BURST_LEN) - 2; i <= SEED_WIDTH - 1; i = i + 1) + // for(i = 3; i <= SEED_WIDTH - 1; i = i + 1) + +// BL8: 0,8 +//BL4: incremnt by 4 +// for(i = 3; i <= SEED_WIDTH - 1; i = i + 1) + + if(PRBS_SADDR_MASK_POS[i] == 1) + prbs[i] = PRBS_SADDR[i] | lfsr_q[i+1]; + else if(PRBS_EADDR_MASK_POS[i] == 0) + prbs[i] = PRBS_EADDR[i] & lfsr_q[i+1]; + else + prbs[i] = 1'b0;// lfsr_q[i+1]; + // 3 1 + prbs[logb2(MEM_BURST_LEN)-3:0] = 'b0;//{logb2(MEM_BURST_LEN) -3{1'b0}}; + // prbs[2:0] = {3{1'b0}}; + + + end + + end +end +//endgenerate + +////////////////////////////////////////////////////////////////////////// +//#################################################################################################################### +// # +// # +// 15 taps: [15,14]: # +// # +// # +// +// +// ............................................................. +// ^ ^ . ^ +// | ____ | ___ ___ ___ ___ ___ | +// | | | |---|<- | | | | | |...| | | | | +// ----|15 |<--|xor|<-- |14 |<--|13 |<--|12 |...|2 |<--|1 |<<-- +// |___| --- |___| |___| |___|...|___| |___| +// +// +// <<-- shifting -- +//##################################################################################################################### + +//generate +// if(PRBS_CMD == "INSTR" | PRBS_CMD == "BLEN") +else + begin :gen20_taps + always @(posedge clk_i) begin + if(prbs_seed_init) begin//reset it to a known good state to prevent it locks up + lfsr_q <= #TCQ {5'b0,prbs_seed_i[14:0]}; + end else if(clk_en) begin + lfsr_q[20] <= #TCQ lfsr_q[19]; + lfsr_q[19] <= #TCQ lfsr_q[18]; + + lfsr_q[18] <= #TCQ lfsr_q[20] ^lfsr_q[17]; + + lfsr_q[17:2] <= #TCQ lfsr_q[16:1]; + lfsr_q[1] <= #TCQ lfsr_q[20]; + end + end + + always @ (lfsr_q[SEED_WIDTH - 1:1], ZEROS) begin + prbs = {ZEROS[SEED_WIDTH - 1:6],lfsr_q[6:1]}; + end + end +endgenerate + +assign prbs_o = prbs; + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_data_prbs_gen.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_data_prbs_gen.v new file mode 100755 index 0000000..95e9ac6 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_data_prbs_gen.v @@ -0,0 +1,128 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: data_prbs_gen.v +// /___/ /\ Date Last Modified: $Date: 2011/06/02 08:37:19 $ +// \ \ / \ Date Created: Fri Sep 01 2006 +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This module is used LFSR to generate random data for memory +// data write or memory data read comparison.The first data is +// seeded by the input prbs_seed_i which is connected to memory address. +//Reference: +//Revision History: +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_data_prbs_gen # + ( + parameter TCQ = 100, + + parameter EYE_TEST = "FALSE", + parameter PRBS_WIDTH = 32, // "SEQUENTIAL_BUrst_i" + parameter SEED_WIDTH = 32 + ) + ( + input clk_i, + input clk_en, + input rst_i, + input prbs_seed_init, // when high the prbs_x_seed will be loaded + input [PRBS_WIDTH - 1:0] prbs_seed_i, + + output [PRBS_WIDTH - 1:0] prbs_o // generated address + ); + +reg [PRBS_WIDTH - 1 :0] prbs; +reg [PRBS_WIDTH :1] lfsr_q; +integer i; + + + +always @ (posedge clk_i) +begin + if (prbs_seed_init && EYE_TEST == "FALSE" || rst_i ) //reset it to a known good state to prevent it locks up +// if (rst_i ) //reset it to a known good state to prevent it locks up + + begin + lfsr_q[4:1] <= #TCQ prbs_seed_i[3:0] | 4'h5; + // lfsr_q[PRBS_WIDTH-1:4] <= #TCQ prbs_seed_i[PRBS_WIDTH-1:4] ; + + lfsr_q[PRBS_WIDTH:5] <= #TCQ prbs_seed_i[PRBS_WIDTH-1:4] ; + end + else if (clk_en) begin + + lfsr_q[32:9] <= #TCQ lfsr_q[31:8]; + lfsr_q[8] <= #TCQ lfsr_q[32] ^ lfsr_q[7]; + lfsr_q[7] <= #TCQ lfsr_q[32] ^ lfsr_q[6]; + lfsr_q[6:4] <= #TCQ lfsr_q[5:3]; + + lfsr_q[3] <= #TCQ lfsr_q[32] ^ lfsr_q[2]; + lfsr_q[2] <= #TCQ lfsr_q[1] ; + lfsr_q[1] <= #TCQ lfsr_q[32]; + + + end +end + +always @ (lfsr_q[PRBS_WIDTH:1]) begin + prbs = lfsr_q[PRBS_WIDTH:1]; +end + +assign prbs_o = prbs; + +endmodule + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_init_mem_pattern_ctr.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_init_mem_pattern_ctr.v new file mode 100755 index 0000000..0529b40 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_init_mem_pattern_ctr.v @@ -0,0 +1,2117 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: init_mem_pattern_ctr.v +// /___/ /\ Date Last Modified: $Date: 2011/02/24 00:08:32 $ +// \ \ / \ Date Created: Fri Sep 01 2006 +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This moduel has a small FSM to control the operation of +// memc_traffic_gen module.It first fill up the memory with a selected +// DATA pattern and then starts the memory testing state. +//Reference: +//Revision History: 1.1 Modify to allow data_mode_o to be controlled by parameter DATA_MODE +// and the fixed_bl_o is fixed at 64 if data_mode_o == PRBA and FAMILY == "SPARTAN6" +// The fixed_bl_o in Virtex6 is determined by the MEM_BURST_LENGTH. +// 1.2 10-1-2009 Added parameter TST_MEM_INSTR_MODE to select instruction pattern during +// memory testing phase. +// 1.3 1-4-2012 Fixed end address logic if defined END_ADDRESS == 0x0FFFFFFF. +//***************************************************************************** + + + +`timescale 1ps/1ps + + + + + + + + + + + +module mig_7series_v4_0_init_mem_pattern_ctr # + + ( + + parameter SIMULATION = "FALSE", + + parameter TCQ = 100, + + parameter FAMILY = "SPARTAN6", // VIRTEX6, SPARTAN6 + + parameter MEM_TYPE = "DDR3",//DDR3,DDR2, QDR2PLUS, + + + + parameter TST_MEM_INSTR_MODE = "R_W_INSTR_MODE", // Spartan6 Available commands: + + // "FIXED_INSTR_R_MODE", "FIXED_INSTR_W_MODE" + + // "R_W_INSTR_MODE", "RP_WP_INSTR_MODE + + // "R_RP_W_WP_INSTR_MODE", "R_RP_W_WP_REF_INSTR_MODE" + + // ******************************* + + // Virtex 6 Available commands: + + // "FIXED_INSTR_R_MODE" - Only Read commands will be generated. + + // "FIXED_INSTR_W_MODE" -- Only Write commands will be generated. + + // "FIXED_INSTR_R_EYE_MODE" Only Read commands will be generated + + // with lower 10 bits address in sequential increment. + + // This mode is for Read Eye measurement. + + + + // "R_W_INSTR_MODE" - Random Read/Write commands will be generated. + + parameter MEM_BURST_LEN = 8, // VIRTEX 6 Option. + + parameter nCK_PER_CLK = 4, + + parameter BL_WIDTH = 10, + + parameter NUM_DQ_PINS = 4, // Total number of memory dq pins in the design. + + + + parameter CMD_PATTERN = "CGEN_ALL", // "CGEN_ALL" option generates all available + + // commands pattern. + + parameter BEGIN_ADDRESS = 32'h00000000, + + parameter END_ADDRESS = 32'h00000fff, + + parameter ADDR_WIDTH = 30, + + parameter DWIDTH = 32, + + parameter CMD_SEED_VALUE = 32'h12345678, + + parameter DATA_SEED_VALUE = 32'hca345675, + + parameter DATA_MODE = 4'b0010, + + parameter PORT_MODE = "BI_MODE", // V6 Option: "BI_MODE"; SP6 Option: "WR_MODE", "RD_MODE", "BI_MODE" + + parameter EYE_TEST = "FALSE" // set EYE_TEST = "TRUE" to probe memory + + // signals. It overwrites the TST_MEM_INSTR_MODE setting. + + // Traffic Generator will onlywrite to one single location and no + + // read transactions will be generated. + + + + + + ) + + ( + + input clk_i, + + input rst_i, + + + + input single_write_button, + + input single_read_button, + + input slow_write_read_button, + + input single_operation, // tie this signal to '1' if want to do single operation + + + + input memc_cmd_en_i, + + input memc_wr_en_i, + + input vio_modify_enable, // 0: default to ADDR as DATA PATTERN. No runtime change in data mode. + + // 1: enable exteral VIO to control the data_mode pattern + + input [3:0] vio_instr_mode_value, // "0000" = Fixed + + // "0001" = bram; takes instruction from bram output + + // "0010" = R/W + + // "0011" = RP/WP + + // "0100" = R/RP/W/WP + + // "0101" = R/RP/W/WP/REF + + // "0111" = Single Step + + + + // and address mode pattern during runtime. + + input [3:0] vio_data_mode_value, + + input [2:0] vio_addr_mode_value, + + + + + + + + + + + + + + input [1:0] vio_bl_mode_value, + + input vio_data_mask_gen, + + input [2:0] vio_fixed_instr_value, + + input [BL_WIDTH - 1:0] vio_fixed_bl_value, // valid range is: from 1 to 64. + + + + input memc_init_done_i, + + input cmp_error, + + output reg run_traffic_o, + + // runtime parameter + + output [31:0] start_addr_o, // define the start of address + + output [31:0] end_addr_o, + + output [31:0] cmd_seed_o, // same seed apply to all addr_prbs_gen, bl_prbs_gen, instr_prbs_gen + + output [31:0] data_seed_o, + + output reg load_seed_o, // + + // upper layer inputs to determine the command bus and data pattern + + // internal traffic generator initialize the memory with + + output reg [2:0] addr_mode_o, // "00" = bram; takes the address from bram output + + // "001" = fixed address from the fixed_addr input + + // "010" = psuedo ramdom pattern; generated from internal 64 bit LFSR + + // "011" = sequential + + + + + + // for each instr_mode, traffic gen fill up with a predetermined pattern before starting the instr_pattern that defined + + // in the instr_mode input. The runtime mode will be automatically loaded inside when it is in + + output reg [3:0] instr_mode_o, // "0000" = Fixed + + // "0001" = bram; takes instruction from bram output + + // "0010" = R/W + + // "0011" = RP/WP + + // "0100" = R/RP/W/WP + + // "0101" = R/RP/W/WP/REF + + // "0111" = Single Step + + // "1111" = Debug Read Only, bypass memory initialization + + + + output reg [1:0] bl_mode_o, // "00" = bram; takes the burst length from bram output + + // "01" = fixed , takes the burst length from the fixed_bl input + + // "10" = psuedo ramdom pattern; generated from internal 16 bit LFSR + + + + output reg [3:0] data_mode_o, // "00" = bram; + + // "01" = fixed data from the fixed_data input + + // "10" = psuedo ramdom pattern; generated from internal 32 bit LFSR + + // "11" = sequential using the addrs as the starting data pattern + + output reg mode_load_o, + + + + // fixed pattern inputs interface + + output reg [BL_WIDTH-1:0] fixed_bl_o, // range from 1 to 64 + + output reg [2:0] fixed_instr_o, //RD 3'b001 + + //RDP 3'b011 + + //WR 3'b000 + + //WRP 3'b010 + + //REFRESH 3'b100 + + output reg mem_pattern_init_done_o + + + + ); + + + + //FSM State Defination + +parameter IDLE = 8'b00000001, + + + + INIT_MEM_WRITE = 8'b00000010, + + INIT_MEM_READ = 8'b00000100, + + TEST_MEM = 8'b00001000, + + SINGLE_STEP_WRITE = 8'b00010000, //0x10 + + SINGLE_STEP_READ = 8'b00100000, //0x20 + + CMP_ERROR = 8'b01000000, + + SINGLE_CMD_WAIT = 8'b10000000; + + + + + +localparam BRAM_ADDR = 3'b000; + +localparam FIXED_ADDR = 3'b001; + +localparam PRBS_ADDR = 3'b010; + +localparam SEQUENTIAL_ADDR = 3'b011; + + + +localparam BRAM_INSTR_MODE = 4'b0000; + +localparam FIXED_INSTR_MODE = 4'b0001; + +localparam R_W_INSTR_MODE = 4'b0010; + +localparam RP_WP_INSTR_MODE = 4'b0011; + +localparam R_RP_W_WP_INSTR_MODE = 4'b0100; + +localparam R_RP_W_WP_REF_INSTR_MODE = 4'b0101; + + + +localparam BRAM_BL_MODE = 2'b00; + +localparam FIXED_BL_MODE = 2'b01; + +localparam PRBS_BL_MODE = 2'b10; + + + +localparam BRAM_DATAL_MODE = 4'b0000; + +localparam FIXED_DATA_MODE = 4'b0001; + +localparam ADDR_DATA_MODE = 4'b0010; + +localparam HAMMER_DATA_MODE = 4'b0011; + +localparam NEIGHBOR_DATA_MODE = 4'b0100; + +localparam WALKING1_DATA_MODE = 4'b0101; + +localparam WALKING0_DATA_MODE = 4'b0110; + +localparam PRBS_DATA_MODE = 4'b0111; + + + +// type fixed instruction + +localparam RD_INSTR = 3'b001; + +localparam RDP_INSTR = 3'b011; + +localparam WR_INSTR = 3'b000; + + + +localparam WRP_INSTR = 3'b010; + +localparam REFRESH_INSTR = 3'b100; + +localparam NOP_WR_INSTR = 3'b101; + +//(* FSM_ENCODING="USER" *) reg [6:0] STATE = current_state; + +reg [7:0] current_state; + +reg [7:0] next_state; + +reg memc_init_done_reg; + +reg AC2_G_E2,AC1_G_E1,AC3_G_E3; + +reg upper_end_matched; + +reg [31:0] end_boundary_addr; + + + +reg memc_cmd_en_r; + +reg lower_end_matched; + +reg end_addr_reached; + +reg run_traffic; + +reg bram_mode_enable; + +reg [31:0] current_address; + +reg [BL_WIDTH-1:0] fix_bl_value; + +reg [3:0] data_mode_sel; + +reg [1:0] bl_mode_sel; + +reg [2:0] addr_mode; + +reg [10:0] INC_COUNTS; + +wire [3:0] test_mem_instr_mode; + +reg pre_instr_switch; + +reg switch_instr; + +reg memc_wr_en_r; + +reg mode_load_d1,mode_load_d2,mode_load_pulse; + +reg mode_load_d3,mode_load_d4,mode_load_d5; + + + +always @ (posedge clk_i) begin + + mode_load_d1 <= #TCQ mode_load_o; + + mode_load_d2 <= #TCQ mode_load_d1; + + mode_load_d3 <= #TCQ mode_load_d2; + + mode_load_d4 <= #TCQ mode_load_d3; + + mode_load_d5 <= #TCQ mode_load_d4; + + + +end + + + +always @ (posedge clk_i) + + mode_load_pulse <= #TCQ mode_load_d4 & ~mode_load_d5; + + + + + +always @ (TST_MEM_INSTR_MODE, EYE_TEST) + +if ((TST_MEM_INSTR_MODE == "FIXED_INSTR_R_MODE" || TST_MEM_INSTR_MODE == "R_W_INSTR_MODE" || + + TST_MEM_INSTR_MODE == "RP_WP_INSTR_MODE" || TST_MEM_INSTR_MODE == "R_RP_W_WP_INSTR_MODE" || + + TST_MEM_INSTR_MODE == "R_RP_W_WP_REF_INSTR_MODE" || TST_MEM_INSTR_MODE == "BRAM_INSTR_MODE" ) + + && (EYE_TEST == "TRUE")) + +begin: Warning_Message1 + +$display("Invalid Parameter setting! When EYE_TEST is set to TRUE, only WRITE commands can be generated."); + + + +$stop; + +end + +else + +begin: NoWarning_Message1 + + + +end + +always @ (TST_MEM_INSTR_MODE) + +if (TST_MEM_INSTR_MODE == "FIXED_INSTR_R_EYE_MODE" && FAMILY == "SPARTAN6") + +begin + +$display("Error ! Not supported test instruction mode in Spartan 6"); + + + +$stop; + +end + +else + +begin + + // dummy + +end + + + + + + + +always @ (vio_fixed_bl_value,vio_data_mode_value) + +if (vio_fixed_bl_value[6:0] > 7'd64 && FAMILY == "SPARTAN6") + +begin + +$display("Error ! Maximum User Burst Length is 64"); + +$display("Change a smaller burst size"); + + + +$stop; + +end + +else if ((vio_data_mode_value == 4'h6 || vio_data_mode_value == 4'h5) && FAMILY == "VIRTEX6") + +begin + + $display("Data DQ bus Walking 1's test."); + + $display("A single DQ bit is set to 1 and walk through entire DQ bus to test "); + + $display("if each DQ bit can be set to 0 or 1 "); + + + + if (NUM_DQ_PINS == 8)begin + + $display("Warning ! Fixed Burst Length in this mode is forced to 64"); + + $display("to ensure '1' always appear on DQ0 of each beginning User Burst"); + + end + + else begin + + $display("Warning ! Fixed Burst Length in this mode is forced to equal to NUM_DQ_PINS"); + + $display("to ensure '1' always appear on DQ0 of each beginning User Burst"); + + end + + + +end + +else + +begin// dummy + + + +end + + + +always @ (data_mode_o) + +if (data_mode_o == 4'h7 && FAMILY == "SPARTAN6") + +begin + + $display("Error ! Hammer PRBS is not support in MCB-like interface"); + + $display("Set value to 4'h8 for Psuedo PRBS"); + + $stop; + +end + + + +else + +begin + + // dummy + +end + + + +//always @ (vio_data_mode_value,TST_MEM_INSTR_MODE) + +//if (TST_MEM_INSTR_MODE != "FIXED_INSTR_R_MODE" && + +// vio_data_mode_value == 4'b1000) + +//begin + +//$display("Error ! The selected PRBS data pattern has to run together with FIXED_INSTR_R_MODE"); + +//$display("Set the TST_MEM_INSTR_MODE = FIXED_INSTR_R_MODE and addr_mode to sequential mode"); + +//$stop; + +//end + + + +assign test_mem_instr_mode = (vio_instr_mode_value[3:2] == 2'b11) ? 4'b1111: + + (vio_instr_mode_value[3:2] == 2'b10) ? 4'b1011: + + (TST_MEM_INSTR_MODE == "BRAM_INSTR_MODE") ? 4'b0000: + + (TST_MEM_INSTR_MODE == "FIXED_INSTR_R_MODE" || + + TST_MEM_INSTR_MODE == "FIXED_INSTR_W_MODE") ? 4'b0001: + + (TST_MEM_INSTR_MODE == "R_W_INSTR_MODE") ? 4'b0010: + + (TST_MEM_INSTR_MODE == "RP_WP_INSTR_MODE" && FAMILY == "SPARTAN6") ? 4'b0011: + + (TST_MEM_INSTR_MODE == "R_RP_W_WP_INSTR_MODE" && FAMILY == "SPARTAN6") ? 4'b0100: + + (TST_MEM_INSTR_MODE == "R_RP_W_WP_REF_INSTR_MODE" && FAMILY == "SPARTAN6") ? 4'b0101: + + 4'b0010; + + + + + + + + always @ (posedge clk_i) + + begin + + if (data_mode_o == 4) + + begin + + fix_bl_value[4:0] <= 5'd8;//Simple_Data_MODE; + + fix_bl_value[BL_WIDTH-1:5] <= 'b0; + + end + + else if (data_mode_o == 5 || data_mode_o == 6 ) + if (MEM_TYPE == "RLD3" && vio_modify_enable) + fix_bl_value <= vio_fixed_bl_value; + else + + if (NUM_DQ_PINS == 8) + + begin + + fix_bl_value[6:0] <= 7'b1000000; + + fix_bl_value[BL_WIDTH-1:7] <= 'b0; + + + + end + + else + + fix_bl_value <= NUM_DQ_PINS;//Waling 1's or 0's; + + else if (data_mode_o == 8) + + begin + + fix_bl_value[6:0] <= 7'b1000000; + + + + fix_bl_value[BL_WIDTH-1:7] <= 'b0; + + + + + + end + + + + else if (vio_modify_enable == 1'b1) + + if (vio_fixed_bl_value == 0) // not valid value; + + begin + + fix_bl_value[6:0] <= 7'b1000000; + + + + fix_bl_value[BL_WIDTH-1:7] <= 'b0; + + + + + + end + + else begin + + fix_bl_value <= vio_fixed_bl_value; + + + + end + + else + + begin + + fix_bl_value[6:0] <= 7'b1000000; + + + + fix_bl_value[BL_WIDTH-1:7] <= 'b0; + + + + + + end + + + + end + + + + + +generate + +if (FAMILY == "SPARTAN6" ) + +begin : INC_COUNTS_S + + + +always @ (posedge clk_i) + + INC_COUNTS <= (DWIDTH/8); + +end + +else // VIRTEX 6 + +begin : INC_COUNTS_V + +always @ (posedge clk_i) + if (MEM_TYPE == "QDR2PLUS") + INC_COUNTS <= 1;// Each address is associated with 4 words in QDR2. + else + INC_COUNTS <= MEM_BURST_LEN; +end + +endgenerate + + + + + +// In V6, each write command in MEM_BLEN = 8, TG writes 8 words of DQ width data to the accessed location. + +// For MEM_BLEN = 4, TG writes 4 words of DQ width data to the accessed location. + +reg Cout_b; + +always @ (posedge clk_i) + +begin + +if (rst_i) + + current_address <= BEGIN_ADDRESS; + +else if (memc_wr_en_r && (current_state == INIT_MEM_WRITE && (PORT_MODE == "WR_MODE" || PORT_MODE == "BI_MODE")) + + || (memc_wr_en_r && (current_state == IDLE && PORT_MODE == "RD_MODE")) ) + +// ** current_address stops incrementing when reaching the beginning of last END_ADDRESS write burst. + {Cout_b,current_address} <= current_address + INC_COUNTS; + +else + + current_address <= current_address; + + + +end + + + + + +always @ (posedge clk_i) + +begin + + if (rst_i) + + AC3_G_E3 <= 1'b0; + + else if (current_address[29:24] >= end_boundary_addr[29:24]) + + AC3_G_E3 <= 1'b1; + + else + + AC3_G_E3 <= AC3_G_E3; + + + + if (rst_i) + + AC2_G_E2 <= 1'b0; + + else if (current_address[23:16] >= end_boundary_addr[23:16]) + AC2_G_E2 <= AC3_G_E3; + + else + + AC2_G_E2 <= AC2_G_E2; + + + + + + if (rst_i) + + AC1_G_E1 <= 1'b0; + + else if (current_address[15:8] >= end_boundary_addr[15:8] ) + AC1_G_E1 <= AC2_G_E2 & AC3_G_E3; + +else + + AC1_G_E1 <= AC1_G_E1; + + + + + +end + +always @(posedge clk_i) + +begin + +if (rst_i) + + upper_end_matched <= 1'b0; + + + +else if (memc_cmd_en_i) + + upper_end_matched <= AC3_G_E3 & AC2_G_E2 & AC1_G_E1; + +else + + upper_end_matched <= upper_end_matched; + + + +end + + + + + + //synthesis translate_off + +always @ (fix_bl_value) + + if(fix_bl_value * MEM_BURST_LEN > END_ADDRESS) + + begin + + $display("Error ! User Burst Size goes beyond END Address"); + + $display("decrease vio_fixed_bl_value or increase END Address range"); + + $stop; + + end + + else + + begin + + // dummy + + + + end + + + + + +always @ (vio_data_mode_value, vio_data_mask_gen) + + if(vio_data_mode_value != 4'b0010 && vio_data_mask_gen) + + begin + + $display("Error ! Data Mask Generation only supported in Data Mode = Address as Data"); + + $stop; + + end + + else + + begin + + // dummy + + + + end + + + + //synthesis translate_on + + + +reg COuta; + +always @(posedge clk_i) + +begin + // **end_boundary_addr defination is the beginning address of the last write burst of END_ADDRESS + {COuta,end_boundary_addr} <= (END_ADDRESS[31:0] - {{32-BL_WIDTH{1'b0}} ,fix_bl_value } +1) ; + +end + + + + + + + +always @(posedge clk_i) + +begin + + if ((current_address[7:4] >= END_ADDRESS[7:4]) && MEM_TYPE == "QDR2PLUS") + + + + lower_end_matched <= 1'b1; + + + + else if ((current_address[7:0] >= end_boundary_addr[7:0]) && MEM_TYPE != "QDR2PLUS") + + + + lower_end_matched <= 1'b1; + + else + + lower_end_matched <= 1'b0; + + + +end + + + + + + + +always @(posedge clk_i) + +begin + + if (rst_i) + + pre_instr_switch <= 1'b0; + + + +else if (current_address[7:0] >= end_boundary_addr[7:0] ) // V6 send a seed address to memc_flow_ctr + + pre_instr_switch <= 1'b1; + + + +end + + + + + +always @(posedge clk_i) + +begin + + + + //if (upper_end_matched && lower_end_matched && FAMILY == "VIRTEX6" && MEM_TYPE == "QDR2PLUS") + + // end_addr_reached <= 1'b1; + + + + if ((upper_end_matched && lower_end_matched && FAMILY == "SPARTAN6" && DWIDTH == 32) || + + (upper_end_matched && lower_end_matched && FAMILY == "SPARTAN6" && DWIDTH == 64) || + + (upper_end_matched && DWIDTH == 128 && FAMILY == "SPARTAN6") || + + (upper_end_matched && lower_end_matched && FAMILY == "VIRTEX6")) + + end_addr_reached <= 1'b1; + + else + + end_addr_reached <= 1'b0; + + + +end + + + +always @(posedge clk_i) + +begin + + if ((upper_end_matched && pre_instr_switch && FAMILY == "VIRTEX6")) + + switch_instr <= 1'b1; + + else + + switch_instr <= 1'b0; + + + +end + + + + + + always @ (posedge clk_i) + + begin + + memc_wr_en_r <= memc_wr_en_i; + + memc_init_done_reg <= memc_init_done_i; + +end + + + + always @ (posedge clk_i) + + run_traffic_o <= run_traffic; + + + + + + + + always @ (posedge clk_i) + + begin + + if (rst_i) + + current_state <= 5'b00001; + + else + + current_state <= next_state; + + end + + + + assign start_addr_o = BEGIN_ADDRESS;//BEGIN_ADDRESS; + + assign end_addr_o = END_ADDRESS; + + assign cmd_seed_o = CMD_SEED_VALUE; + + assign data_seed_o = DATA_SEED_VALUE; + + + + + +// + +always @ (posedge clk_i) + +begin + + if (rst_i) + + mem_pattern_init_done_o <= 1'b0; + else if (current_address >= end_boundary_addr ) + + mem_pattern_init_done_o <= 1'b1; + +end + + + +reg [3:0] syn1_vio_data_mode_value; + +reg [2:0] syn1_vio_addr_mode_value; + + + + + + always @ (posedge clk_i) + + begin + + if (rst_i) begin + + syn1_vio_data_mode_value <= 4'b0011; + + syn1_vio_addr_mode_value <= 3'b011; + + end + + else if (vio_modify_enable == 1'b1) begin + + syn1_vio_data_mode_value <= vio_data_mode_value; + + syn1_vio_addr_mode_value <= vio_addr_mode_value; + + end + + end + + + + + + always @ (posedge clk_i) + + begin + + if (rst_i) begin + + data_mode_sel <= DATA_MODE;//ADDR_DATA_MODE; + + end + + else if (vio_modify_enable == 1'b1) begin + + data_mode_sel <= syn1_vio_data_mode_value; + + end + + end + + + + + + + + always @ (posedge clk_i) + + begin + + if (rst_i ) + + bl_mode_sel <= FIXED_BL_MODE; + + else if (test_mem_instr_mode[3]) + + bl_mode_sel <= 2'b11; + + else if (vio_modify_enable == 1'b1) begin + + bl_mode_sel <= vio_bl_mode_value; + + end + + end + + + + + + always @ (posedge clk_i) + + begin + + // whenever vio_instr_mode_value[3] == 1'b1, TG expects reading back phy calibration data pattern + + // which is: 0xFF, 0x00, 0xAA,0x55, 0x55, 0xAA, 0x99 and 0x66. + + if (vio_modify_enable) + + if (vio_instr_mode_value == 4'h7) + + data_mode_o <= 4'h1; // fixed data input + + else + + data_mode_o <= (test_mem_instr_mode[3]) ? 4'b1000: data_mode_sel; + + else + + data_mode_o <= DATA_MODE; + + + + + + addr_mode_o <= (test_mem_instr_mode[3]) ? 3'b000: addr_mode ; + + + + // assuming if vio_modify_enable is enabled and vio_addr_mode_value is set to zero + + // user wants to have bram interface. + + if (syn1_vio_addr_mode_value == 0 && vio_modify_enable == 1'b1) + + bram_mode_enable <= 1'b1; + + else + + bram_mode_enable <= 1'b0; + + + + end + +reg single_write_r1,single_write_r2,single_read_r1,single_read_r2; + +reg single_instr_run_trarric; + +reg slow_write_read_button_r1,slow_write_read_button_r2; + +reg toggle_start_stop_write_read; + +wire int_single_wr,int_single_rd; + +reg [8:0] write_read_counter; + +always @ (posedge clk_i) + +begin + + if (rst_i) begin + + write_read_counter <= 'b0; + + slow_write_read_button_r1 <= 1'b0; + + slow_write_read_button_r2 <= 1'b0; + + + + toggle_start_stop_write_read <= 1'b0; + + end + + else begin + + write_read_counter <= write_read_counter + 1; + + slow_write_read_button_r1 <= slow_write_read_button; + + slow_write_read_button_r2 <= slow_write_read_button_r1; + + + + if (~slow_write_read_button_r2 && slow_write_read_button_r1) + + toggle_start_stop_write_read <= ~toggle_start_stop_write_read; + + + + end + +end + + + +assign int_single_wr = write_read_counter[8]; + +assign int_single_rd = ~write_read_counter[8]; + + + + + + + + + +always @ (posedge clk_i) + +begin + + if (rst_i) + + begin + + single_write_r1 <= 1'b0; + + single_write_r2 <= 1'b0; + + single_read_r1 <= 1'b0; + + single_read_r2 <= 1'b0; + + + + end + + else begin + + single_write_r1 <= single_write_button | (int_single_wr & toggle_start_stop_write_read); + + single_write_r2 <= single_write_r1 ; + + single_read_r1 <= single_read_button | (int_single_rd & toggle_start_stop_write_read); + + single_read_r2 <= single_read_r1 ; + + end + +end + + + + + +always @ (posedge clk_i) + +begin + + if (rst_i) + + single_instr_run_trarric <= 1'b0; + + else if ((single_write_r1 && ~single_write_r2) || (single_read_r1 && ~single_read_r2)) + + single_instr_run_trarric <= 1'b1; + + else if (mode_load_o) + + single_instr_run_trarric <= 1'b0; + +end + + + + + +always @ (posedge clk_i) + +begin + + if (rst_i) + + run_traffic <= 1'b0; + + else if ((current_state == SINGLE_CMD_WAIT ) || (current_state == SINGLE_STEP_WRITE ) || (current_state == SINGLE_STEP_READ )) + + run_traffic <= single_instr_run_trarric; + + else if ((current_state == SINGLE_CMD_WAIT ) ) + + run_traffic <= 1'b0; + + + + else if ( (current_state != IDLE)) + + run_traffic <= 1'b1; + + else + + run_traffic <= 1'b0; + + + +end + + + + + +always @ (*) + +begin + + load_seed_o = 1'b0; + + if (CMD_PATTERN == "CGEN_BRAM" || bram_mode_enable ) + + addr_mode = 'b0; + + else + + addr_mode = SEQUENTIAL_ADDR; + + + + if (CMD_PATTERN == "CGEN_BRAM" || bram_mode_enable ) + + instr_mode_o = 'b0; + + else + + instr_mode_o = FIXED_INSTR_MODE; + + + + + + if (CMD_PATTERN == "CGEN_BRAM" || bram_mode_enable ) + + bl_mode_o = 'b0; + + else + + bl_mode_o = FIXED_BL_MODE; + + + + + + if (vio_modify_enable) + + if (vio_instr_mode_value == 7) + + fixed_bl_o = 10'd1; + + else if (data_mode_o[2:0] == 3'b111) + + if (FAMILY == "VIRTEX6") + + fixed_bl_o = 10'd256; // for 8 taps PRBS, this has to be set to 256. + + else + + fixed_bl_o = 10'd64; + + else + + if (FAMILY == "VIRTEX6") + + fixed_bl_o = vio_fixed_bl_value; + + // PRBS mode + + else if (data_mode_o[3:0] == 4'b1000 && FAMILY == "SPARTAN6") + + fixed_bl_o = 10'd64; // + + + + else + + fixed_bl_o = fix_bl_value; + + else + + fixed_bl_o = fix_bl_value; + + + + // fixed_bl_o = 10'd64; + + // fixed_bl_o = 10'd256; // for 8 taps PRBS, this has to be set to 256. + + + + mode_load_o = 1'b0; + + // run_traffic = 1'b0; + + next_state = IDLE; + + + + if (PORT_MODE == "RD_MODE") + + fixed_instr_o = RD_INSTR; + + + + else //if( PORT_MODE == "WR_MODE" || PORT_MODE == "BI_MODE") + + fixed_instr_o = WR_INSTR; + + + + + +case(current_state) + + IDLE: + + begin + + if(memc_init_done_reg ) //rdp_rdy_i comes from read_data path + + begin + + + + if (vio_instr_mode_value == 4'h7 && single_write_r1 && ~single_write_r2) + + begin + + next_state = SINGLE_STEP_WRITE; + + mode_load_o = 1'b1; + + // run_traffic = 1'b1; + + load_seed_o = 1'b1; + + end + + + + else if (vio_instr_mode_value == 4'h7 && single_read_r1 && ~single_read_r2) + + begin + + next_state = SINGLE_STEP_READ; + + mode_load_o = 1'b1; + + // run_traffic = 1'b1; + + load_seed_o = 1'b1; + + end + + + + + + + + else if ((PORT_MODE == "WR_MODE" || (PORT_MODE == "BI_MODE" && test_mem_instr_mode[3:2] != 2'b11)) && + + vio_instr_mode_value != 4'h7 ) // normal test mode + + begin + + next_state = INIT_MEM_WRITE; + + mode_load_o = 1'b1; + + // run_traffic = 1'b0; + + load_seed_o = 1'b1; + + end + + else if ((PORT_MODE == "RD_MODE" && end_addr_reached || (test_mem_instr_mode == 4'b1111)) && + + vio_instr_mode_value != 4'h7 ) + + begin + + next_state = TEST_MEM; + + mode_load_o = 1'b1; + + // run_traffic = 1'b1; + + load_seed_o = 1'b1; + + end + + else + + begin + + next_state = IDLE; + + // run_traffic = 1'b0; + + load_seed_o = 1'b0; + + + + end + + + + end + + else + + begin + + next_state = IDLE; + + // run_traffic = 1'b0; + + load_seed_o = 1'b0; + + + + end + + + + end + + SINGLE_CMD_WAIT: begin + + if (single_operation&& single_read_r1 && ~single_read_r2) + + next_state = SINGLE_STEP_READ; + + else + + next_state = SINGLE_CMD_WAIT; + + + + fixed_instr_o = RD_INSTR; + + addr_mode = FIXED_ADDR; + + bl_mode_o = FIXED_BL_MODE; + + + + mode_load_o = 1'b0; + + load_seed_o = 1'b0; + + end + + SINGLE_STEP_WRITE: begin + + + + // run_traffic = single_instr_run_trarric; + + + + + + if (memc_cmd_en_i) + + next_state = IDLE; + + + + else + + next_state = SINGLE_STEP_WRITE; + + + + mode_load_o = 1'b1; + + load_seed_o = 1'b1; + + addr_mode = FIXED_ADDR; + + bl_mode_o = FIXED_BL_MODE; + + + + fixed_instr_o = WR_INSTR; + + + + end + + + + SINGLE_STEP_READ: begin //0x20 + + + + // run_traffic = single_instr_run_trarric; + + if (single_operation) + + next_state = SINGLE_CMD_WAIT; + + + + else if (memc_cmd_en_i) + + next_state = IDLE; + + else + + next_state = SINGLE_STEP_READ; + + + + mode_load_o = 1'b1; + + load_seed_o = 1'b1; + + // run_traffic = 1'b1; + + addr_mode = FIXED_ADDR; + + bl_mode_o = FIXED_BL_MODE; + + + + fixed_instr_o = RD_INSTR; + + + + end + + + + INIT_MEM_WRITE: begin + + + + + + + + if (end_addr_reached && EYE_TEST == "FALSE" ) + + begin + + next_state = TEST_MEM; + + mode_load_o = 1'b1; + + load_seed_o = 1'b1; + + // run_traffic = 1'b1; + + + + end + + else + + begin + + next_state = INIT_MEM_WRITE; + + // run_traffic = 1'b1; + + mode_load_o = 1'b0; + + load_seed_o = 1'b0; + + if (EYE_TEST == "TRUE") + + addr_mode = FIXED_ADDR; + + else if (CMD_PATTERN == "CGEN_BRAM" || bram_mode_enable ) + + addr_mode = 'b0; + + else + + addr_mode = SEQUENTIAL_ADDR; + + + + + + if (switch_instr && TST_MEM_INSTR_MODE == "FIXED_INSTR_R_EYE_MODE") + + fixed_instr_o = RD_INSTR; + + else + + + + fixed_instr_o = WR_INSTR; + + + + end + + + + end + + + + INIT_MEM_READ: begin + + + + if (end_addr_reached ) + + begin + + next_state = TEST_MEM; + + mode_load_o = 1'b1; + + load_seed_o = 1'b1; + + + + end + + else + + begin + + next_state = INIT_MEM_READ; + + // run_traffic = 1'b0; + + mode_load_o = 1'b0; + + load_seed_o = 1'b0; + + + + end + + + + end + + TEST_MEM: begin + + if (single_operation) + + next_state = SINGLE_CMD_WAIT; + + else if (cmp_error) + + next_state = TEST_MEM;//CMP_ERROR; + + + + else + + next_state = TEST_MEM; + + // run_traffic = 1'b1; + + + + if (vio_modify_enable) + + fixed_instr_o = vio_fixed_instr_value; + + else if (PORT_MODE == "BI_MODE" && TST_MEM_INSTR_MODE == "FIXED_INSTR_W_MODE") + + fixed_instr_o = WR_INSTR; + + else if (PORT_MODE == "BI_MODE" && ( TST_MEM_INSTR_MODE == "FIXED_INSTR_R_MODE" || + + TST_MEM_INSTR_MODE == "FIXED_INSTR_R_EYE_MODE")) + + fixed_instr_o = RD_INSTR; + + else if (PORT_MODE == "RD_MODE") + + fixed_instr_o = RD_INSTR; + + + + else //if( PORT_MODE == "WR_MODE") + + fixed_instr_o = WR_INSTR; + + + + + + + + if ((data_mode_o == 3'b111) && FAMILY == "VIRTEX6") + + fixed_bl_o = 10'd256; + + else if ((FAMILY == "SPARTAN6")) + + fixed_bl_o = 10'd64; // Our current PRBS algorithm wants to maximize the range bl from 1 to 64. + + else + + fixed_bl_o = fix_bl_value; + + + + + + if (data_mode_o == 3'b111) + + bl_mode_o = FIXED_BL_MODE; + + + + else if (TST_MEM_INSTR_MODE == "FIXED_INSTR_W_MODE") + + bl_mode_o = FIXED_BL_MODE; + + else if (data_mode_o == 4'b0101 || data_mode_o == 4'b0110) + + // simplify the downstream logic, data_mode is forced to FIXED_BL_MODE + + // if data_mode is set to Walking 1's or Walking 0's. + + bl_mode_o = FIXED_BL_MODE; + + else + + bl_mode_o = bl_mode_sel ; + + + + /* if (TST_MEM_INSTR_MODE == "FIXED_INSTR_W_MODE") + + addr_mode = SEQUENTIAL_ADDR; + + else if (data_mode_o == 4'b0101 || data_mode_o == 4'b0110) + + // simplify the downstream logic, addr_mode is forced to SEQUENTIAL + + // if data_mode is set to Walking 1's or Walking 0's. + + // This ensure the starting burst address always in in the beginning + + // of burst_length address for the number of DQ pins.And to ensure the + + // DQ0 always asserts at the beginning of each user burst. + + addr_mode = SEQUENTIAL_ADDR; + + else if (bl_mode_o == PRBS_BL_MODE) + + addr_mode = PRBS_ADDR; + + else + + addr_mode = 3'b010;*/ + + + + addr_mode = vio_addr_mode_value; + + + + if (vio_modify_enable ) + + instr_mode_o = vio_instr_mode_value; + + + + else if (TST_MEM_INSTR_MODE == "FIXED_INSTR_R_EYE_MODE" && FAMILY == "VIRTEX6") + + instr_mode_o = FIXED_INSTR_MODE; + + else if(PORT_MODE == "BI_MODE" && TST_MEM_INSTR_MODE != "FIXED_INSTR_R_EYE_MODE") + + if(CMD_PATTERN == "CGEN_BRAM" || bram_mode_enable ) + + instr_mode_o = BRAM_INSTR_MODE; + + else + + instr_mode_o = test_mem_instr_mode;//R_RP_W_WP_REF_INSTR_MODE;//FIXED_INSTR_MODE;//R_W_INSTR_MODE;//R_RP_W_WP_INSTR_MODE;//R_W_INSTR_MODE;//R_W_INSTR_MODE; //FIXED_INSTR_MODE;// + + else //if (PORT_MODE == "RD_MODE" || PORT_MODE == "WR_MODE") begin + + instr_mode_o = FIXED_INSTR_MODE; + + + + end + + + + + + CMP_ERROR: + + begin + + next_state = CMP_ERROR; + + bl_mode_o = bl_mode_sel;//PRBS_BL_MODE;//PRBS_BL_MODE; //FIXED_BL_MODE; + + fixed_instr_o = RD_INSTR; + + addr_mode = SEQUENTIAL_ADDR;//PRBS_ADDR;//PRBS_ADDR;//PRBS_ADDR;//SEQUENTIAL_ADDR; + + if(CMD_PATTERN == "CGEN_BRAM" || bram_mode_enable ) + + instr_mode_o = BRAM_INSTR_MODE;// + + else + + instr_mode_o = test_mem_instr_mode;//FIXED_INSTR_MODE;//R_W_INSTR_MODE;//R_RP_W_WP_INSTR_MODE;//R_W_INSTR_MODE;//R_W_INSTR_MODE; //FIXED_INSTR_MODE;// + + + + // run_traffic = 1'b1; // ?? keep it running or stop if error happened + + + + end + + default: + + begin + + next_state = IDLE; + + //run_traffic = 1'b0; + + + + end + + + + endcase + + end + + + + + + + + + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_memc_flow_vcontrol.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_memc_flow_vcontrol.v new file mode 100755 index 0000000..e67b32f --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_memc_flow_vcontrol.v @@ -0,0 +1,503 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: mcb_flow_control.v +// /___/ /\ Date Last Modified: $Date: 2011/06/02 08:37:21 $ +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Virtex 6 +//Design Name: DDR2/DDR3 +//Purpose: This module is the main flow control between cmd_gen.v, +// write_data_path and read_data_path modules. +//Reference: +//Revision History: 7/29/10 Support V6 Back-to-back commands over user interface. +// +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_memc_flow_vcontrol # + ( + parameter TCQ = 100, + parameter nCK_PER_CLK = 4, + parameter NUM_DQ_PINS = 32, + parameter BL_WIDTH = 6, + parameter MEM_BURST_LEN = 4, + parameter FAMILY = "SPARTAN6", + parameter MEM_TYPE = "DDR3" + + ) + ( + input clk_i, + input [9:0] rst_i, + input [3:0] data_mode_i, + input [5:0] cmds_gap_delay_value, + input mem_pattern_init_done_i, + // interface to cmd_gen, pipeline inserter + output reg cmd_rdy_o, + input cmd_valid_i, + input [2:0] cmd_i, + input [31:0] addr_i, + input [BL_WIDTH - 1:0] bl_i, + + // interface to mcb_cmd port + input mcb_cmd_full, + input mcb_wr_full_i, + output reg [2:0] cmd_o, + output [31:0] addr_o, + output reg [BL_WIDTH-1:0] bl_o, + output cmd_en_o, // interface to write data path module + // *** interface to qdr **** + output reg qdr_rd_cmd_o, + // ************************* + input mcb_wr_en_i, + input last_word_wr_i, + input wdp_rdy_i, + output reg wdp_valid_o, + output reg wdp_validB_o, + output reg wdp_validC_o, + output [31:0] wr_addr_o, + output [BL_WIDTH-1:0] wr_bl_o, + // interface to read data path module + input rdp_rdy_i, + output reg rdp_valid_o, + output [31:0] rd_addr_o, + output [BL_WIDTH-1:0] rd_bl_o + ); + + //FSM State Defination + localparam READY = 4'b0001, + READ = 4'b0010, + WRITE = 4'b0100, + CMD_WAIT = 4'b1000; + + localparam RD = 3'b001; + localparam RDP = 3'b011; + localparam WR = 3'b000; + localparam WRP = 3'b010; + localparam REFRESH = 3'b100; + localparam NOP = 3'b101; + + + reg cmd_fifo_rdy; + reg push_cmd; + reg cmd_rdy; + reg [31:0] addr_r; + reg [2:0] cmd_reg; + reg [31:0] addr_reg; + reg [BL_WIDTH-1:0] bl_reg; + reg [BL_WIDTH:0] cmd_counts; + reg rdp_valid; +(*EQUIVALENT_REGISTER_REMOVAL="NO"*) reg wdp_valid,wdp_validB,wdp_validC; + reg [3:0] current_state; + reg [3:0] next_state; + reg push_cmd_r; + reg cmd_en_r1; + reg wr_in_progress; + reg wrcmd_in_progress; + reg rdcmd_in_progress; + reg [5:0] commands_delay_counters; + reg goahead; + reg cmd_en_r2; + reg cmd_wr_pending_r1; + reg [3:0] addr_INC; + reg COuta; + wire cmd_rd; + wire cmd_wr; + + always @ (posedge clk_i) begin + if (data_mode_i == 4'b1000 || FAMILY == "SPARTAN6") + addr_INC <= #TCQ 0; + else + addr_INC <= #TCQ MEM_BURST_LEN[3:0]; + end + +// mcb_command bus outputs + always @(posedge clk_i) begin + if (rst_i[0]) begin + commands_delay_counters <= 6'b00000; + goahead <= 1'b1; + end + else if (cmds_gap_delay_value == 5'd0) + goahead <= 1'b1; + else if (wr_in_progress || wrcmd_in_progress || + rdcmd_in_progress || cmd_rdy_o) begin + commands_delay_counters <= 6'b00000; + goahead <= 1'b0; + end + else if (commands_delay_counters == cmds_gap_delay_value) begin + commands_delay_counters <= commands_delay_counters; + goahead <= 1'b1; + end + else + commands_delay_counters <= commands_delay_counters + 1'b1; + end + + assign cmd_en_o = (FAMILY == "VIRTEX6") ? cmd_en_r1 : (~cmd_en_r1 & cmd_en_r2) ; + + always @ (posedge clk_i) + cmd_rdy_o <= #TCQ cmd_rdy; + + always @ (posedge clk_i) begin + if (rst_i[8]) + cmd_en_r1 <= #TCQ 1'b0; +// else if (cmd_counts == 1 && (!mcb_cmd_full && cmd_en_r1 || mcb_wr_full_i)) + else if (cmd_counts == 1 && (!mcb_cmd_full && cmd_en_r1 )) + + cmd_en_r1 <= #TCQ 1'b0; + else if ((rdcmd_in_progress || wrcmd_in_progress && MEM_TYPE != "QDR2PLUS") || + (mcb_wr_en_i && MEM_TYPE == "QDR2PLUS")) + cmd_en_r1 <= #TCQ 1'b1; + else if (!mcb_cmd_full) + cmd_en_r1 <= #TCQ 1'b0; + end + + always @ (posedge clk_i) + if (rst_i[8]) + cmd_en_r2 <= #TCQ 1'b0; + else + cmd_en_r2 <= cmd_en_r1; + +// QDR read command generation + always @ (posedge clk_i) begin + if (rst_i[8]) + qdr_rd_cmd_o <= #TCQ 1'b0; + else if (cmd_counts == 1 && !mcb_cmd_full && rdcmd_in_progress && cmd_en_r1) + qdr_rd_cmd_o <= #TCQ 1'b0; + else if (rdcmd_in_progress) + qdr_rd_cmd_o <= #TCQ 1'b1; + else if (!mcb_cmd_full) + qdr_rd_cmd_o <= #TCQ 1'b0; + end + + always @ (posedge clk_i) begin + if (rst_i[9]) + cmd_fifo_rdy <= #TCQ 1'b1; + else if (cmd_en_r1 || mcb_cmd_full) + cmd_fifo_rdy <= #TCQ 1'b0; + else if (!mcb_cmd_full) + cmd_fifo_rdy <= #TCQ 1'b1; + end + + always @ (posedge clk_i) begin + if (rst_i[9]) begin + cmd_o <= #TCQ 'b0; + bl_o <= #TCQ 'b0; + end + else if (push_cmd_r && current_state == READ) begin + cmd_o <= #TCQ cmd_i; + bl_o <= #TCQ bl_i - 'b1; + end + else if (push_cmd_r && current_state == WRITE) begin + if (FAMILY == "SPARTAN6") + cmd_o <= #TCQ cmd_reg; + else + cmd_o <= #TCQ {2'b00,cmd_reg[0]}; + bl_o <= #TCQ bl_reg; + end + end + + always @ (posedge clk_i) + if ((push_cmd && mem_pattern_init_done_i) | rst_i) + addr_reg <= #TCQ addr_i; + else if (push_cmd && !mem_pattern_init_done_i) + addr_reg <= #TCQ addr_r; + + always @ (posedge clk_i) begin + if (push_cmd && cmd_rd || rst_i[0]) + addr_r <= #TCQ addr_i; + else if (push_cmd_r && current_state != READ) + addr_r <= #TCQ addr_reg; + else if ((wrcmd_in_progress || rdcmd_in_progress) && + cmd_en_r1 && ~mcb_cmd_full) begin + if (MEM_TYPE == "QDR2PLUS") + {COuta,addr_r[31:0]} <= addr_o + 1; + else + {COuta,addr_r[31:0]} <= addr_o + addr_INC; + + end + end + + assign addr_o = addr_r; + assign wr_addr_o = addr_i; + assign rd_addr_o = addr_i; + assign rd_bl_o = bl_i; + assign wr_bl_o = bl_i; + + always @ (posedge clk_i) begin + wdp_valid_o <= wdp_valid; + wdp_validB_o <= wdp_validB; + wdp_validC_o <= wdp_validC; + end + + always @ (posedge clk_i) + rdp_valid_o <= rdp_valid; + + always @(posedge clk_i) + push_cmd_r <= #TCQ push_cmd; + + always @(posedge clk_i) + if (push_cmd) begin + cmd_reg <= #TCQ cmd_i; + bl_reg <= #TCQ bl_i - 1'b1; + end + + always @ (posedge clk_i) + begin + if (rst_i[8]) + cmd_counts <= #TCQ 'b0; + else if (push_cmd_r) begin + if (bl_i == 0) begin + if (MEM_BURST_LEN == 8) begin + if (nCK_PER_CLK == 4) + cmd_counts <= #TCQ {2'b01, {BL_WIDTH-1{1'b0}}}; + else + cmd_counts <= #TCQ {3'b001, {BL_WIDTH-2{1'b0}}}; + end + else + cmd_counts <= {1'b0,{BL_WIDTH{1'b1}}} ;//- 2;//63; + end + else begin + if (MEM_BURST_LEN == 8) begin + if (nCK_PER_CLK == 4) + cmd_counts <= {1'b0,bl_i}; + else + cmd_counts <= {3'b000,bl_i[BL_WIDTH-2:1]}; + end + else + cmd_counts <= {1'b0,bl_i};//- 1 ;// {1'b0,bl_i[5:1]} -2; + end + end + else if ((wrcmd_in_progress || rdcmd_in_progress) && cmd_en_r1 && ~mcb_cmd_full) begin + if (cmd_counts > 0) begin + if (FAMILY == "VIRTEX6") + cmd_counts <= cmd_counts - 1'b1; + else if (wrcmd_in_progress) + cmd_counts <= cmd_counts - 1'b1; + else + cmd_counts <= 0; + end + end + end + + //--Command Decodes-- + assign cmd_wr = ((cmd_i == WR | cmd_i == WRP) & cmd_valid_i) ? 1'b1 : 1'b0; + assign cmd_rd = ((cmd_i == RD | cmd_i == RDP) & cmd_valid_i) ? 1'b1 : 1'b0; + + always @ (posedge clk_i) begin + if (rst_i[0]) + cmd_wr_pending_r1 <= #TCQ 1'b0; + else if (last_word_wr_i) + cmd_wr_pending_r1 <= #TCQ 1'b1; + else if (push_cmd & cmd_wr) + cmd_wr_pending_r1 <= #TCQ 1'b0; + end + + always @ (posedge clk_i) begin + if (rst_i[0]) + wr_in_progress <= #TCQ 1'b0; + else if (last_word_wr_i) + wr_in_progress <= #TCQ 1'b0; + else if (push_cmd && cmd_wr) + wr_in_progress <= #TCQ 1'b1; + end + + always @ (posedge clk_i) begin + if (rst_i[0]) + wrcmd_in_progress <= #TCQ 1'b0; + else if (cmd_wr && push_cmd_r) + wrcmd_in_progress <= #TCQ 1'b1; + else if (cmd_counts == 0 || (cmd_counts == 1 && ~mcb_cmd_full)) + wrcmd_in_progress <= #TCQ 1'b0; + end + + always @ (posedge clk_i) begin + if (rst_i[0]) + rdcmd_in_progress <= #TCQ 1'b0; + else if (cmd_rd && push_cmd_r) + rdcmd_in_progress <= #TCQ 1'b1; + else if (cmd_counts <= 1) + rdcmd_in_progress <= #TCQ 1'b0; + end + +// mcb_flow_control statemachine + always @ (posedge clk_i) + if (rst_i[0]) + current_state <= #TCQ 5'b00001; + else + current_state <= #TCQ next_state; + + always @ (*) begin + push_cmd = 1'b0; + wdp_valid = 1'b0; + wdp_validB = 1'b0; + wdp_validC = 1'b0; + rdp_valid = 1'b0; + cmd_rdy = 1'b0; + next_state = current_state; + + case(current_state) // next state logic + + READY: begin // 5'h01 + + if (rdp_rdy_i && cmd_rd && ~mcb_cmd_full) begin + next_state = READ; + push_cmd = 1'b1; + rdp_valid = 1'b1; + cmd_rdy = 1'b1; + end + else if (wdp_rdy_i && cmd_wr && ~mcb_cmd_full) begin + next_state = WRITE; + push_cmd = 1'b1; + wdp_valid = 1'b1; + wdp_validB = 1'b1; + wdp_validC = 1'b1; + cmd_rdy = 1'b1; + end + else begin + next_state = READY; + push_cmd = 1'b0; + cmd_rdy = 1'b0; + end + end // READY + + READ: begin // 5'h02 + + if (rdcmd_in_progress) begin + next_state = READ; + push_cmd = 1'b0; + rdp_valid = 1'b0; + wdp_valid = 1'b0; + end + else if (!rdp_rdy_i) begin + next_state = READ; + push_cmd = 1'b0; + wdp_valid = 1'b0; + wdp_validB = 1'b0; + wdp_validC = 1'b0; + rdp_valid = 1'b0; + end + else if (~cmd_fifo_rdy && ~rdcmd_in_progress && goahead) begin + next_state = CMD_WAIT; + end + else if (goahead && ~push_cmd_r) begin + next_state = READY; + cmd_rdy = 1'b0; + end + else + next_state = READ; + end // READ + + WRITE: begin // 5'h04 + + if (wr_in_progress || wrcmd_in_progress || push_cmd_r) begin + next_state = WRITE; + wdp_valid = 1'b0; + wdp_validB = 1'b0; + wdp_validC = 1'b0; + push_cmd = 1'b0; + end + else if (!cmd_fifo_rdy && last_word_wr_i && goahead) begin + next_state = CMD_WAIT; + push_cmd = 1'b0; + end + else if (goahead) begin + next_state = READY; + end + else + next_state = WRITE; + + cmd_rdy = 1'b0; + + end // WRITE + + CMD_WAIT: begin // 5'h08 + + if (!cmd_fifo_rdy || wr_in_progress) begin + next_state = CMD_WAIT; + cmd_rdy = 1'b0; + end + else if (cmd_fifo_rdy && rdp_rdy_i && cmd_rd) begin + next_state = READY; + push_cmd = 1'b0; + cmd_rdy = 1'b0; + rdp_valid = 1'b0; + end + else if (cmd_fifo_rdy && cmd_wr && goahead && + cmd_wr_pending_r1) begin + next_state = READY; + push_cmd = 1'b0; + cmd_rdy = 1'b0; + wdp_valid = 1'b0; + wdp_validB = 1'b0; + wdp_validC = 1'b0; + end + else begin + next_state = CMD_WAIT; + cmd_rdy = 1'b0; + end + end // CMD_WAIT + + default: begin + push_cmd = 1'b0; + wdp_valid = 1'b0; + wdp_validB = 1'b0; + wdp_validC = 1'b0; + next_state = READY; + end + + endcase + end + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_memc_traffic_gen.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_memc_traffic_gen.v new file mode 100755 index 0000000..d9db2c4 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_memc_traffic_gen.v @@ -0,0 +1,909 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MEMC +// / / Filename: memc_traffic_gen.v +// /___/ /\ Date Last Modified: $Date: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Spartan6/Virtex6 +//Design Name: memc_traffic_gen +//Purpose: This is top level module of memory traffic generator which can +// generate different CMD_PATTERN and DATA_PATTERN to Spartan 6 +// hard memory controller core. +//Reference: +//Revision History: 1.1 Brought out internal signals cmp_data and cmp_error as outputs. +// 1.2 7/1/2009 Added EYE_TEST parameter for signal SI probing. +// 1.3 10/1/2009 Added dq_error_bytelane_cmp,cumlative_dq_lane_error signals for V6. +// Any comparison error on user read data bus are mapped back to +// dq bus. The cumulative_dq_lane_error accumulate any errors on +// DQ bus. And the dq_error_bytelane_cmp shows error during current +// command cycle. The error can be cleared by input signal "manual_clear_error". +// 1.4 7/29/10 Support virtex Back-to-back commands over user interface. +// +// 1/4/2012 Added vio_percent_write (instr_mode == 4) to +// let user specify percentage of write commands out of mix +// write/read commands. + +//***************************************************************************** +`timescale 1ps/1ps + +module mig_7series_v4_0_memc_traffic_gen # + ( + parameter TCQ = 100, // SIMULATION tCQ delay. + parameter FAMILY = "SPARTAN6", // "VIRTEX6", "SPARTAN6" + parameter MEM_TYPE = "DDR3", + parameter SIMULATION = "FALSE", + parameter tCK = 2500, + parameter nCK_PER_CLK = 4, // DRAM clock : MC clock + + parameter BL_WIDTH = 6, + parameter MEM_BURST_LEN = 8, // For VIRTEX6 Only in this traffic gen. + // This traffic gen doesn't support DDR3 OTF Burst mode. + + parameter PORT_MODE = "BI_MODE", // SPARTAN6: "BI_MODE", "WR_MODE", "RD_MODE" + // VIRTEX6: "BI_MODE" + parameter DATA_PATTERN = "DGEN_ALL", // "DGEN__HAMMER", "DGEN_WALING1","DGEN_WALING0","DGEN_ADDR","DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + parameter CMD_PATTERN = "CGEN_ALL", // "CGEN_RPBS","CGEN_FIXED", "CGEN_BRAM", "CGEN_SEQUENTIAL", "CGEN_ALL", + + parameter ADDR_WIDTH = 30, // Spartan 6 Addr width is 30 + + parameter BANK_WIDTH = 3, + + parameter CMP_DATA_PIPE_STAGES = 0, // parameter for MPMC, it should always set to 0 + + // memory type specific + parameter MEM_COL_WIDTH = 10, // memory column width + parameter NUM_DQ_PINS = 16, // Spartan 6 Options: 4,8,16; + // Virtex 6 DDR2/DDR3 Options: 8,16,24,32,.....144 + + parameter SEL_VICTIM_LINE = 3, // SEL_VICTIM_LINE LINE is one of the DQ pins is selected to be different than hammer pattern + // SEL_VICTIM_LINE is only for V6. + // Virtex 6 option: 8,9,16,17,32,36,64,72 + parameter DWIDTH = NUM_DQ_PINS*2*nCK_PER_CLK, //NUM_DQ_PINS*4, // Spartan 6 Options: 32,64,128; + // Virtex 6 Always: 4* NUM_DQ_PINS + + + // the following parameter is to limit the range of generated PRBS Address + // + // e.g PRBS_SADDR_MASK_POS = 32'h0000_7000 the bit 14:12 of PRBS_SADDR will be ORed with + // PRBS_SADDR = 32'h0000_5000 the LFSR[14:12] to add the starting address offset. + + // PRBS_EADDR = 32'h0000_7fff + // PRBS_EADDR_MASK_POS = 32'hffff_7000 => mark all the leading 0's in PRBS_EADDR to 1 to + // zero out the LFSR[31:15] + + parameter PRBS_EADDR_MASK_POS = 32'hFFFFD000, + parameter PRBS_SADDR_MASK_POS = 32'h00002000, + parameter PRBS_EADDR = 32'h00002000, + parameter PRBS_SADDR = 32'h00005000, + parameter EYE_TEST = "FALSE" // set EYE_TEST = "TRUE" to probe memory signals. + // Traffic Generator will only write to one single location and no + // read transactions will be generated. + + + ) + + ( + + input clk_i, + input rst_i, + input run_traffic_i, + input single_operation, + input manual_clear_error, + input [5:0] cmds_gap_delay_value, // control delay gap between each sucessive + input [3:0] vio_instr_mode_value, + input [3:0] vio_percent_write, + // burst commands. + + // *** runtime parameter *** + input mem_pattern_init_done_i, + input [31:0] start_addr_i, // define the start of address + input [31:0] end_addr_i, // define upper limit addressboundary + input [31:0] cmd_seed_i, // seed for cmd PRBS generators + input [31:0] data_seed_i, // data seed will be added to generated address + // for PRBS data generation + // seed for cmd PRBS generators + input load_seed_i, // when asserted the cmd_seed and data_seed inputs will be registered. + + // upper layer inputs to determine the command bus and data pattern + // internal traffic generator initialize the memory with + input [2:0] addr_mode_i, // "00" = bram; takes the address from bram interface + // "01" = fixed address from the fixed_addr input + // "10" = psuedo ramdom pattern; generated from internal 64 bit LFSR + // "11" = sequential + + + // for each instr_mode, traffic gen fill up with a predetermined pattern before starting the instr_pattern that defined + // in the instr_mode input. The runtime mode will be automatically loaded inside when it is in + input [3:0] instr_mode_i, // "0000" = BRAM + // "0001" = Fixed; takes instruction from bram output + // "0010" = R/W + // "0011" = RP/WP + // "0100" = R/RP/W/WP + // "0101" = R/RP/W/WP/REF + // "0110" = PRBS + // "1111" = Read Only from Address 0 . Expecting phy calibration data pattern. + + + input [1:0] bl_mode_i, // "00" = bram; takes the burst length from bram output + // "01" = fixed , takes the burst length from the fixed_bl input + // "10" = psuedo ramdom pattern; generated from internal 16 bit LFSR + + input [3:0] data_mode_i, // "000" = address as data + // "001" = hammer + // "010" = neighbour + // "011" = prbs + // "100" = walking 0's + // "101" = walking 1's + // "110" = + // "111" = + + input wr_data_mask_gen_i, // "1": turn on wr_data_mask generation + // random follow by walking 1's + input mode_load_i, + + // fixed pattern inputs interface + input [BL_WIDTH - 1:0] fixed_bl_i, // range from 1 to 64 + input [2:0] fixed_instr_i, //RD 3'b001 + //RDP 3'b011 + //WR 3'b000 + //WRP 3'b010 + //REFRESH 3'b100 + + + input [31:0] fixed_addr_i, // only upper 30 bits will be used + input [31:0] fixed_data_i, // + + input [31:0] simple_data0 , + input [31:0] simple_data1 , + input [31:0] simple_data2 , + input [31:0] simple_data3 , + input [31:0] simple_data4 , + input [31:0] simple_data5 , + input [31:0] simple_data6 , + input [31:0] simple_data7 , + + + // BRAM interface. + // bram bus formats: + // Only SP6 has been tested. + input [38:0] bram_cmd_i, // {{bl}, {cmd}, {address[28:2]}} + input bram_valid_i, + output bram_rdy_o, // + + ///////////////////////////////////////////////////////////////////////////// + // MCB INTERFACE + // interface to mcb command port + output memc_cmd_en_o, + output [2:0] memc_cmd_instr_o, + output [31:0] memc_cmd_addr_o, + output [5:0] memc_cmd_bl_o, // this output is for Spartan 6 + + input memc_cmd_full_i, + // interface to qdr interface + output qdr_wr_cmd_o, + output qdr_rd_cmd_o, + + // interface to mcb wr data port + output memc_wr_en_o, + output [DWIDTH-1:0] memc_wr_data_o, + output memc_wr_data_end_o, + output [(DWIDTH/8) - 1:0] memc_wr_mask_o, + + input memc_wr_full_i, + + // interface to mcb rd data port + output memc_rd_en_o, + input [DWIDTH-1:0] memc_rd_data_i, + input memc_rd_empty_i, + ///////////////////////////////////////////////////////////////////////////// + // status feedback + input counts_rst, + output reg [47:0] wr_data_counts, + output reg [47:0] rd_data_counts, + output cmp_error, + output cmp_data_valid, + output error, // asserted whenever the read back data is not correct. + output [64 + (2*DWIDTH - 1):0] error_status ,// TBD how signals mapped + output [DWIDTH-1:0] cmp_data, + output [DWIDTH-1:0] mem_rd_data, + + + // **** V6 Signals + output [NUM_DQ_PINS/8 - 1:0] dq_error_bytelane_cmp, // V6: real time compare error byte lane + output [NUM_DQ_PINS/8 - 1:0] cumlative_dq_lane_error, // V6: latched error byte lane that occure on + // first error + + //************************************************ + // DQ bit error debug signals. + + output [NUM_DQ_PINS - 1:0] cumlative_dq_r0_bit_error , + output [NUM_DQ_PINS - 1:0] cumlative_dq_f0_bit_error , + output [NUM_DQ_PINS - 1:0] cumlative_dq_r1_bit_error , + output [NUM_DQ_PINS - 1:0] cumlative_dq_f1_bit_error , + + output [NUM_DQ_PINS-1:0] dq_r0_bit_error_r, + output [NUM_DQ_PINS-1:0] dq_f0_bit_error_r, + output [NUM_DQ_PINS-1:0] dq_r1_bit_error_r, + output [NUM_DQ_PINS-1:0] dq_f1_bit_error_r, + + + + // + output [NUM_DQ_PINS - 1:0] dq_r0_read_bit, // rising 0 read bits from mc + output [NUM_DQ_PINS - 1:0] dq_f0_read_bit, // falling 0 read bits from mc + output [NUM_DQ_PINS - 1:0] dq_r1_read_bit, // rising 1 read bits from mc + output [NUM_DQ_PINS - 1:0] dq_f1_read_bit, // falling 1 read bits from mc + output [NUM_DQ_PINS - 1:0] dq_r0_expect_bit, // rising 0 read bits from internal expect data generator + output [NUM_DQ_PINS - 1:0] dq_f0_expect_bit, // falling 0 read bits from internal expect data generator + output [NUM_DQ_PINS - 1:0] dq_r1_expect_bit, // rising 1 read bits from internal expect data generator + output [NUM_DQ_PINS - 1:0] dq_f1_expect_bit, // falling 1 read bits from internal expect data generator + output [31:0] error_addr // the command address of the returned data. + // Can use dq_rx_bit_error as write enable to latch the address. + + + + ); + + + wire [DWIDTH-1:0] rdpath_rd_data_i; + wire rdpath_data_valid_i; + wire memc_wr_en; + wire cmd2flow_valid; + wire [2:0] cmd2flow_cmd; + wire [31:0] cmd2flow_addr; + wire [BL_WIDTH-1:0] cmd2flow_bl; + wire last_word_wr; + wire flow2cmd_rdy; + wire [31:0] wr_addr; + wire [31:0] rd_addr; + wire [BL_WIDTH-1:0] wr_bl; + wire [BL_WIDTH-1:0] rd_bl; + reg run_traffic_reg; +wire wr_validB, wr_valid,wr_validC; +wire [31:0] bram_addr_i; +wire [2:0] bram_instr_i; +wire [5:0] bram_bl_i; +reg AC2_G_E2,AC1_G_E1,AC3_G_E3; +reg upper_end_matched; +reg [7:0] end_boundary_addr; +reg lower_end_matched; +wire [31:0] addr_o; +wire [31:0] m_addr; +wire dcount_rst; +wire [31:0] rd_addr_error; +wire rd_rdy; +//wire cmp_error; +wire cmd_full; +wire rd_mdata_fifo_rd_en; +wire rd_mdata_fifo_afull; +reg memc_wr_en_r; +wire memc_wr_data_end; +reg [DWIDTH-1:0] memc_rd_data_r; + +wire [DWIDTH-1:0] memc_wr_data; +reg [DWIDTH-1:0] memc_wr_data_r; + + +wire wr_path_data_rdy_i; +// +wire [31:0] cmp_addr; +wire [5:0] cmp_bl; + + +reg [9:0] rst_ra,rst_rb /* synthesis syn_maxfan = 10 */; +wire mem_init_done; +reg [3:0] data_mode_r_a; +reg [3:0] data_mode_r_b; +reg [3:0] data_mode_r_c; +reg error_access_range = 1'b0; + +wire [BL_WIDTH-1:0] memc_bl_o; + +// generic parameters and need to be tested in both MCB mode and V7 Virtext Mode. + + + initial begin + if((MEM_BURST_LEN !== 4) && (MEM_BURST_LEN !== 8) && (MEM_BURST_LEN !== 2)) + begin: NO_OTF_Warning_Error + $display("Current Traffic Generator logic does not support OTF (On The Fly) Burst Mode!"); + $stop; + end + else + begin: Dummy1 + + end + end + +always @ (memc_cmd_en_o,memc_cmd_addr_o,memc_cmd_bl_o,start_addr_i,end_addr_i) +if (memc_cmd_en_o && + ((FAMILY == "SPARTAN6" && memc_cmd_addr_o + 20) > end_addr_i[ADDR_WIDTH-1:0]) || + ((FAMILY == "VIRTEX6" && memc_cmd_addr_o ) > end_addr_i[ADDR_WIDTH-1:0]) + ) + begin + $display("Error ! Command access beyond address range"); + $display("Assigned Address Space: Start_Address = 0x%h ; End_Addr = 0x%h",start_addr_i,end_addr_i); + $display("Attempted area = 0x%h",memc_cmd_addr_o + (memc_cmd_bl_o - 1) * (DWIDTH/8)); + + $stop; + end +else +begin: No_Error_Display + +end + +assign memc_cmd_bl_o = memc_bl_o[5:0]; + + + + + +always @ (posedge clk_i) +begin + data_mode_r_a <= #TCQ data_mode_i; + data_mode_r_b <= #TCQ data_mode_i; + data_mode_r_c <= #TCQ data_mode_i; +end + + + + +//reg GSR = 1'b0; + always @(rst_i) + begin + rst_ra = {rst_i,rst_i,rst_i,rst_i,rst_i,rst_i,rst_i,rst_i,rst_i,rst_i}; + rst_rb = {rst_i,rst_i,rst_i,rst_i,rst_i,rst_i,rst_i,rst_i,rst_i,rst_i}; + + end + // register it . Just in case the calling modules didn't syn with clk_i + always @(posedge clk_i) + begin + run_traffic_reg <= #TCQ run_traffic_i; + end + + assign bram_addr_i = {bram_cmd_i[29:0],2'b00}; + assign bram_instr_i = bram_cmd_i[32:30]; + assign bram_bl_i[5:0] = bram_cmd_i[38:33]; //41 + +// +// +reg COutc,COutd; + +assign dcount_rst = counts_rst | rst_ra[0]; +always @ (posedge clk_i) +begin + if (dcount_rst) + wr_data_counts <= #TCQ 'b0; + else if (memc_wr_en) + {COutc,wr_data_counts} <= #TCQ wr_data_counts + DWIDTH/8; + +end + +always @ (posedge clk_i) +begin + if (dcount_rst) + rd_data_counts <= #TCQ 'b0; + else if (memc_rd_en_o) + {COutd,rd_data_counts} <= #TCQ rd_data_counts + DWIDTH/8; + +end + + + +// **** for debug +// this part of logic is to check there are no commands been duplicated or dropped +// in the cmd_flow_control logic +generate +if (SIMULATION == "TRUE") +begin: cmd_check +wire fifo_error; +wire [31:0] xfer_addr; +wire [BL_WIDTH-1:0] xfer_cmd_bl; +wire cmd_fifo_rd; + +assign cmd_fifo_wr = flow2cmd_rdy & cmd2flow_valid; + +assign fifo_error = ( xfer_addr != memc_cmd_addr_o) ? 1'b1: 1'b0; + + +wire cmd_fifo_empty; +//assign cmd_fifo_rd = memc_cmd_en_o & ~memc_cmd_full_i & ~cmd_fifo_empty; +assign cmd_fifo_rd = memc_cmd_en_o & ~cmd_fifo_empty; + + + mig_7series_v4_0_afifo # + (.TCQ (TCQ), + .DSIZE (32+BL_WIDTH), + .FIFO_DEPTH (16), + .ASIZE (4), + .SYNC (1) // set the SYNC to 1 because rd_clk = wr_clk to reduce latency + + + ) + cmd_fifo + ( + .wr_clk (clk_i), + .rst (rst_ra[0]), + .wr_en (cmd_fifo_wr), + .wr_data ({cmd2flow_bl,cmd2flow_addr}), + .rd_en (cmd_fifo_rd), + .rd_clk (clk_i), + .rd_data ({xfer_cmd_bl,xfer_addr}), + .full (cmd_fifo_full), + .almost_full (), + .empty (cmd_fifo_empty) + + ); + + +end +else +begin + assign fifo_error = 1'b0; +end + +endgenerate + +reg [31:0] end_addr_r; + always @ (posedge clk_i) + end_addr_r <= end_addr_i; + + + mig_7series_v4_0_cmd_gen + #( + .TCQ (TCQ), + .FAMILY (FAMILY) , + .MEM_TYPE (MEM_TYPE), + + .BL_WIDTH (BL_WIDTH), + .nCK_PER_CLK (nCK_PER_CLK), + + .MEM_BURST_LEN (MEM_BURST_LEN), + .PORT_MODE (PORT_MODE), + .BANK_WIDTH (BANK_WIDTH), + .NUM_DQ_PINS (NUM_DQ_PINS), + .DATA_PATTERN (DATA_PATTERN), + .CMD_PATTERN (CMD_PATTERN), + .ADDR_WIDTH (ADDR_WIDTH), + .DWIDTH (DWIDTH), + .MEM_COL_WIDTH (MEM_COL_WIDTH), + .PRBS_EADDR_MASK_POS (PRBS_EADDR_MASK_POS ), + .PRBS_SADDR_MASK_POS (PRBS_SADDR_MASK_POS ), + .PRBS_EADDR (PRBS_EADDR), + .PRBS_SADDR (PRBS_SADDR ) + + ) + u_c_gen + ( + .clk_i (clk_i), + .rst_i (rst_ra), + .reading_rd_data_i (memc_rd_en_o), + .vio_instr_mode_value (vio_instr_mode_value), + .vio_percent_write (vio_percent_write), + .single_operation (single_operation), + .run_traffic_i (run_traffic_reg), + .mem_pattern_init_done_i (mem_pattern_init_done_i), + .start_addr_i (start_addr_i), + .end_addr_i (end_addr_r), + .cmd_seed_i (cmd_seed_i), + .load_seed_i (load_seed_i), + .addr_mode_i (addr_mode_i), + .data_mode_i (data_mode_r_a), + + .instr_mode_i (instr_mode_i), + .bl_mode_i (bl_mode_i), + .mode_load_i (mode_load_i), + // fixed pattern inputs interface + .fixed_bl_i (fixed_bl_i), + .fixed_addr_i (fixed_addr_i), + .fixed_instr_i (fixed_instr_i), + // BRAM FIFO input : Holist vector inputs + + .bram_addr_i (bram_addr_i), + .bram_instr_i (bram_instr_i ), + .bram_bl_i (bram_bl_i ), + .bram_valid_i (bram_valid_i ), + .bram_rdy_o (bram_rdy_o ), + + .rdy_i (flow2cmd_rdy), + .instr_o (cmd2flow_cmd), + .addr_o (cmd2flow_addr), + .bl_o (cmd2flow_bl), +// .m_addr_o (m_addr), + .cmd_o_vld (cmd2flow_valid), + .mem_init_done_o (mem_init_done) + + ); + +assign memc_cmd_addr_o = addr_o; + + +assign qdr_wr_cmd_o = memc_wr_en_r; + +assign cmd_full = memc_cmd_full_i; + mig_7series_v4_0_memc_flow_vcontrol # + ( + .TCQ (TCQ), + .nCK_PER_CLK (nCK_PER_CLK), + + .BL_WIDTH (BL_WIDTH), + .MEM_BURST_LEN (MEM_BURST_LEN), + .NUM_DQ_PINS (NUM_DQ_PINS), + .FAMILY (FAMILY), + .MEM_TYPE (MEM_TYPE) + + ) + memc_control + ( + .clk_i (clk_i), + .rst_i (rst_ra), + .data_mode_i (data_mode_r_b), + .cmds_gap_delay_value (cmds_gap_delay_value), + .mcb_wr_full_i (memc_wr_full_i), + .cmd_rdy_o (flow2cmd_rdy), + .cmd_valid_i (cmd2flow_valid), + .cmd_i (cmd2flow_cmd), + + + .mem_pattern_init_done_i (mem_pattern_init_done_i), + + .addr_i (cmd2flow_addr), + .bl_i (cmd2flow_bl), + // interface to memc_cmd port + .mcb_cmd_full (cmd_full), + .cmd_o (memc_cmd_instr_o), + .addr_o (addr_o), + .bl_o (memc_bl_o), + .cmd_en_o (memc_cmd_en_o), + .qdr_rd_cmd_o (qdr_rd_cmd_o), + // interface to write data path module + + .mcb_wr_en_i (memc_wr_en), + .last_word_wr_i (last_word_wr), + .wdp_rdy_i (wr_rdy),//(wr_rdy), + .wdp_valid_o (wr_valid), + .wdp_validB_o (wr_validB), + .wdp_validC_o (wr_validC), + + .wr_addr_o (wr_addr), + .wr_bl_o (wr_bl), + // interface to read data path module + + .rdp_rdy_i (rd_rdy),// (rd_rdy), + .rdp_valid_o (rd_valid), + .rd_addr_o (rd_addr), + .rd_bl_o (rd_bl) + + ); + + + /* afifo # + ( + + .TCQ (TCQ), + .DSIZE (DWIDTH), + .FIFO_DEPTH (32), + .ASIZE (5), + .SYNC (1) // set the SYNC to 1 because rd_clk = wr_clk to reduce latency + + + ) + rd_mdata_fifo + ( + .wr_clk (clk_i), + .rst (rst_rb[0]), + .wr_en (!memc_rd_empty_i), + .wr_data (memc_rd_data_i), + .rd_en (memc_rd_en_o), + .rd_clk (clk_i), + .rd_data (rd_v6_mdata), + .full (), + .almost_full (rd_mdata_fifo_afull), + .empty (rd_mdata_fifo_empty) + + ); +*/ + +wire cmd_rd_en; + +assign cmd_rd_en = memc_cmd_en_o; + + + + +assign rdpath_data_valid_i =!memc_rd_empty_i ; +assign rdpath_rd_data_i = memc_rd_data_i ; + + +generate +if (PORT_MODE == "RD_MODE" || PORT_MODE == "BI_MODE") +begin : RD_PATH + mig_7series_v4_0_read_data_path + #( + .TCQ (TCQ), + .FAMILY (FAMILY) , + .MEM_TYPE (MEM_TYPE), + .BL_WIDTH (BL_WIDTH), + .nCK_PER_CLK (nCK_PER_CLK), + + .MEM_BURST_LEN (MEM_BURST_LEN), + .START_ADDR (PRBS_SADDR), + .CMP_DATA_PIPE_STAGES (CMP_DATA_PIPE_STAGES), + .ADDR_WIDTH (ADDR_WIDTH), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .DATA_PATTERN (DATA_PATTERN), + .DWIDTH (DWIDTH), + .NUM_DQ_PINS (NUM_DQ_PINS), + .MEM_COL_WIDTH (MEM_COL_WIDTH), + .SIMULATION (SIMULATION) + + ) + read_data_path + ( + .clk_i (clk_i), + .rst_i (rst_rb), + .manual_clear_error (manual_clear_error), + .cmd_rdy_o (rd_rdy), + .cmd_valid_i (rd_valid), + .memc_cmd_full_i (memc_cmd_full_i), + .prbs_fseed_i (data_seed_i), + .cmd_sent (memc_cmd_instr_o), + .bl_sent (memc_bl_o[5:0]), + .cmd_en_i (cmd_rd_en), + .vio_instr_mode_value (vio_instr_mode_value), + + .data_mode_i (data_mode_r_b), + .fixed_data_i (fixed_data_i), + .simple_data0 (simple_data0), + .simple_data1 (simple_data1), + .simple_data2 (simple_data2), + .simple_data3 (simple_data3), + .simple_data4 (simple_data4), + .simple_data5 (simple_data5), + .simple_data6 (simple_data6), + .simple_data7 (simple_data7), + + .mode_load_i (mode_load_i), + + .addr_i (rd_addr), + .bl_i (rd_bl), + .data_rdy_o (memc_rd_en_o), + + .data_valid_i (rdpath_data_valid_i), + .data_i (rdpath_rd_data_i), + + + .data_error_o (cmp_error), + .cmp_data_valid (cmp_data_valid), + .cmp_data_o (cmp_data), + .rd_mdata_o (mem_rd_data ), + .cmp_addr_o (cmp_addr), + .cmp_bl_o (cmp_bl), + .dq_error_bytelane_cmp (dq_error_bytelane_cmp), + + //**************************************************** + .cumlative_dq_lane_error_r (cumlative_dq_lane_error), + .cumlative_dq_r0_bit_error_r (cumlative_dq_r0_bit_error), + .cumlative_dq_f0_bit_error_r (cumlative_dq_f0_bit_error), + .cumlative_dq_r1_bit_error_r (cumlative_dq_r1_bit_error), + .cumlative_dq_f1_bit_error_r (cumlative_dq_f1_bit_error), + .dq_r0_bit_error_r (dq_r0_bit_error_r), + .dq_f0_bit_error_r (dq_f0_bit_error_r), + .dq_r1_bit_error_r (dq_r1_bit_error_r), + .dq_f1_bit_error_r (dq_f1_bit_error_r), + + .dq_r0_read_bit_r (dq_r0_read_bit), + .dq_f0_read_bit_r (dq_f0_read_bit), + .dq_r1_read_bit_r (dq_r1_read_bit), + .dq_f1_read_bit_r (dq_f1_read_bit), + .dq_r0_expect_bit_r (dq_r0_expect_bit), + .dq_f0_expect_bit_r (dq_f0_expect_bit ), + .dq_r1_expect_bit_r (dq_r1_expect_bit), + .dq_f1_expect_bit_r (dq_f1_expect_bit ), + .error_addr_o (error_addr) + + + + + + ); + +end +else +begin + assign cmp_error = 1'b0; + assign cmp_data_valid = 1'b0; + assign cmp_data ='b0; + +end + +endgenerate + + + +assign wr_path_data_rdy_i = !(memc_wr_full_i ) ;//& (~memc_cmd_full_i); + +generate +if (PORT_MODE == "WR_MODE" || PORT_MODE == "BI_MODE") +begin : WR_PATH + + mig_7series_v4_0_write_data_path + #( + + .TCQ (TCQ), + .FAMILY (FAMILY), + .nCK_PER_CLK (nCK_PER_CLK), + .MEM_TYPE (MEM_TYPE), + + .START_ADDR (PRBS_SADDR), + .BL_WIDTH (BL_WIDTH), + .MEM_BURST_LEN (MEM_BURST_LEN), + .ADDR_WIDTH (ADDR_WIDTH), + .DATA_PATTERN (DATA_PATTERN), + .DWIDTH (DWIDTH), + .NUM_DQ_PINS (NUM_DQ_PINS), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .MEM_COL_WIDTH (MEM_COL_WIDTH), + .EYE_TEST (EYE_TEST) + + ) + write_data_path + ( + .clk_i(clk_i), + .rst_i (rst_rb), + .cmd_rdy_o (wr_rdy), + .cmd_valid_i (wr_valid), + .cmd_validB_i (wr_validB), + .cmd_validC_i (wr_validC), + .prbs_fseed_i (data_seed_i), + .mode_load_i (mode_load_i), + .wr_data_mask_gen_i (wr_data_mask_gen_i), + .mem_init_done_i (mem_init_done), + + + .data_mode_i (data_mode_r_c), + .last_word_wr_o (last_word_wr), + .fixed_data_i (fixed_data_i), + .simple_data0 (simple_data0), + .simple_data1 (simple_data1), + .simple_data2 (simple_data2), + .simple_data3 (simple_data3), + .simple_data4 (simple_data4), + .simple_data5 (simple_data5), + .simple_data6 (simple_data6), + .simple_data7 (simple_data7), + + + .addr_i (wr_addr), + .bl_i (wr_bl), + .memc_cmd_full_i (memc_cmd_full_i), + .data_rdy_i (wr_path_data_rdy_i), + .data_valid_o (memc_wr_en), + .data_o (memc_wr_data), + .data_mask_o (memc_wr_mask_o), + .data_wr_end_o (memc_wr_data_end) + ); + +end +else +begin + assign memc_wr_en = 1'b0; + assign memc_wr_data = 'b0; + assign memc_wr_mask_o = 'b0; + +end + +endgenerate + +generate +if (MEM_TYPE != "QDR2PLUS" && (FAMILY == "VIRTEX6" || FAMILY == "SPARTAN6" )) + begin: nonQDR_WR + assign memc_wr_en_o = memc_wr_en; + assign memc_wr_data_o = memc_wr_data ; + assign memc_wr_data_end_o = (nCK_PER_CLK == 4) ? memc_wr_data_end: memc_wr_data_end; + end +// QDR +else + begin: QDR_WR + + always @ (posedge clk_i) + memc_wr_data_r <= memc_wr_data; + + assign memc_wr_en_o = memc_wr_en; + assign memc_wr_data_o = memc_wr_data_r ; + + assign memc_wr_data_end_o = memc_wr_data_end; + end +endgenerate + +//QDR +always @ (posedge clk_i) +begin + +if (memc_wr_full_i) + begin + memc_wr_en_r <= 1'b0; + end +else + begin + memc_wr_en_r <= memc_wr_en; + end + +end + + mig_7series_v4_0_tg_status + #( + + .TCQ (TCQ), + .DWIDTH (DWIDTH) + ) + tg_status + ( + .clk_i (clk_i), + .rst_i (rst_ra[2]), + .manual_clear_error (manual_clear_error), + .data_error_i (cmp_error), + .cmp_data_i (cmp_data), + .rd_data_i (mem_rd_data ), + .cmp_addr_i (cmp_addr), + .cmp_bl_i (cmp_bl), + .mcb_cmd_full_i (memc_cmd_full_i), + .mcb_wr_full_i (memc_wr_full_i), + .mcb_rd_empty_i (memc_rd_empty_i), + .error_status (error_status), + .error (error) + ); + + +endmodule // memc_traffic_gen diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_rd_data_gen.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_rd_data_gen.v new file mode 100755 index 0000000..fa689fd --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_rd_data_gen.v @@ -0,0 +1,382 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: rd_data_gen.v +// /___/ /\ Date Last Modified: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This module has all the timing control for generating "compare data" +// to compare the read data from memory. +//Reference: +//Revision History: +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_rd_data_gen # + ( + parameter TCQ = 100, + parameter FAMILY = "VIRTEX7", // "SPARTAN6", "VIRTEX6" + parameter MEM_TYPE = "DDR3", + parameter nCK_PER_CLK = 4, // DRAM clock : MC clock + + parameter MEM_BURST_LEN = 8, + parameter START_ADDR = 32'h00000000, + + parameter ADDR_WIDTH = 32, + parameter BL_WIDTH = 6, + parameter DWIDTH = 32, + parameter DATA_PATTERN = "DGEN_ALL", //"DGEN__HAMMER", "DGEN_WALING1","DGEN_WALING0","DGEN_ADDR","DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + parameter NUM_DQ_PINS = 8, + parameter SEL_VICTIM_LINE = 3, // VICTIM LINE is one of the DQ pins is selected to be different than hammer pattern + + parameter COLUMN_WIDTH = 10 + + ) + ( + input clk_i, // + input [4:0] rst_i, + input [31:0] prbs_fseed_i, + input [3:0] data_mode_i, // "00" = bram; + input mode_load_i, + input [3:0] vio_instr_mode_value, + + output cmd_rdy_o, // ready to receive command. It should assert when data_port is ready at the // beginning and will be deasserted once see the cmd_valid_i is asserted. + // And then it should reasserted when + // it is generating the last_word. + input cmd_valid_i, // when both cmd_valid_i and cmd_rdy_o is high, the command is valid. + output reg cmd_start_o, +// input [ADDR_WIDTH-1:0] m_addr_i, // generated address used to determine data pattern. + + input [31:0] simple_data0 , + input [31:0] simple_data1 , + input [31:0] simple_data2 , + input [31:0] simple_data3 , + input [31:0] simple_data4 , + input [31:0] simple_data5 , + input [31:0] simple_data6 , + input [31:0] simple_data7 , + + + input [31:0] fixed_data_i, + input [ADDR_WIDTH-1:0] addr_i, // generated address used to determine data pattern. + input [BL_WIDTH-1:0] bl_i, // generated burst length for control the burst data + output user_bl_cnt_is_1_o, + input data_rdy_i, // connect from mcb_wr_full when used as wr_data_gen in sp6 + // connect from mcb_rd_empty when used as rd_data_gen in sp6 + // connect from rd_data_valid in v6 + // When both data_rdy and data_valid is asserted, the ouput data is valid. + output reg data_valid_o, // connect to wr_en or rd_en and is asserted whenever the + // pattern is available. +// output [DWIDTH-1:0] data_o // generated data pattern NUM_DQ_PINS*nCK_PER_CLK*2-1 + output [31:0] tg_st_addr_o, + output [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] data_o // generated data pattern NUM_DQ_PINS*nCK_PER_CLK*2-1 + +); +// + + + +wire [31:0] prbs_data; +reg cmd_start; +reg [31:0] adata; +reg [31:0] hdata; +reg [31:0] ndata; +reg [31:0] w1data; +reg [NUM_DQ_PINS*4-1:0] v6_w1data; + +reg [31:0] w0data; +reg [DWIDTH-1:0] data; +reg cmd_rdy; +reg [BL_WIDTH:0]user_burst_cnt; +reg [31:0] w3data; +reg prefetch; +assign data_port_fifo_rdy = data_rdy_i; + + + + +reg user_bl_cnt_is_1; +assign user_bl_cnt_is_1_o = user_bl_cnt_is_1; +always @ (posedge clk_i) +begin +if (data_port_fifo_rdy) + if ((user_burst_cnt == 2 && FAMILY == "SPARTAN6") + || (user_burst_cnt == 2 && FAMILY == "VIRTEX6") + ) + + user_bl_cnt_is_1 <= #TCQ 1'b1; + else + user_bl_cnt_is_1 <= #TCQ 1'b0; +end + + +//reg cmd_start_b; +always @(cmd_valid_i,data_port_fifo_rdy,cmd_rdy,user_bl_cnt_is_1,prefetch) +begin + + cmd_start = cmd_valid_i & cmd_rdy & ( data_port_fifo_rdy | prefetch) ; + cmd_start_o = cmd_valid_i & cmd_rdy & ( data_port_fifo_rdy | prefetch) ; + +end + + + + +// counter to count user burst length +// verilint STARC-2.2.3.3 off +always @( posedge clk_i) +begin + if ( rst_i[0] ) + user_burst_cnt <= #TCQ 'd0; + else if(cmd_valid_i && cmd_rdy && ( data_port_fifo_rdy | prefetch) ) begin + + // SPATAN6 has maximum of burst length of 64. + if (FAMILY == "SPARTAN6" && bl_i[5:0] == 6'b000000) + begin + user_burst_cnt[6:0] <= #TCQ 7'd64; + user_burst_cnt[BL_WIDTH:7] <= 'b0; + end + else if (FAMILY == "VIRTEX6" && bl_i[BL_WIDTH - 1:0] == {BL_WIDTH {1'b0}}) + user_burst_cnt <= #TCQ {1'b1, {BL_WIDTH{1'b0}}}; + else + user_burst_cnt <= #TCQ {1'b0,bl_i }; + end + else if(data_port_fifo_rdy) + if (user_burst_cnt != 6'd0) + user_burst_cnt <= #TCQ user_burst_cnt - 1'b1; + else + user_burst_cnt <= #TCQ 'd0; + +end +// verilint STARC-2.2.3.3 on + +// cmd_rdy_o assert when the dat fifo is not full and deassert once cmd_valid_i +// is assert and reassert during the last data + +//data_valid_o logic + +always @( posedge clk_i) +begin + if ( rst_i[0] ) + prefetch <= #TCQ 1'b1; + else if (data_port_fifo_rdy || cmd_start) + prefetch <= #TCQ 1'b0; + + else if (user_burst_cnt == 0 && ~data_port_fifo_rdy) + prefetch <= #TCQ 1'b1; + +end +assign cmd_rdy_o = cmd_rdy ; + +always @( posedge clk_i) +begin + if ( rst_i[0] ) + cmd_rdy <= #TCQ 1'b1; + + else if (cmd_valid_i && cmd_rdy && (data_port_fifo_rdy || prefetch )) + cmd_rdy <= #TCQ 1'b0; + else if ((data_port_fifo_rdy && user_burst_cnt == 2 && vio_instr_mode_value != 7 ) || + (data_port_fifo_rdy && user_burst_cnt == 1 && vio_instr_mode_value == 7 )) + + cmd_rdy <= #TCQ 1'b1; + + +end + + + + +always @ (data_port_fifo_rdy) +if (FAMILY == "SPARTAN6") + data_valid_o = data_port_fifo_rdy; +else + data_valid_o = data_port_fifo_rdy; + + +/* +generate +if (FAMILY == "SPARTAN6") +begin : SP6_DGEN +s7ven_data_gen # + +( + .TCQ (TCQ), + .DMODE ("READ"), + .nCK_PER_CLK (nCK_PER_CLK), + .FAMILY (FAMILY), + + .ADDR_WIDTH (32 ), + .BL_WIDTH (BL_WIDTH ), + .MEM_BURST_LEN (MEM_BURST_LEN), + .DWIDTH (DWIDTH ), + .DATA_PATTERN (DATA_PATTERN ), + .NUM_DQ_PINS (NUM_DQ_PINS ), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .START_ADDR (START_ADDR), + + .COLUMN_WIDTH (COLUMN_WIDTH) + + ) + s7ven_data_gen + ( + .clk_i (clk_i ), + .rst_i (rst_i[1] ), + .data_rdy_i (data_rdy_i ), + .mem_init_done_i (1'b1), + .wr_data_mask_gen_i (1'b0), + + .prbs_fseed_i (prbs_fseed_i), + .mode_load_i (mode_load_i), + .data_mode_i (data_mode_i ), + .cmd_startA (cmd_start ), + .cmd_startB (cmd_start ), + .cmd_startC (cmd_start ), + .cmd_startD (cmd_start ), + .cmd_startE (cmd_start ), + .m_addr_i (addr_i),//(m_addr_i ), + + .simple_data0 (simple_data0), + .simple_data1 (simple_data1), + .simple_data2 (simple_data2), + .simple_data3 (simple_data3), + .simple_data4 (simple_data4), + .simple_data5 (simple_data5), + .simple_data6 (simple_data6), + .simple_data7 (simple_data7), + .fixed_data_i (fixed_data_i), + + .addr_i (addr_i ), + .user_burst_cnt (user_burst_cnt), + .fifo_rdy_i (data_port_fifo_rdy ), + .data_o (data_o ), + .data_mask_o (), + + .bram_rd_valid_o () + ); + +end + +endgenerate*/ +//generate +//if (FAMILY == "VIRTEX6") +//begin : V_DGEN +mig_7series_v4_0_s7ven_data_gen # +( + .TCQ (TCQ), + .DMODE ("READ"), + .nCK_PER_CLK (nCK_PER_CLK), + .FAMILY (FAMILY), + .MEM_TYPE (MEM_TYPE), + + .ADDR_WIDTH (32 ), + .BL_WIDTH (BL_WIDTH ), + .MEM_BURST_LEN (MEM_BURST_LEN), + .DWIDTH (DWIDTH ), + .DATA_PATTERN (DATA_PATTERN ), + .NUM_DQ_PINS (NUM_DQ_PINS ), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .START_ADDR (START_ADDR), + + .COLUMN_WIDTH (COLUMN_WIDTH) + + ) + s7ven_data_gen + ( + .clk_i (clk_i ), + .rst_i (rst_i[1] ), + .data_rdy_i (data_rdy_i ), + .mem_init_done_i (1'b1), + .wr_data_mask_gen_i (1'b0), + + .prbs_fseed_i (prbs_fseed_i), + .mode_load_i (mode_load_i), + .data_mode_i (data_mode_i ), + .cmd_startA (cmd_start ), + .cmd_startB (cmd_start ), + .cmd_startC (cmd_start ), + .cmd_startD (cmd_start ), + .cmd_startE (cmd_start ), + .m_addr_i (addr_i),//(m_addr_i ), + + .simple_data0 (simple_data0), + .simple_data1 (simple_data1), + .simple_data2 (simple_data2), + .simple_data3 (simple_data3), + .simple_data4 (simple_data4), + .simple_data5 (simple_data5), + .simple_data6 (simple_data6), + .simple_data7 (simple_data7), + .fixed_data_i (fixed_data_i), + + .addr_i (addr_i ), + .user_burst_cnt (user_burst_cnt), + .fifo_rdy_i (data_port_fifo_rdy ), + .data_o (data_o ), + .tg_st_addr_o (tg_st_addr_o), + .data_mask_o (), + + .bram_rd_valid_o () + ); + +//end +//endgenerate + + + + + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_read_data_path.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_read_data_path.v new file mode 100755 index 0000000..eb22e73 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_read_data_path.v @@ -0,0 +1,751 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: read_data_path.v +// /___/ /\ Date Last Modified: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This is top level of read path and also consist of comparison logic +// for read data. +//Reference: +//Revision History: 11/18 /2011 Fixed a localparam ER_WIDTH bug for QDR2+ case. +// 03/15/2012 Registered error_byte, error_bit to avoid false +// comparison when data_valid_i is deasserted. +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_read_data_path #( + parameter TCQ = 100, + parameter START_ADDR = 32'h00000000, + parameter nCK_PER_CLK = 4, // DRAM clock : MC clock + + parameter MEM_TYPE = "DDR3", + parameter FAMILY = "VIRTEX6", + parameter BL_WIDTH = 6, + parameter MEM_BURST_LEN = 8, + parameter ADDR_WIDTH = 32, + parameter CMP_DATA_PIPE_STAGES = 3, + parameter DATA_PATTERN = "DGEN_ALL", //"DGEN__HAMMER", "DGEN_WALING1","DGEN_WALING0","DGEN_ADDR","DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + parameter NUM_DQ_PINS = 8, + parameter DWIDTH = nCK_PER_CLK * 2 * NUM_DQ_PINS, + + parameter SEL_VICTIM_LINE = 3, // VICTIM LINE is one of the DQ pins is selected to be different than hammer pattern + + parameter MEM_COL_WIDTH = 10, + parameter SIMULATION = "FALSE" + + ) + ( + + + input clk_i, + input [9:0] rst_i, + input manual_clear_error, + output cmd_rdy_o, + input cmd_valid_i, + input memc_cmd_full_i, + input [31:0] prbs_fseed_i, + input mode_load_i, + input [3:0] vio_instr_mode_value, + + input [3:0] data_mode_i, + input [2:0] cmd_sent, + input [5:0] bl_sent , + input cmd_en_i , +// input [31:0] m_addr_i, + + input [31:0] simple_data0 , + input [31:0] simple_data1 , + input [31:0] simple_data2 , + input [31:0] simple_data3 , + input [31:0] simple_data4 , + input [31:0] simple_data5 , + input [31:0] simple_data6 , + input [31:0] simple_data7 , + + input [31:0] fixed_data_i, + input [31:0] addr_i, + input [BL_WIDTH-1:0] bl_i, + + + output data_rdy_o, + input data_valid_i, + input [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] data_i, + output data_error_o, //data_error on user data bus side + output [DWIDTH-1:0] cmp_data_o, + output [DWIDTH-1:0] rd_mdata_o , + output cmp_data_valid, + output [31:0] cmp_addr_o, + output [5 :0] cmp_bl_o, + output [NUM_DQ_PINS/8 - 1:0] dq_error_bytelane_cmp, // V6: real time compare error byte lane + output [NUM_DQ_PINS/8 - 1:0] cumlative_dq_lane_error_r, // V6: latched error byte lane that occure on + // first error + output reg [NUM_DQ_PINS - 1:0] cumlative_dq_r0_bit_error_r , + output reg [NUM_DQ_PINS - 1:0] cumlative_dq_f0_bit_error_r , + output reg [NUM_DQ_PINS - 1:0] cumlative_dq_r1_bit_error_r , + output reg [NUM_DQ_PINS - 1:0] cumlative_dq_f1_bit_error_r , + + output reg [NUM_DQ_PINS-1:0] dq_r0_bit_error_r, + output reg [NUM_DQ_PINS-1:0] dq_f0_bit_error_r, + output reg [NUM_DQ_PINS-1:0] dq_r1_bit_error_r, + output reg [NUM_DQ_PINS-1:0] dq_f1_bit_error_r, + + + output reg [NUM_DQ_PINS - 1:0] dq_r0_read_bit_r, + output reg [NUM_DQ_PINS - 1:0] dq_f0_read_bit_r, + output reg [NUM_DQ_PINS - 1:0] dq_r1_read_bit_r, + output reg [NUM_DQ_PINS - 1:0] dq_f1_read_bit_r, + output reg [NUM_DQ_PINS - 1:0] dq_r0_expect_bit_r, + output reg [NUM_DQ_PINS - 1:0] dq_f0_expect_bit_r, + output reg [NUM_DQ_PINS - 1:0] dq_r1_expect_bit_r, + output reg [NUM_DQ_PINS - 1:0] dq_f1_expect_bit_r, + output [31:0] error_addr_o + + + ); + + wire gen_rdy; + wire gen_valid; + wire [31:0] gen_addr; + wire [BL_WIDTH-1:0] gen_bl; + + wire cmp_rdy; + wire cmp_valid; + wire [31:0] cmp_addr; + wire [5:0] cmp_bl; + + reg data_error; + wire [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] cmp_data; + wire [31:0] tg_st_addr_o; + reg [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] cmp_data_r1,cmp_data_r2; + reg last_word_rd; + reg [5:0] bl_counter; + wire cmd_rdy; + wire user_bl_cnt_is_1; + wire data_rdy; + reg [DWIDTH:0] delayed_data; + wire rd_mdata_en; + reg [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] rd_data_r1; + reg [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] rd_data_r2; + reg force_wrcmd_gen; + reg wait_bl_end; + reg wait_bl_end_r1; +reg l_data_error ; +reg u_data_error; +reg v6_data_cmp_valid; +wire [DWIDTH -1 :0] rd_v6_mdata; +reg [DWIDTH -1 :0] cmpdata_r; +wire [DWIDTH -1 :0] rd_mdata; + reg cmp_data_en; + +localparam ER_WIDTH = ( MEM_TYPE == "QDR2PLUS" && nCK_PER_CLK == 2) ? (NUM_DQ_PINS*MEM_BURST_LEN)/9 : + ( MEM_TYPE != "QDR2PLUS" && nCK_PER_CLK == 2) ? NUM_DQ_PINS/2 : NUM_DQ_PINS; + +reg [ER_WIDTH - 1:0] error_byte; +reg [ER_WIDTH - 1:0] error_byte_r1; + +reg [NUM_DQ_PINS*nCK_PER_CLK*2 - 1:0] error_bit; +reg [NUM_DQ_PINS*nCK_PER_CLK*2 -1:0] error_bit_r1; + +wire [NUM_DQ_PINS-1:0] dq_bit_error; +wire [NUM_DQ_PINS-1:0] cumlative_dq_bit_error_c; + +wire [ NUM_DQ_PINS/8-1:0] dq_lane_error; +reg [ NUM_DQ_PINS/8-1:0] dq_lane_error_r1; +reg [ NUM_DQ_PINS/8-1:0] dq_lane_error_r2; +reg [NUM_DQ_PINS-1:0] dq_bit_error_r1; +wire [NUM_DQ_PINS-1:0] cumlative_dq_r0_bit_error_c; +wire [NUM_DQ_PINS-1:0] cumlative_dq_f0_bit_error_c; +wire [NUM_DQ_PINS-1:0] cumlative_dq_r1_bit_error_c; +wire [NUM_DQ_PINS-1:0] cumlative_dq_f1_bit_error_c; + + +wire [ NUM_DQ_PINS/8-1:0] cum_dq_lane_error_mask; +wire [ NUM_DQ_PINS/8-1:0] cumlative_dq_lane_error_c; +reg [ NUM_DQ_PINS/8-1:0] cumlative_dq_lane_error_reg; + + + reg [NUM_DQ_PINS - 1:0] dq_r0_read_bit_rdlay1; + reg [NUM_DQ_PINS - 1:0] dq_f0_read_bit_rdlay1; + reg [NUM_DQ_PINS - 1:0] dq_r1_read_bit_rdlay1; + reg [NUM_DQ_PINS - 1:0] dq_f1_read_bit_rdlay1; + reg [NUM_DQ_PINS - 1:0] dq_r0_expect_bit_rdlay1; + reg [NUM_DQ_PINS - 1:0] dq_f0_expect_bit_rdlay1; + reg [NUM_DQ_PINS - 1:0] dq_r1_expect_bit_rdlay1; + reg [NUM_DQ_PINS - 1:0] dq_f1_expect_bit_rdlay1; + wire [NUM_DQ_PINS-1:0] dq_r0_bit_error ; + wire [NUM_DQ_PINS-1:0] dq_f0_bit_error ; + wire [NUM_DQ_PINS-1:0] dq_r1_bit_error ; + wire [NUM_DQ_PINS-1:0] dq_f1_bit_error ; + reg [31:0] error_addr_r1; + reg [31:0] error_addr_r2; + reg [31:0] error_addr_r3; + reg data_valid_r1; + reg data_valid_r2; + wire cmd_start_i; + + + + always @ (posedge clk_i) begin + wait_bl_end_r1 <= #TCQ wait_bl_end; + rd_data_r1 <= #TCQ data_i; + rd_data_r2 <= #TCQ rd_data_r1; + end + + reg [7:0] force_wrcmd_timeout_cnts ; + + always @ (posedge clk_i) begin + if (rst_i[0]) + force_wrcmd_gen <= #TCQ 1'b0; + else if ((wait_bl_end == 1'b0 && wait_bl_end_r1 == 1'b1) || force_wrcmd_timeout_cnts == 8'b11111111) + force_wrcmd_gen <= #TCQ 1'b0; + + else if ((cmd_valid_i && bl_i > 16) || wait_bl_end ) + force_wrcmd_gen <= #TCQ 1'b1; + end + + + always @ (posedge clk_i) begin + if (rst_i[0]) + force_wrcmd_timeout_cnts <= #TCQ 'b0; + else if (wait_bl_end == 1'b0 && wait_bl_end_r1 == 1'b1) + force_wrcmd_timeout_cnts <= #TCQ 'b0; + + else if (force_wrcmd_gen) + force_wrcmd_timeout_cnts <= #TCQ force_wrcmd_timeout_cnts + 1'b1; + end + + always @ (posedge clk_i) + if (rst_i[0]) + wait_bl_end <= #TCQ 1'b0; + else if (force_wrcmd_timeout_cnts == 8'b11111111) + wait_bl_end <= #TCQ 1'b0; + + else if (gen_rdy && gen_valid && gen_bl > 16) + wait_bl_end <= #TCQ 1'b1; + else if (wait_bl_end && user_bl_cnt_is_1) + wait_bl_end <= #TCQ 1'b0; + + + assign cmd_rdy_o = cmd_rdy; + mig_7series_v4_0_read_posted_fifo # + ( + .TCQ (TCQ), + .FAMILY (FAMILY), + .nCK_PER_CLK (nCK_PER_CLK), + .MEM_BURST_LEN (MEM_BURST_LEN), + .ADDR_WIDTH (32), + .BL_WIDTH (BL_WIDTH) + ) + read_postedfifo( + .clk_i (clk_i), + .rst_i (rst_i[0]), + .cmd_rdy_o (cmd_rdy ), + .cmd_valid_i (cmd_valid_i ), + .data_valid_i (data_rdy ), // input to + .addr_i (addr_i ), + .bl_i (bl_i ), + .cmd_start_i (cmd_start), + .cmd_sent (cmd_sent), + .bl_sent (bl_sent ), + .cmd_en_i (cmd_en_i), + .memc_cmd_full_i (memc_cmd_full_i), + .gen_valid_o (gen_valid ), + .gen_addr_o (gen_addr ), + .gen_bl_o (gen_bl ), + .rd_mdata_en (rd_mdata_en) + ); + + + + + mig_7series_v4_0_rd_data_gen # + ( + .TCQ (TCQ), + .FAMILY (FAMILY), + .MEM_TYPE (MEM_TYPE), + + .BL_WIDTH (BL_WIDTH), + .nCK_PER_CLK (nCK_PER_CLK), + + .MEM_BURST_LEN (MEM_BURST_LEN), + .NUM_DQ_PINS (NUM_DQ_PINS), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .START_ADDR (START_ADDR), + + .DATA_PATTERN (DATA_PATTERN), + .DWIDTH(DWIDTH), + .COLUMN_WIDTH (MEM_COL_WIDTH) + + ) + rd_datagen( + .clk_i (clk_i ), + .rst_i (rst_i[4:0]), + .prbs_fseed_i (prbs_fseed_i), + .data_mode_i (data_mode_i ), + .vio_instr_mode_value (vio_instr_mode_value), + + .cmd_rdy_o (gen_rdy ), + .cmd_valid_i (gen_valid ), + .mode_load_i (mode_load_i), + .cmd_start_o (cmd_start), + // .m_addr_i (m_addr_i ), + .simple_data0 (simple_data0), + .simple_data1 (simple_data1), + .simple_data2 (simple_data2), + .simple_data3 (simple_data3), + .simple_data4 (simple_data4), + .simple_data5 (simple_data5), + .simple_data6 (simple_data6), + .simple_data7 (simple_data7), + + + .fixed_data_i (fixed_data_i), + + .addr_i (gen_addr ), + .bl_i (gen_bl ), + .user_bl_cnt_is_1_o (user_bl_cnt_is_1), + .data_rdy_i (data_valid_i ), // input to + .data_valid_o (cmp_valid ), + .tg_st_addr_o (tg_st_addr_o), + .data_o (cmp_data ) + ); + + mig_7series_v4_0_afifo # + ( + .TCQ (TCQ), + .DSIZE (DWIDTH), + .FIFO_DEPTH (32), + .ASIZE (4), + .SYNC (1) // set the SYNC to 1 because rd_clk = wr_clk to reduce latency + + + ) + rd_mdata_fifo + ( + .wr_clk (clk_i), + .rst (rst_i[0]), + .wr_en (data_valid_i), + .wr_data (data_i), + .rd_en (rd_mdata_en), + .rd_clk (clk_i), + .rd_data (rd_v6_mdata), + .full (), + .empty (), + .almost_full () + ); + +always @ (posedge clk_i) +begin +// delayed_data <= #TCQ {cmp_valid & data_valid_i,cmp_data}; + cmp_data_r1 <= #TCQ cmp_data; + cmp_data_r2 <= #TCQ cmp_data_r1; +end +assign rd_mdata_o = rd_mdata; + +assign rd_mdata = (FAMILY == "SPARTAN6") ? rd_data_r1: + (FAMILY == "VIRTEX6" && MEM_BURST_LEN == 4)? rd_v6_mdata: + rd_data_r2; + +assign cmp_data_valid = (FAMILY == "SPARTAN6") ? cmp_data_en : + (FAMILY == "VIRTEX6" && MEM_BURST_LEN == 4)? v6_data_cmp_valid :data_valid_i; + + + + +assign cmp_data_o = cmp_data_r2; +assign cmp_addr_o = tg_st_addr_o;//gen_addr; +assign cmp_bl_o = gen_bl[5:0]; + + + +assign data_rdy_o = data_rdy; +assign data_rdy = cmp_valid & data_valid_i; + + always @ (posedge clk_i) + v6_data_cmp_valid <= #TCQ rd_mdata_en; + + + always @ (posedge clk_i) + cmp_data_en <= #TCQ data_rdy; + + +genvar i; + + generate + if (FAMILY == "SPARTAN6") + begin: gen_error_sp6 + always @ (posedge clk_i) + begin + if (cmp_data_en) + l_data_error <= #TCQ (rd_data_r1[DWIDTH/2-1:0] != cmp_data_r1[DWIDTH/2-1:0]); + else + l_data_error <= #TCQ 1'b0; + + if (cmp_data_en) + u_data_error <= #TCQ (rd_data_r1[DWIDTH-1:DWIDTH/2] != cmp_data_r1[DWIDTH-1:DWIDTH/2]); + else + u_data_error <= #TCQ 1'b0; + + data_error <= #TCQ l_data_error | u_data_error; + //synthesis translate_off + if (data_error) + $display ("ERROR at time %t" , $time); + //synthesis translate_on + + end + +end +else +// if (FAMILY == "VIRTEX6" ) + begin: gen_error_v7 + if (nCK_PER_CLK == 2) + begin + if (MEM_TYPE == "QDR2PLUS") + begin: qdr_design + for (i = 0; i < (NUM_DQ_PINS*MEM_BURST_LEN)/9; i = i + 1) + begin: gen_cmp_2 + always @ (posedge clk_i) + //synthesis translate_off + if (data_valid_i & (SIMULATION=="TRUE")) + error_byte[i] <= (data_i[9*(i+1)-1:9*i] !== cmp_data[9*(i+1)-1:9*i]) ; + else + //synthesis translate_on + if (data_valid_i) + error_byte[i] <= (data_i[9*(i+1)-1:9*i] != cmp_data[9*(i+1)-1:9*i]) ; + else + error_byte[i] <= 1'b0; + end + for (i = 0; i < NUM_DQ_PINS*MEM_BURST_LEN; i = i + 1) + begin: gen_cmp_bit_2 + always @ (posedge clk_i) + //synthesis translate_off + if (data_valid_i & (SIMULATION=="TRUE")) + error_bit[i] <= (data_i[i] !== cmp_data[i]) ; + else + //synthesis translate_on + if (data_valid_i) + error_bit[i] <= (data_i[i] != cmp_data[i]) ; + else + error_bit[i] <= 1'b0; + end + end + else + begin: ddr_design + for (i = 0; i < NUM_DQ_PINS/2; i = i + 1) + begin: gen_cmp_2 + always @ (posedge clk_i) + //synthesis translate_off + if (data_valid_i & (SIMULATION=="TRUE")) + error_byte[i] <= (data_i[8*(i+1)-1:8*i] !== cmp_data[8*(i+1)-1:8*i]) ; + else + //synthesis translate_on + if (data_valid_i) + error_byte[i] <= (data_i[8*(i+1)-1:8*i] != cmp_data[8*(i+1)-1:8*i]) ; + else + error_byte[i] <= 1'b0; + end + for (i = 0; i < NUM_DQ_PINS*4; i = i + 1) + begin: gen_cmp_bit_2 + always @ (posedge clk_i) + //synthesis translate_off + if (data_valid_i & (SIMULATION=="TRUE")) + error_bit[i] <= ( (data_i[i] !== cmp_data[i]) ) ; + else + //synthesis translate_on + if (data_valid_i) + error_bit[i] <= ( (data_i[i] != cmp_data[i]) ) ; + else + error_bit[i] <= 1'b0; + end + end + end + else //nCK_PER_CLK == 4 + begin + for (i = 0; i < NUM_DQ_PINS; i = i + 1) + begin: gen_cmp_4 + always @ (posedge clk_i) + //synthesis translate_off + if (data_valid_i & (SIMULATION=="TRUE")) + error_byte[i] <= (data_i[8*(i+1)-1:8*i] !== cmp_data[8*(i+1)-1:8*i]) ; + else + //synthesis translate_on + if (data_valid_i) + error_byte[i] <= (data_i[8*(i+1)-1:8*i] != cmp_data[8*(i+1)-1:8*i]) ; + else + error_byte[i] <= 1'b0; + end + + for (i = 0; i < NUM_DQ_PINS*8; i = i + 1) + begin: gen_cmp_bit_4 + always @ (posedge clk_i) + //synthesis translate_off + if (data_valid_i & (SIMULATION=="TRUE")) + error_bit[i] <= (data_i[i] !== cmp_data[i]) ; + else + //synthesis translate_on + if (data_valid_i) + error_bit[i] <= (data_i[i] != cmp_data[i]) ; + else + error_bit[i] <= 1'b0; + end + end + +always @ (posedge clk_i) +begin + dq_r0_read_bit_rdlay1 <= #TCQ data_i[NUM_DQ_PINS*1 - 1:0]; + dq_f0_read_bit_rdlay1 <= #TCQ data_i[NUM_DQ_PINS*2 - 1:NUM_DQ_PINS*1]; + dq_r1_read_bit_rdlay1 <= #TCQ data_i[NUM_DQ_PINS*3 - 1:NUM_DQ_PINS*2]; + dq_f1_read_bit_rdlay1 <= #TCQ data_i[NUM_DQ_PINS*4 - 1:NUM_DQ_PINS*3]; + + dq_r0_expect_bit_rdlay1 <= #TCQ cmp_data[NUM_DQ_PINS*1 - 1:0]; + dq_f0_expect_bit_rdlay1 <= #TCQ cmp_data[NUM_DQ_PINS*2 - 1:NUM_DQ_PINS*1]; + dq_r1_expect_bit_rdlay1 <= #TCQ cmp_data[NUM_DQ_PINS*3 - 1:NUM_DQ_PINS*2]; + dq_f1_expect_bit_rdlay1 <= #TCQ cmp_data[NUM_DQ_PINS*4 - 1:NUM_DQ_PINS*3]; + + dq_r0_read_bit_r <= #TCQ dq_r0_read_bit_rdlay1 ; + dq_f0_read_bit_r <= #TCQ dq_f0_read_bit_rdlay1 ; + dq_r1_read_bit_r <= #TCQ dq_r1_read_bit_rdlay1 ; + dq_f1_read_bit_r <= #TCQ dq_f1_read_bit_rdlay1 ; + + dq_r0_expect_bit_r <= #TCQ dq_r0_expect_bit_rdlay1; + dq_f0_expect_bit_r <= #TCQ dq_f0_expect_bit_rdlay1; + dq_r1_expect_bit_r <= #TCQ dq_r1_expect_bit_rdlay1; + dq_f1_expect_bit_r <= #TCQ dq_f1_expect_bit_rdlay1; + + + + + +end +always @ (posedge clk_i) +begin + if (rst_i[1] || manual_clear_error) begin + + error_byte_r1 <= #TCQ 'b0; + error_bit_r1 <= #TCQ 'b0; + + end + else if (data_valid_r1) begin + + error_byte_r1 <= #TCQ error_byte; + error_bit_r1 <= #TCQ error_bit; + end + else + begin + error_byte_r1 <= #TCQ 'b0; + error_bit_r1 <= #TCQ 'b0; + end +end +always @ (posedge clk_i) +begin + if (rst_i[1] || manual_clear_error) + data_error <= #TCQ 1'b0; + else if (data_valid_r2) + data_error <= #TCQ | error_byte_r1; + else + data_error <= #TCQ 1'b0; + + //synthesis translate_off + if (data_error) + $display ("ERROR: Expected data=%h, Received data=%h @ %t" ,cmp_data_r2, rd_data_r2, $time); + //synthesis translate_on + + end + +localparam NUM_OF_DQS = (MEM_TYPE == "QDR2PLUS") ? 9 : 8 ; + + if (MEM_TYPE == "QDR2PLUS") begin: qdr_design_error_calc + + if (MEM_BURST_LEN == 4) begin: bl4_design + for ( i = 0; i < NUM_DQ_PINS/NUM_OF_DQS; i = i+1) begin: gen_dq_error_map + assign dq_lane_error[i] = (error_byte_r1[i] | + error_byte_r1[i + (NUM_DQ_PINS/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*2/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*3/NUM_OF_DQS)] ) ? 1'b1 : 1'b0 ; + + assign cumlative_dq_lane_error_c[i] = cumlative_dq_lane_error_r[i] | dq_lane_error_r1[i]; + end + end else begin: bl2_design + for ( i = 0; i < NUM_DQ_PINS/NUM_OF_DQS; i = i+1) begin: gen_dq_error_map + assign dq_lane_error[i] = (error_byte_r1[i] | + error_byte_r1[i + (NUM_DQ_PINS/NUM_OF_DQS)] ) ? 1'b1 : 1'b0 ; + + assign cumlative_dq_lane_error_c[i] = cumlative_dq_lane_error_r[i] | dq_lane_error_r1[i]; + end + end + + end else begin: ddr_design_error_calc + + if (nCK_PER_CLK == 4) begin: ck_4to1_design + for ( i = 0; i < NUM_DQ_PINS/NUM_OF_DQS; i = i+1) begin: gen_dq_error_map + assign dq_lane_error[i] = (error_byte_r1[i] | + error_byte_r1[i + (NUM_DQ_PINS/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*2/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*3/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*4/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*5/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*6/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*7/NUM_OF_DQS)] ) ? 1'b1 : 1'b0 ; + + assign cumlative_dq_lane_error_c[i] = cumlative_dq_lane_error_r[i] | dq_lane_error_r1[i]; + end + end else if (nCK_PER_CLK == 2) begin: ck_2to1_design + for ( i = 0; i < NUM_DQ_PINS/NUM_OF_DQS; i = i+1) begin: gen_dq_error_map + assign dq_lane_error[i] = (error_byte_r1[i] | + error_byte_r1[i + (NUM_DQ_PINS/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*2/NUM_OF_DQS)] | + error_byte_r1[i + (NUM_DQ_PINS*3/NUM_OF_DQS)] ) ? 1'b1 : 1'b0 ; + + assign cumlative_dq_lane_error_c[i] = cumlative_dq_lane_error_r[i] | dq_lane_error_r1[i]; + end + end + end + + // mapped the user bits error to dq bits error + + // mapper the error to rising 0 + for ( i = 0; i < NUM_DQ_PINS; i = i+1) + begin: gen_dq_r0_error_mapbit + assign dq_r0_bit_error[i] = (error_bit_r1[i]); + assign cumlative_dq_r0_bit_error_c[i] = cumlative_dq_r0_bit_error_r[i] | dq_r0_bit_error[i]; + + end + // mapper the error to falling 0 + for ( i = 0; i < NUM_DQ_PINS; i = i+1) + begin: gen_dq_f0_error_mapbit + assign dq_f0_bit_error[i] = (error_bit_r1[i+NUM_DQ_PINS*1] ); + assign cumlative_dq_f0_bit_error_c[i] = cumlative_dq_f0_bit_error_r[i] | dq_f0_bit_error[i]; + + end + + // mapper the error to rising 1 + for ( i = 0; i < NUM_DQ_PINS; i = i+1) + begin: gen_dq_r1_error_mapbit + assign dq_r1_bit_error[i] = (error_bit_r1[i+ (NUM_DQ_PINS*2)]); + assign cumlative_dq_r1_bit_error_c[i] = cumlative_dq_r1_bit_error_r[i] | dq_r1_bit_error[i]; + + end + + // mapper the error to falling 1 + for ( i = 0; i < NUM_DQ_PINS; i = i+1) + begin: gen_dq_f1_error_mapbit + assign dq_f1_bit_error[i] = ( error_bit_r1[i+ (NUM_DQ_PINS*3)]); + assign cumlative_dq_f1_bit_error_c[i] = cumlative_dq_f1_bit_error_r[i] | dq_f1_bit_error[i]; + end +reg COuta; +always @ (posedge clk_i) +begin + if (rst_i[1] || manual_clear_error) begin + dq_bit_error_r1 <= #TCQ 'b0; + dq_lane_error_r1 <= #TCQ 'b0; + dq_lane_error_r2 <= #TCQ 'b0; + data_valid_r1 <= #TCQ 1'b0; + data_valid_r2 <= #TCQ 1'b0; + dq_r0_bit_error_r <= #TCQ 'b0; + dq_f0_bit_error_r <= #TCQ 'b0; + dq_r1_bit_error_r <= #TCQ 'b0; + dq_f1_bit_error_r <= #TCQ 'b0; + + cumlative_dq_lane_error_reg <= #TCQ 'b0; + cumlative_dq_r0_bit_error_r <= #TCQ 'b0; + cumlative_dq_f0_bit_error_r <= #TCQ 'b0; + cumlative_dq_r1_bit_error_r <= #TCQ 'b0; + cumlative_dq_f1_bit_error_r <= #TCQ 'b0; + error_addr_r1 <= #TCQ 'b0; + error_addr_r2 <= #TCQ 'b0; + error_addr_r3 <= #TCQ 'b0; + + end + else begin + data_valid_r1 <= #TCQ data_valid_i; + data_valid_r2 <= #TCQ data_valid_r1; + dq_lane_error_r1 <= #TCQ dq_lane_error; + dq_bit_error_r1 <= #TCQ dq_bit_error; + + cumlative_dq_lane_error_reg <= #TCQ cumlative_dq_lane_error_c; + cumlative_dq_r0_bit_error_r <= #TCQ cumlative_dq_r0_bit_error_c; + + cumlative_dq_f0_bit_error_r <= #TCQ cumlative_dq_f0_bit_error_c; + cumlative_dq_r1_bit_error_r <= #TCQ cumlative_dq_r1_bit_error_c; + cumlative_dq_f1_bit_error_r <= #TCQ cumlative_dq_f1_bit_error_c; + dq_r0_bit_error_r <= #TCQ dq_r0_bit_error; + dq_f0_bit_error_r <= #TCQ dq_f0_bit_error; + dq_r1_bit_error_r <= #TCQ dq_r1_bit_error; + dq_f1_bit_error_r <= #TCQ dq_f1_bit_error; + error_addr_r2 <= #TCQ error_addr_r1; + error_addr_r3 <= #TCQ error_addr_r2; + + if (rd_mdata_en) + error_addr_r1 <= #TCQ gen_addr; + else if (data_valid_i) + {COuta,error_addr_r1} <= #TCQ error_addr_r1 + 4; + + end +end + +end +endgenerate + +assign cumlative_dq_lane_error_r = cumlative_dq_lane_error_reg; +assign dq_error_bytelane_cmp = dq_lane_error_r1; +assign data_error_o = data_error; +assign error_addr_o = error_addr_r3; + + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_read_posted_fifo.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_read_posted_fifo.v new file mode 100755 index 0000000..dcf3d4a --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_read_posted_fifo.v @@ -0,0 +1,251 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: read_posted_fifo.v +// /___/ /\ Date Last Modified: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This module instantiated by read_data_path module and sits between +// mcb_flow_control module and read_data_gen module to buffer up the +// commands that has sent to memory controller. +//Reference: +//Revision History: 3/14/2012 Adding support for "nCK_PER_CLK == 2" abd MEM_BURST_LEN == 2 " +//***************************************************************************** +`timescale 1ps/1ps + + module mig_7series_v4_0_read_posted_fifo # + ( + parameter TCQ = 100, + parameter FAMILY = "SPARTAN6", + parameter nCK_PER_CLK = 4, + parameter MEM_BURST_LEN = 4, + + parameter ADDR_WIDTH = 32, + parameter BL_WIDTH = 6 + ) + ( + input clk_i, + input rst_i, + output reg cmd_rdy_o, + input memc_cmd_full_i, + input cmd_valid_i, + input data_valid_i, + input cmd_start_i, + input [ADDR_WIDTH-1:0] addr_i, + input [BL_WIDTH-1:0] bl_i, + input [2:0] cmd_sent, + input [5:0] bl_sent , + input cmd_en_i , + + + output gen_valid_o, + output [ADDR_WIDTH-1:0] gen_addr_o, + output [BL_WIDTH-1:0] gen_bl_o, + output rd_mdata_en + + ); + +//reg empty_r; + reg rd_en_r; + wire full; + wire empty; + wire wr_en; + reg mcb_rd_fifo_port_almost_full; + reg [6:0] buf_avail_r; + reg [6:0] rd_data_received_counts; + reg [6:0] rd_data_counts_asked; + + reg dfifo_has_enough_room; + reg [1:0] wait_cnt; + reg wait_done; + + assign rd_mdata_en = rd_en_r; + + generate + if (FAMILY == "SPARTAN6") + begin: gen_sp6_cmd_rdy + + always @ (posedge clk_i) + cmd_rdy_o <= #TCQ !full & dfifo_has_enough_room ;//& wait_done; + end + +// if ((FAMILY == "VIRTEX7") || (FAMILY == "7SERIES") || (FAMILY == "KINTEX7") || (FAMILY == "ARTIX7") || +// (FAMILY == "VIRTEX6") ) + else + begin: gen_v6_cmd_rdy + + always @ (posedge clk_i) + cmd_rdy_o <= #TCQ !full & wait_done & dfifo_has_enough_room; + end + endgenerate + + always @ (posedge clk_i) + begin + if (rst_i) + wait_cnt <= #TCQ 'b0; + else if (cmd_rdy_o && cmd_valid_i) + wait_cnt <= #TCQ 2'b10; + else if (wait_cnt > 0) + wait_cnt <= #TCQ wait_cnt - 1'b1; + + end + + always @(posedge clk_i) + begin + if (rst_i) + wait_done <= #TCQ 1'b1; + else if (cmd_rdy_o && cmd_valid_i) + wait_done <= #TCQ 1'b0; + else if (wait_cnt == 0) + wait_done <= #TCQ 1'b1; + else + wait_done <= #TCQ 1'b0; + + end + + reg dfifo_has_enough_room_d1; + always @ (posedge clk_i) + begin + dfifo_has_enough_room <= #TCQ (buf_avail_r >= 32 ) ? 1'b1: 1'b0; + dfifo_has_enough_room_d1 <= #TCQ dfifo_has_enough_room ; + end + + // remove the dfifo_has_enough_room term. Just need to push pressure to the front to stop + // sending more read commands but still accepting it if there is one coming. + assign wr_en = cmd_valid_i & !full & wait_done; + + + + always @ (posedge clk_i) + begin + if (rst_i) begin + rd_data_counts_asked <= #TCQ 'b0; + end + else if (cmd_en_i && cmd_sent[0] == 1 && ~memc_cmd_full_i) begin + if (FAMILY == "SPARTAN6") + rd_data_counts_asked <= #TCQ rd_data_counts_asked + (bl_sent + 7'b0000001) ; + else + // if (nCK_PER_CLK == 2 ) + // rd_data_counts_asked <= #TCQ rd_data_counts_asked + 2'b10 ; + // else + // rd_data_counts_asked <= #TCQ rd_data_counts_asked + 1'b1 ; + + if (nCK_PER_CLK == 4 || (nCK_PER_CLK == 2 && (MEM_BURST_LEN == 4 || MEM_BURST_LEN == 2 ) )) + rd_data_counts_asked <= #TCQ rd_data_counts_asked + 1'b1 ; + else if (nCK_PER_CLK == 2 && MEM_BURST_LEN == 8) + rd_data_counts_asked <= #TCQ rd_data_counts_asked + 2'b10 ; + + + + end + end + + always @ (posedge clk_i) + begin + if (rst_i) begin + rd_data_received_counts <= #TCQ 'b0; + end + else if (data_valid_i) begin + rd_data_received_counts <= #TCQ rd_data_received_counts + 1'b1; + end + end + + // calculate how many buf still available + always @ (posedge clk_i) + if (rd_data_received_counts[6] == rd_data_counts_asked[6]) + buf_avail_r <= #TCQ (rd_data_received_counts[5:0] - rd_data_counts_asked[5:0] + 7'd64 ); + + else + buf_avail_r <= #TCQ ( rd_data_received_counts[5:0] - rd_data_counts_asked[5:0] ); + + + always @ (posedge clk_i) begin + rd_en_r <= #TCQ cmd_start_i; + end + + + + assign gen_valid_o = !empty; + mig_7series_v4_0_afifo # + ( + .TCQ (TCQ), + .DSIZE (BL_WIDTH+ADDR_WIDTH), + .FIFO_DEPTH (16), + .ASIZE (4), + .SYNC (1) // set the SYNC to 1 because rd_clk = wr_clk to reduce latency + + + ) + rd_fifo + ( + .wr_clk (clk_i), + .rst (rst_i), + .wr_en (wr_en), + .wr_data ({bl_i,addr_i}), + .rd_en (rd_en_r), + .rd_clk (clk_i), + .rd_data ({gen_bl_o,gen_addr_o}), + .full (full), + .empty (empty), + .almost_full () + + ); + + + + + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_s7ven_data_gen.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_s7ven_data_gen.v new file mode 100755 index 0000000..14ef189 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_s7ven_data_gen.v @@ -0,0 +1,1047 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MEMC +// / / Filename: mcb_traffic_gen.v +// /___/ /\ Date Last Modified: $Date: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Virtex7 +//Design Name: s7ven_data_gen +//Purpose: This is top level module of memory traffic generator which can +// generate different CMD_PATTERN and DATA_PATTERN to Virtex 7 +// hard memory controller core. +// Supported Data pattern: 0 : Reserved. +// 1 : FIXED_DATA_MODE. +// 2 : ADDR_DATA_MODE +// 3 : HAMMER_DATA_MODE +// 4 : NEIGHBOR_DATA_MODE +// 5 : WALKING1_DATA_MODE +// 6 : WALKING0_DATA_MODE +// 7 : TRUE_PRBS_MODE +// +// +//Reference: +//Revision History: 1.1 +// 06/2011 Rewrite PRBS code. + +//***************************************************************************** + +`timescale 1ps/1ps +`ifndef TCQ + `define TCQ 100 +`endif + +module mig_7series_v4_0_s7ven_data_gen # + +( parameter DMODE = "WRITE", + parameter nCK_PER_CLK = 2, // 2: Memc core speed 1/2 of memory clock speed. + // User data bus width = 4 x DQs data width. + // 4: memc core speed 1/4 of memory clock speed. + // User data bus width = 8 x DQs data width. + parameter MEM_TYPE = "DDR3", + + parameter TCQ = 100, + parameter BL_WIDTH = 6, // USER_Interface Command Burst Length + parameter FAMILY = "SPARTAN6", + + parameter EYE_TEST = "FALSE", + parameter ADDR_WIDTH = 32, + parameter MEM_BURST_LEN = 8, + parameter START_ADDR = 32'h00000000, + parameter DWIDTH = 32, + parameter DATA_PATTERN = "DGEN_ALL", //"DGEN__HAMMER", "DGEN_WALING1","DGEN_WALING0","DGEN_ADDR","DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + parameter NUM_DQ_PINS = 72, + parameter COLUMN_WIDTH = 10, + parameter SEL_VICTIM_LINE = 3 // VICTIM LINE is one of the DQ pins is selected to be different than hammer pattern +// parameter [287:0] ALL_1 = {288{1'b1}}, +// parameter [287:0] ALL_0 = {288{1'b0}} + + + ) + ( + input clk_i, // + input rst_i, + input [31:0] prbs_fseed_i, + input mode_load_i, + input mem_init_done_i, + input wr_data_mask_gen_i, + input [3:0] data_mode_i, // "00" = bram; + input data_rdy_i, + input cmd_startA, + input cmd_startB, + input cmd_startC, + input cmd_startD, + input cmd_startE, + + input [31:0] simple_data0 , + input [31:0] simple_data1 , + input [31:0] simple_data2 , + input [31:0] simple_data3 , + input [31:0] simple_data4 , + input [31:0] simple_data5 , + input [31:0] simple_data6 , + input [31:0] simple_data7 , + + input [ADDR_WIDTH-1:0] m_addr_i, // generated address used to determine data pattern. + input [31:0] fixed_data_i, + + input [ADDR_WIDTH-1:0] addr_i, // generated address used to determine data pattern. + input [BL_WIDTH:0] user_burst_cnt, // generated burst length for control the burst data + + input fifo_rdy_i, // connect from mcb_wr_full when used as wr_data_gen + // connect from mcb_rd_empty when used as rd_data_gen + // When both data_rdy and data_valid is asserted, the ouput data is valid. + // input [(DWIDTH/8)-1:0] wr_mask_count; + output [(NUM_DQ_PINS*nCK_PER_CLK*2/8)-1:0] data_mask_o, + output [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] data_o , // generated data pattern + output reg [31:0] tg_st_addr_o, + output bram_rd_valid_o +); +// + +localparam PRBS_WIDTH = 8;//BL_WIDTH; +localparam TAPS_VALUE = (BL_WIDTH == 8) ? 8'b10001110 : + // (BL_WIDTH == 10) ? 10'b1000000100: + 8'b10001110 ; + + +wire [31:0] prbs_data; +reg [35:0] acounts; + +wire [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] fdata; +wire [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] bdata; +wire [31:0] bram_data; + +wire [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] adata_tmp; +wire [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] adata; + +wire [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] hammer_data; + +reg [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] w1data; +reg [NUM_DQ_PINS*2-1:0] hdata; + +reg [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] w0data; +reg [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] data; + +reg burst_count_reached2; + +reg data_valid; +reg [2:0] walk_cnt; +reg [ADDR_WIDTH-1:0] user_address; +reg [ADDR_WIDTH-1:0] m_addr_r; // generated address used to determine data pattern. +reg sel_w1gen_logic; +//reg [7:0] BLANK; +reg [4*NUM_DQ_PINS -1 :0] sel_victimline_r; +reg data_clk_en,data_clk_en2 /* synthesis syn_maxfan = 10 */; +wire [NUM_DQ_PINS*2*nCK_PER_CLK-1:0] full_prbs_data2; +wire [NUM_DQ_PINS*2*nCK_PER_CLK-1:0] psuedo_prbs_data; + +wire [127:0] prbs_shift_value; +reg next_calib_data; +reg [2*nCK_PER_CLK*NUM_DQ_PINS-1:0 ] calib_data; +wire [2*nCK_PER_CLK*NUM_DQ_PINS/8 -1:0] w1data_group; +wire [31:0] mcb_prbs_data; +wire [NUM_DQ_PINS-1:0] prbsdata_rising_0; +wire [NUM_DQ_PINS-1:0] prbsdata_falling_0; +wire [NUM_DQ_PINS-1:0] prbsdata_rising_1; +wire [NUM_DQ_PINS-1:0] prbsdata_falling_1; +wire [NUM_DQ_PINS-1:0] prbsdata_rising_2; +wire [NUM_DQ_PINS-1:0] prbsdata_falling_2; +wire [NUM_DQ_PINS-1:0] prbsdata_rising_3; +wire [NUM_DQ_PINS-1:0] prbsdata_falling_3 ; + +wire [BL_WIDTH-1:0] prbs_o0,prbs_o1,prbs_o2,prbs_o3,prbs_o4,prbs_o5,prbs_o6,prbs_o7; +wire [BL_WIDTH-1:0] prbs_o8,prbs_o9,prbs_o10,prbs_o11,prbs_o12,prbs_o13,prbs_o14,prbs_o15; + + +//wire [nCK_PER_CLK * 32 -1 :0] prbs_shift_value; + +wire [32*NUM_DQ_PINS-1:0] ReSeedcounter; + + +reg [3:0] htstpoint ; +reg data_clk_en2_r; +reg [NUM_DQ_PINS-1:0] wdatamask_ripplecnt; +//wire [4*NUM_DQ_PINS - 1:3*NUM_DQ_PINS] ALL_1 = +reg mode_load_r; +reg user_burst_cnt_larger_1_r; +reg user_burst_cnt_larger_bram; + + +integer i,j,k; + +localparam NUM_WIDTH = 2*nCK_PER_CLK*NUM_DQ_PINS; +localparam USER_BUS_DWIDTH = (nCK_PER_CLK == 2) ? NUM_DQ_PINS*4 : NUM_DQ_PINS*8; + +// MODIFIED richc 061711 +//wire [PRBS_WIDTH-1:0] prbs_seed; + wire [2*nCK_PER_CLK-1:0] prbs_out [NUM_DQ_PINS-1:0]; + wire [PRBS_WIDTH-1:0] prbs_seed [NUM_DQ_PINS-1:0]; +//********************************************************************************************* +localparam BRAM_DATAL_MODE = 4'b0000; +localparam FIXED_DATA_MODE = 4'b0001; +localparam ADDR_DATA_MODE = 4'b0010; +localparam HAMMER_DATA_MODE = 4'b0011; +localparam NEIGHBOR_DATA_MODE = 4'b0100; +localparam WALKING1_DATA_MODE = 4'b0101; +localparam WALKING0_DATA_MODE = 4'b0110; +localparam PRBS_DATA_MODE = 4'b0111; + +assign data_o = data; +generate +if (nCK_PER_CLK == 4) +begin: full_prbs_data64 +//always @ (prbsdata_falling_3,prbsdata_rising_3,prbsdata_falling_2,prbsdata_rising_2,prbsdata_falling_1,prbsdata_rising_1,prbsdata_falling_0,prbsdata_rising_0) + assign full_prbs_data2 = {prbsdata_falling_3,prbsdata_rising_3,prbsdata_falling_2,prbsdata_rising_2,prbsdata_falling_1,prbsdata_rising_1,prbsdata_falling_0,prbsdata_rising_0}; +end +else +begin: full_prbs_data32 + assign full_prbs_data2 = {prbsdata_falling_1,prbsdata_rising_1,prbsdata_falling_0,prbsdata_rising_0}; +end +endgenerate +generate + +genvar p; + +for (p = 0; p < NUM_DQ_PINS*nCK_PER_CLK*2/32; p = p+1) +begin + assign psuedo_prbs_data[p*32+31:p*32] = mcb_prbs_data; + +end +endgenerate + + + +reg [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] w1data_o; +reg [3:0] data_mode_rr_a; +reg [3:0] data_mode_rr_c; + +// write data mask generation. +// Only support data pattern = address data mode. +// When wdatamask_ripple_cnt is asserted, the corresponding wr_data word will be jammed with 8'hff. + +assign data_mask_o = (wr_data_mask_gen_i == 1'b1 && mem_init_done_i) ? wdatamask_ripplecnt :{ NUM_DQ_PINS*nCK_PER_CLK*2/8{1'b0}}; + +always @ (posedge clk_i) +begin +if (rst_i || ~wr_data_mask_gen_i || ~mem_init_done_i) + wdatamask_ripplecnt <= 'b0; +else if (cmd_startA) + //wdatamask_ripplecnt <= {15'd0,1'b1}; + wdatamask_ripplecnt <= {{NUM_DQ_PINS-1{1'b0}},1'b1}; + +else if (user_burst_cnt_larger_1_r && data_rdy_i) + wdatamask_ripplecnt <= {wdatamask_ripplecnt[NUM_DQ_PINS-2:0],wdatamask_ripplecnt[NUM_DQ_PINS-1]}; + + +end + + +generate +genvar n; +for (n = 0; n < NUM_DQ_PINS*nCK_PER_CLK*2/8; n = n+1) +begin + + if (MEM_TYPE == "QDR2PLUS") + assign adata = adata_tmp;// QDR not supporting masking + else + assign adata[n*8+7:n*8] = adata_tmp[n*8+7:n*8]| {8{wdatamask_ripplecnt[NUM_DQ_PINS-1]}}; + +end +endgenerate + + +always @ (posedge clk_i) +begin + data_mode_rr_a <= #TCQ data_mode_i; + data_mode_rr_c <= #TCQ data_mode_i; + +end + + + +assign bdata = {USER_BUS_DWIDTH/32{bram_data[31:0]}}; + +// selected data pattern go through "data" mux to user data bus. +// 72 pin 1: failed +always @ (bdata,calib_data,hammer_data,adata,data_mode_rr_a,w1data,full_prbs_data2,psuedo_prbs_data) +begin + case(data_mode_rr_a) // + // Simple Data Pattern for bring up + // 0: Reserved + // 1: 32 bits fixed_data from user defined inputs. + // The data from this static pattern is concatenated together multiple times + // to make up the required number of bits as needed. + // 2: 32 bits address as data + // The data from this pattern is concatenated together multiple times + // to make up the required number of bits as needed. + // 4: simple 8data pattern and repeats every 8 words. The pattern is embedded in RAM. + // 5,6: Walkign 1,0 data. + // a Calibration data pattern + + // 0,1,2,3,4,9: use bram to implemnt. + 4'b0000,4'b0001,4'b0100,4'b1001: data = bdata; + 4'b0010: data = adata; // address as data + + 4'b0011: data = hammer_data; + + + 4'b0101, 4'b110: data = w1data; // walking 1 or walking 0 data + // when vio_instr_mode_value set to 4'hf,the init_mem_pattern_ctr module + // will automatically set the data_mode_o to 0x8 + 4'b1010: data =calib_data; + + + // Characterization Mode + // 2: Address as data + // 3: hammer data with option to select VICTIM line which output is always high. + // 7: Hammer PRBS. Only valid in V6,V7 family + // 9: Slow 2 MHz hammer pattern. + 4'b0111: data = full_prbs_data2;//{prbs_data,prbs_data,prbs_data,prbs_data}; // "011" = prbs + 4'b1000: data = psuedo_prbs_data;//{prbs_data,prbs_data,prbs_data,prbs_data}; // "011" = prbs + + default : begin + // for (i=0; i <= 4*NUM_DQ_PINS - 1; i= i+1) begin: neighbor_data + // data = begin + // for ( + data = adata; + end + endcase +end + +// phy calibration data pattern +// +generate +if (nCK_PER_CLK == 2) +begin: calib_data32 +always @ (posedge clk_i) +if (rst_i) begin + next_calib_data <= 1'b0; + calib_data <= #TCQ {{(NUM_DQ_PINS/8){8'h55}},{(NUM_DQ_PINS/8){8'haa}},{(NUM_DQ_PINS/8){8'h00}},{(NUM_DQ_PINS/8){8'hff}}}; + end +else if (cmd_startA) + begin + calib_data <= #TCQ {{(NUM_DQ_PINS/8){8'h55}},{(NUM_DQ_PINS/8){8'haa}},{(NUM_DQ_PINS/8){8'h00}},{(NUM_DQ_PINS/8){8'hff}}}; + next_calib_data <=#TCQ 1'b1; +// calib_data <= 'b0; + end + else if (fifo_rdy_i) + begin + next_calib_data <= #TCQ ~next_calib_data; + if (next_calib_data ) + + calib_data <= #TCQ {{(NUM_DQ_PINS/8){8'h66}},{(NUM_DQ_PINS/8){8'h99}},{(NUM_DQ_PINS/8){8'haa}},{(NUM_DQ_PINS/8){8'h55}}}; + else + calib_data <= #TCQ {{(NUM_DQ_PINS/8){8'h55}},{(NUM_DQ_PINS/8){8'haa}},{(NUM_DQ_PINS/8){8'h00}},{(NUM_DQ_PINS/8){8'hff}}}; + end +end +else +begin: calib_data64 // when nCK_PER_LK =4 has not verified +always @ (posedge clk_i) + +if (rst_i) begin + next_calib_data <= 1'b0; + calib_data <= #TCQ {{(NUM_DQ_PINS/8){16'h5555}},{(NUM_DQ_PINS/8){16'haaaa}},{(NUM_DQ_PINS/8){16'h0000}},{(NUM_DQ_PINS/8){16'hffff}}}; + end +else if (cmd_startA) + begin + calib_data <= #TCQ {{(NUM_DQ_PINS/8){16'h5555}},{(NUM_DQ_PINS/8){16'haaaa}},{(NUM_DQ_PINS/8){16'h0000}},{(NUM_DQ_PINS/8){16'hffff}}}; + next_calib_data <=#TCQ 1'b1; +// calib_data <= 'b0; + end + else if (fifo_rdy_i) + begin + next_calib_data <= #TCQ ~next_calib_data; + if (next_calib_data ) + + calib_data <= #TCQ {{(NUM_DQ_PINS/8){16'h6666}},{(NUM_DQ_PINS/8){16'h9999}},{(NUM_DQ_PINS/8){16'haaaa}},{(NUM_DQ_PINS/8){16'h5555}}}; + else + calib_data <= #TCQ {{(NUM_DQ_PINS/8){16'h5555}},{(NUM_DQ_PINS/8){16'haaaa}},{(NUM_DQ_PINS/8){16'h0000}},{(NUM_DQ_PINS/8){16'hffff}}}; + end + + +end +endgenerate +/* + +always @ (posedge clk_i) +begin calib_data <= 'b0; + +end +*/ +//************************************************************************** +// Pattern bram generates fixed input, hammer, simple 8 repeat data pattern. +//************************************************************************** + +function integer logb2; + input [31:0] number; + integer i; + begin + i = number; + for(logb2=1; i>0; logb2=logb2+1) + i = i >> 1; + end +endfunction + + + +mig_7series_v4_0_vio_init_pattern_bram # +( .MEM_BURST_LEN (MEM_BURST_LEN), + .START_ADDR (START_ADDR), + .NUM_DQ_PINS (NUM_DQ_PINS), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE) + +) +vio_init_pattern_bram +( + .clk_i (clk_i ), + .rst_i (rst_i ), + // BL8 : least 3 address bits are always zero. + // BL4 " least 2 address bits are always zero. + // for walking 1's or 0's, the least 8 address bits are always zero. + .cmd_addr (addr_i), + .cmd_start (cmd_startB), + .mode_load_i (mode_load_i), + .data_mode_i (data_mode_rr_a), + //.w1data (w1data), + .data0 (simple_data0 ), + .data1 (simple_data1 ), + .data2 (simple_data2 ), + .data3 (simple_data3 ), + .data4 (simple_data4 ), + .data5 (simple_data5 ), + .data6 (simple_data6 ), + .data7 (simple_data7 ), + .data8 (fixed_data_i ), + + .bram_rd_valid_o (bram_rd_valid_o), + .bram_rd_rdy_i (user_burst_cnt_larger_bram & (data_rdy_i | cmd_startB)), + .dout_o (bram_data) + + ); + + + +//************************************************************** +// Functions to be used byg Walking 1 and Walking 0 circuits. +//************************************************************** + + +function [2*nCK_PER_CLK*NUM_DQ_PINS-1:0] Data_Gen (input integer i ); + integer j; + begin + j = i/2; + Data_Gen = {2*nCK_PER_CLK*NUM_DQ_PINS{1'b0}}; + if(i %2 == 1) begin + if (nCK_PER_CLK == 2) begin + Data_Gen[(0*NUM_DQ_PINS+j*8)+:8] = 8'b00010000; + Data_Gen[(1*NUM_DQ_PINS+j*8)+:8] = 8'b00100000; + Data_Gen[(2*NUM_DQ_PINS+j*8)+:8] = 8'b01000000; + Data_Gen[(3*NUM_DQ_PINS+j*8)+:8] = 8'b10000000; + end + else begin + + Data_Gen[(0*NUM_DQ_PINS+j*8)+:8] = 8'b00010000; + Data_Gen[(1*NUM_DQ_PINS+j*8)+:8] = 8'b00100000; + Data_Gen[(2*NUM_DQ_PINS+j*8)+:8] = 8'b01000000; + Data_Gen[(3*NUM_DQ_PINS+j*8)+:8] = 8'b10000000; + Data_Gen[(4*NUM_DQ_PINS+j*8)+:8] = 8'b00000001; + Data_Gen[(5*NUM_DQ_PINS+j*8)+:8] = 8'b00000010; + Data_Gen[(6*NUM_DQ_PINS+j*8)+:8] = 8'b00000100; + Data_Gen[(7*NUM_DQ_PINS+j*8)+:8] = 8'b00001000; + + end + end else begin + if (nCK_PER_CLK == 2) begin + if (MEM_TYPE == "QDR2PLUS") begin + //QDR sends the high order data bit out first to memory. + + Data_Gen[(0*NUM_DQ_PINS+j*8)+:8] = 8'b00001000; + Data_Gen[(1*NUM_DQ_PINS+j*8)+:8] = 8'b00000100; + Data_Gen[(2*NUM_DQ_PINS+j*8)+:8] = 8'b00000010; + Data_Gen[(3*NUM_DQ_PINS+j*8)+:8] = 8'b00000001; + end else begin + Data_Gen[(0*NUM_DQ_PINS+j*8)+:8] = 8'b00000001; + Data_Gen[(1*NUM_DQ_PINS+j*8)+:8] = 8'b00000010; + Data_Gen[(2*NUM_DQ_PINS+j*8)+:8] = 8'b00000100; + Data_Gen[(3*NUM_DQ_PINS+j*8)+:8] = 8'b00001000; + end + end + else begin + Data_Gen[(0*NUM_DQ_PINS+j*8)+:8] = 8'b00000001; + Data_Gen[(1*NUM_DQ_PINS+j*8)+:8] = 8'b00000010; + Data_Gen[(2*NUM_DQ_PINS+j*8)+:8] = 8'b00000100; + Data_Gen[(3*NUM_DQ_PINS+j*8)+:8] = 8'b00001000; + Data_Gen[(4*NUM_DQ_PINS+j*8)+:8] = 8'b00010000; + Data_Gen[(5*NUM_DQ_PINS+j*8)+:8] = 8'b00100000; + Data_Gen[(6*NUM_DQ_PINS+j*8)+:8] = 8'b01000000; + Data_Gen[(7*NUM_DQ_PINS+j*8)+:8] = 8'b10000000; + + end + + + + + + end + + + end +endfunction + + + +function [2*nCK_PER_CLK*NUM_DQ_PINS-1:0] Data_GenW0 (input integer i); + integer j; + begin + j = i/2; + Data_GenW0 = {2*nCK_PER_CLK*NUM_DQ_PINS{1'b1}}; + + if(i %2 == 1) begin + if (nCK_PER_CLK == 2) begin + + Data_GenW0[(0*NUM_DQ_PINS+j*8)+:8] = 8'b11101111; + Data_GenW0[(1*NUM_DQ_PINS+j*8)+:8] = 8'b11011111; + Data_GenW0[(2*NUM_DQ_PINS+j*8)+:8] = 8'b10111111; + Data_GenW0[(3*NUM_DQ_PINS+j*8)+:8] = 8'b01111111; + + end + else begin + Data_GenW0[(0*NUM_DQ_PINS+j*8)+:8] = 8'b11101111; + Data_GenW0[(1*NUM_DQ_PINS+j*8)+:8] = 8'b11011111; + Data_GenW0[(2*NUM_DQ_PINS+j*8)+:8] = 8'b10111111; + Data_GenW0[(3*NUM_DQ_PINS+j*8)+:8] = 8'b01111111; + + Data_GenW0[(4*NUM_DQ_PINS+j*8)+:8] = 8'b11111110; + Data_GenW0[(5*NUM_DQ_PINS+j*8)+:8] = 8'b11111101; + Data_GenW0[(6*NUM_DQ_PINS+j*8)+:8] = 8'b11111011; + Data_GenW0[(7*NUM_DQ_PINS+j*8)+:8] = 8'b11110111; + + end + end else begin + if (nCK_PER_CLK == 2) begin + + + if (MEM_TYPE == "QDR2PLUS") begin + //QDR sends the high order data bit out first to memory. + + Data_GenW0[(0*NUM_DQ_PINS+j*8)+:8] = 8'b11110111; + Data_GenW0[(1*NUM_DQ_PINS+j*8)+:8] = 8'b11111011; + Data_GenW0[(2*NUM_DQ_PINS+j*8)+:8] = 8'b11111101; + Data_GenW0[(3*NUM_DQ_PINS+j*8)+:8] = 8'b11111110; + end else begin + + Data_GenW0[(0*NUM_DQ_PINS+j*8)+:8] = 8'b11111110; + Data_GenW0[(1*NUM_DQ_PINS+j*8)+:8] = 8'b11111101; + Data_GenW0[(2*NUM_DQ_PINS+j*8)+:8] = 8'b11111011; + Data_GenW0[(3*NUM_DQ_PINS+j*8)+:8] = 8'b11110111; + end + + end + else begin + + Data_GenW0[(0*NUM_DQ_PINS+j*8)+:8] = 8'b11111110; + Data_GenW0[(1*NUM_DQ_PINS+j*8)+:8] = 8'b11111101; + Data_GenW0[(2*NUM_DQ_PINS+j*8)+:8] = 8'b11111011; + Data_GenW0[(3*NUM_DQ_PINS+j*8)+:8] = 8'b11110111; + Data_GenW0[(4*NUM_DQ_PINS+j*8)+:8] = 8'b11101111; + Data_GenW0[(5*NUM_DQ_PINS+j*8)+:8] = 8'b11011111; + Data_GenW0[(6*NUM_DQ_PINS+j*8)+:8] = 8'b10111111; + Data_GenW0[(7*NUM_DQ_PINS+j*8)+:8] = 8'b01111111; + + end + end + + + end +endfunction + +always @ (posedge clk_i) begin + if (data_mode_rr_c[2:0] == 3'b101 || data_mode_rr_c[2:0] == 3'b100 || data_mode_rr_c[2:0] == 3'b110) // WALKING ONES + sel_w1gen_logic <= #TCQ 1'b1; + else + sel_w1gen_logic <= #TCQ 1'b0; +end + + + +generate +genvar m; + for (m=0; m < (2*nCK_PER_CLK*NUM_DQ_PINS/8) - 1; m= m+1) + begin: w1_gp + assign w1data_group[m] = ( (w1data[(m*8+7):m*8]) != 8'h00); + end +endgenerate + + + + generate + if ((NUM_DQ_PINS == 8 ) &&(DATA_PATTERN == "DGEN_WALKING1" || DATA_PATTERN == "DGEN_WALKING0" || DATA_PATTERN == "DGEN_ALL")) + begin : WALKING_ONE_8_PATTERN + if (nCK_PER_CLK == 2) begin : WALKING_ONE_8_PATTERN_NCK_2 + always @ (posedge clk_i) begin + if( (fifo_rdy_i) || cmd_startC ) + if (cmd_startC ) begin + if (sel_w1gen_logic) begin + if (data_mode_i == 4'b0101) + w1data <= #TCQ Data_Gen(32'b0); + else + w1data <= #TCQ Data_GenW0(32'b0); + end + end + else if (fifo_rdy_i) begin + w1data[4*NUM_DQ_PINS - 1:3*NUM_DQ_PINS] <= #TCQ {w1data[4*NUM_DQ_PINS - 5:3*NUM_DQ_PINS ],w1data[4*NUM_DQ_PINS - 1:4*NUM_DQ_PINS - 4]}; + w1data[3*NUM_DQ_PINS - 1:2*NUM_DQ_PINS] <= #TCQ {w1data[3*NUM_DQ_PINS - 5:2*NUM_DQ_PINS ],w1data[3*NUM_DQ_PINS - 1:3*NUM_DQ_PINS - 4]}; + w1data[2*NUM_DQ_PINS - 1:1*NUM_DQ_PINS] <= #TCQ {w1data[2*NUM_DQ_PINS - 5:1*NUM_DQ_PINS ],w1data[2*NUM_DQ_PINS - 1:2*NUM_DQ_PINS - 4]}; + w1data[1*NUM_DQ_PINS - 1:0*NUM_DQ_PINS] <= #TCQ {w1data[1*NUM_DQ_PINS - 5:0*NUM_DQ_PINS ],w1data[1*NUM_DQ_PINS - 1:1*NUM_DQ_PINS - 4]}; + end + end // end of always + end // end of nCK_PER_CLK == 2 + else + begin: WALKING_ONE_8_PATTERN_NCK_4 + always @ (posedge clk_i) begin + if( (fifo_rdy_i) || cmd_startC ) + if (cmd_startC ) begin + if (sel_w1gen_logic) begin + if (data_mode_i == 4'b0101) + w1data <= #TCQ Data_Gen(32'b0); + else + w1data <= #TCQ Data_GenW0(32'b0); + end + end + else if (fifo_rdy_i ) begin + w1data[8*NUM_DQ_PINS - 1:7*NUM_DQ_PINS] <= #TCQ w1data[8*NUM_DQ_PINS - 1:7*NUM_DQ_PINS ]; + w1data[7*NUM_DQ_PINS - 1:6*NUM_DQ_PINS] <= #TCQ w1data[7*NUM_DQ_PINS - 1:6*NUM_DQ_PINS ]; + w1data[6*NUM_DQ_PINS - 1:5*NUM_DQ_PINS] <= #TCQ w1data[6*NUM_DQ_PINS - 1:5*NUM_DQ_PINS ]; + w1data[5*NUM_DQ_PINS - 1:4*NUM_DQ_PINS] <= #TCQ w1data[5*NUM_DQ_PINS - 1:4*NUM_DQ_PINS ]; + w1data[4*NUM_DQ_PINS - 1:3*NUM_DQ_PINS] <= #TCQ w1data[4*NUM_DQ_PINS - 1:3*NUM_DQ_PINS ]; + w1data[3*NUM_DQ_PINS - 1:2*NUM_DQ_PINS] <= #TCQ w1data[3*NUM_DQ_PINS - 1:2*NUM_DQ_PINS ]; + w1data[2*NUM_DQ_PINS - 1:1*NUM_DQ_PINS] <= #TCQ w1data[2*NUM_DQ_PINS - 1:1*NUM_DQ_PINS ]; + w1data[1*NUM_DQ_PINS - 1:0*NUM_DQ_PINS] <= #TCQ w1data[1*NUM_DQ_PINS - 1:0*NUM_DQ_PINS ]; + end + end // end of always + end // end of nCK_PER_CLK == 4 + end + + else if ((NUM_DQ_PINS != 8 ) &&(DATA_PATTERN == "DGEN_WALKING1" || DATA_PATTERN == "DGEN_WALKING0" || DATA_PATTERN == "DGEN_ALL")) + begin : WALKING_ONE_64_PATTERN + if (nCK_PER_CLK == 2) begin : WALKING_ONE_64_PATTERN_NCK_2 + always @ (posedge clk_i) begin + if( (fifo_rdy_i) || cmd_startC ) + if (cmd_startC ) begin + if (sel_w1gen_logic) begin + if (data_mode_i == 4'b0101) + w1data <= #TCQ Data_Gen(32'b0); + else + w1data <= #TCQ Data_GenW0(32'b0); + end + end + else if (fifo_rdy_i) begin + w1data[4*NUM_DQ_PINS - 1:3*NUM_DQ_PINS] <= #TCQ {w1data[4*NUM_DQ_PINS - 5:3*NUM_DQ_PINS ],w1data[4*NUM_DQ_PINS - 1:4*NUM_DQ_PINS - 4]}; + w1data[3*NUM_DQ_PINS - 1:2*NUM_DQ_PINS] <= #TCQ {w1data[3*NUM_DQ_PINS - 5:2*NUM_DQ_PINS ],w1data[3*NUM_DQ_PINS - 1:3*NUM_DQ_PINS - 4]}; + w1data[2*NUM_DQ_PINS - 1:1*NUM_DQ_PINS] <= #TCQ {w1data[2*NUM_DQ_PINS - 5:1*NUM_DQ_PINS ],w1data[2*NUM_DQ_PINS - 1:2*NUM_DQ_PINS - 4]}; + w1data[1*NUM_DQ_PINS - 1:0*NUM_DQ_PINS] <= #TCQ {w1data[1*NUM_DQ_PINS - 5:0*NUM_DQ_PINS ],w1data[1*NUM_DQ_PINS - 1:1*NUM_DQ_PINS - 4]}; + end + end // end of always + end //end of nCK_PER_CLK == 2 + else + begin: WALKING_ONE_64_PATTERN_NCK_4 + always @ (posedge clk_i) begin + if( (fifo_rdy_i) || cmd_startC ) + if (cmd_startC ) begin + if (sel_w1gen_logic) begin + if (data_mode_i == 4'b0101) + w1data <= #TCQ Data_Gen(32'b0); + else + w1data <= #TCQ Data_GenW0(32'b0); + end + end + else if (fifo_rdy_i) begin + w1data[8*NUM_DQ_PINS - 1:7*NUM_DQ_PINS] <= #TCQ {w1data[8*NUM_DQ_PINS - 9:7*NUM_DQ_PINS ],w1data[8*NUM_DQ_PINS - 1:8*NUM_DQ_PINS - 8]}; + w1data[7*NUM_DQ_PINS - 1:6*NUM_DQ_PINS] <= #TCQ {w1data[7*NUM_DQ_PINS - 9:6*NUM_DQ_PINS ],w1data[7*NUM_DQ_PINS - 1:7*NUM_DQ_PINS - 8]}; + w1data[6*NUM_DQ_PINS - 1:5*NUM_DQ_PINS] <= #TCQ {w1data[6*NUM_DQ_PINS - 9:5*NUM_DQ_PINS ],w1data[6*NUM_DQ_PINS - 1:6*NUM_DQ_PINS - 8]}; + w1data[5*NUM_DQ_PINS - 1:4*NUM_DQ_PINS] <= #TCQ {w1data[5*NUM_DQ_PINS - 9:4*NUM_DQ_PINS ],w1data[5*NUM_DQ_PINS - 1:5*NUM_DQ_PINS - 8]}; + + w1data[4*NUM_DQ_PINS - 1:3*NUM_DQ_PINS] <= #TCQ {w1data[4*NUM_DQ_PINS - 9:3*NUM_DQ_PINS ],w1data[4*NUM_DQ_PINS - 1:4*NUM_DQ_PINS - 8]}; + w1data[3*NUM_DQ_PINS - 1:2*NUM_DQ_PINS] <= #TCQ {w1data[3*NUM_DQ_PINS - 9:2*NUM_DQ_PINS ],w1data[3*NUM_DQ_PINS - 1:3*NUM_DQ_PINS - 8]}; + w1data[2*NUM_DQ_PINS - 1:1*NUM_DQ_PINS] <= #TCQ {w1data[2*NUM_DQ_PINS - 9:1*NUM_DQ_PINS ],w1data[2*NUM_DQ_PINS - 1:2*NUM_DQ_PINS - 8]}; + w1data[1*NUM_DQ_PINS - 1:0*NUM_DQ_PINS] <= #TCQ {w1data[1*NUM_DQ_PINS - 9:0*NUM_DQ_PINS ],w1data[1*NUM_DQ_PINS - 1:1*NUM_DQ_PINS - 8]}; + end + end // end of always + end //end of nCK_PER_CLK == 4 + end + + else + begin: NO_WALKING_PATTERN + always @ (posedge clk_i) + w1data <= 'b0; + end + endgenerate + + +// HAMMER_PATTERN_MINUS: generate walking HAMMER data pattern except 1 bit for the whole burst. The incoming addr_i[5:2] determine +// the position of the pin driving oppsite polarity +// addr_i[6:2] = 5'h0f ; 32 bit data port +// => the rsing data pattern will be 32'b11111111_11111111_01111111_11111111 +// => the falling data pattern will be 32'b00000000_00000000_00000000_00000000 + +// Only generate NUM_DQ_PINS width of hdata and will do concatenation in above level. +always @ (posedge clk_i) +begin + for (i= 0; i <= 2*NUM_DQ_PINS - 1; i= i+1) //begin: hammer_data + + if ( i >= NUM_DQ_PINS ) + if (SEL_VICTIM_LINE == NUM_DQ_PINS) + hdata[i] <= 1'b0; + else if ( + ((i == SEL_VICTIM_LINE-1) || + (i-NUM_DQ_PINS) == SEL_VICTIM_LINE ))//|| + + hdata[i] <= 1'b1; + else + hdata[i] <= 1'b0; + + else + + hdata[i] <= 1'b1; + + +end +generate +if (nCK_PER_CLK == 2) +begin : HAMMER_2 + assign hammer_data = {2{hdata[2*NUM_DQ_PINS - 1:0]}}; +end +else +begin : HAMMER_4 + assign hammer_data = {4{hdata[2*NUM_DQ_PINS - 1:0]}}; +end +endgenerate + + +// ADDRESS_PATTERN: use the address as the 1st data pattern for the whole burst. For example +// Dataport 32 bit width with starting addr_i = 32'h12345678, burst length 8 +// => the 1st data pattern : 32'h12345680 +// => the 2nd data pattern : 32'h12345688 +// => the 3rd data pattern : 32'h12345690 +// => the 4th data pattern : 32'h12345698 +generate + +reg COut_a; +if (DATA_PATTERN == "DGEN_ADDR" || DATA_PATTERN == "DGEN_ALL") +begin : ADDRESS_PATTERN + always @ (posedge clk_i) + begin + if (cmd_startD) + /// 35:0 + acounts <= #TCQ {4'b0000,addr_i} ; + else if (user_burst_cnt_larger_1_r && data_rdy_i ) begin + if (nCK_PER_CLK == 2) + if (FAMILY == "VIRTEX6") + if (MEM_TYPE == "QDR2PLUS") + {COut_a,acounts} <= #TCQ acounts + 1; + else + {COut_a,acounts} <= #TCQ acounts + 4; + + else begin // "SPARTAN6" + if (DWIDTH == 32) + {COut_a,acounts} <= #TCQ acounts + 4; + else if (DWIDTH == 64) + {COut_a,acounts} <= #TCQ acounts + 8; + else if (DWIDTH == 64) + {COut_a,acounts} <= #TCQ acounts + 16; + end + else + {COut_a,acounts} <= #TCQ acounts + 8; + end + else + acounts <= #TCQ acounts; + + end + + assign adata_tmp = {USER_BUS_DWIDTH/32{acounts[31:0]}}; + + end +else +begin: NO_ADDRESS_PATTERN + assign adata_tmp = 'b0; +end +endgenerate + + always @ (posedge clk_i) + begin + if (cmd_startD) + tg_st_addr_o <= addr_i; + end + +// PRBS_PATTERN: use the address as the PRBS seed data pattern for the whole burst. For example +// Dataport 32 bit width with starting addr_i = 30'h12345678, user burst length 4 +// + +// this user_burst_cnt_larger_bram is used by vio_init_pattern_bram module +// only +always @ (posedge clk_i) + if (user_burst_cnt > 6'd1 || cmd_startE) + user_burst_cnt_larger_bram <= 1'b1; + else + user_burst_cnt_larger_bram <= 1'b0; + + +generate +if (DMODE == "WRITE") +begin: wr_ubr + always @ (posedge clk_i) + if (user_burst_cnt > 6'd1 || cmd_startE) + user_burst_cnt_larger_1_r <= 1'b1; + else + user_burst_cnt_larger_1_r <= 1'b0; +end +else +begin: rd_ubr + + always @ (posedge clk_i) + if (user_burst_cnt >= 6'd1 || cmd_startE) + user_burst_cnt_larger_1_r <= 1'b1; + else if (ReSeedcounter[31:0] == 255) + user_burst_cnt_larger_1_r <= 1'b0; +end +endgenerate + + +generate +// When doing eye_test, traffic gen only does write and want to +// keep the prbs random and address is fixed at a location. +if (EYE_TEST == "TRUE") +begin : d_clk_en1 +always @(data_clk_en) + data_clk_en = 1'b1;//fifo_rdy_i && data_rdy_i && user_burst_cnt > 6'd1; +end +else if (DMODE == "WRITE") + begin: wr_dataclken + always @ (data_rdy_i , user_burst_cnt_larger_1_r,ReSeedcounter[31:0]) + +begin + + if ( data_rdy_i && (user_burst_cnt_larger_1_r || ReSeedcounter[31:0] == 255 )) + data_clk_en = 1'b1; +else + data_clk_en = 1'b0; +end + +always @ (data_rdy_i , user_burst_cnt_larger_1_r,ReSeedcounter) +begin + + if ( data_rdy_i && (user_burst_cnt_larger_1_r || ReSeedcounter[31:0] == 255 )) + data_clk_en2 = 1'b1; + else + data_clk_en2 = 1'b0; + end + end else // (DMODE == "READ") + begin: rd_dataclken + always @ (fifo_rdy_i, data_rdy_i , user_burst_cnt_larger_1_r) + begin + if (fifo_rdy_i && data_rdy_i && user_burst_cnt_larger_1_r ) + data_clk_en <= 1'b1; + else + data_clk_en <= 1'b0; + end + always @ (fifo_rdy_i, data_rdy_i , user_burst_cnt_larger_1_r) + begin + if (fifo_rdy_i && data_rdy_i && user_burst_cnt_larger_1_r ) + data_clk_en2 <= 1'b1; +else + data_clk_en2 <= 1'b0; +end + +end +endgenerate + +generate +if (DATA_PATTERN == "DGEN_PRBS" || DATA_PATTERN == "DGEN_ALL") +begin : PSUEDO_PRBS_PATTERN + +// PRBS DATA GENERATION +// xor all the tap positions before feedback to 1st stage. + always @ (posedge clk_i) + m_addr_r <= m_addr_i; + + + mig_7series_v4_0_data_prbs_gen # + ( + .PRBS_WIDTH (32), + .SEED_WIDTH (32), + .EYE_TEST (EYE_TEST) + ) + data_prbs_gen + ( + .clk_i (clk_i), + .rst_i (rst_i), + .clk_en (data_clk_en), + + .prbs_seed_init (cmd_startE), + .prbs_seed_i (m_addr_i[31:0]), + .prbs_o (mcb_prbs_data) + + ); +end +else +begin:NO_PSUEDO_PRBS_PATTERN + assign mcb_prbs_data = 'b0; +end +endgenerate + + //*************************************************************************** + // "Full pseudo-PRBS" data generation + //*************************************************************************** + + genvar r; + + // Assign initial seed (used for 1st data bit); use alternating 1/0 pat + assign prbs_seed[0] = {(PRBS_WIDTH/2){2'b10}}; + + // Generate seeds for all other data bits, each one is staggered in time + // by one LFSR shift from the preceeding bit + + + + + + + + + + + generate + if (PRBS_WIDTH == 8) begin: gen_seed_prbs8 + for (r = 1; r < NUM_DQ_PINS; r = r + 1) begin: gen_loop_seed_prbs + // PRBS 8 - feedback uses taps [7,5,4,3] + assign prbs_seed[r] = {prbs_seed[r-1][PRBS_WIDTH-2:0], + ~(prbs_seed[r-1][7] ^ prbs_seed[r-1][5] ^ + prbs_seed[r-1][4] ^ prbs_seed[r-1][3])}; + end + end else if (PRBS_WIDTH == 10) begin: gen_next_lfsr_prbs10 + // PRBS 10 - feedback uses taps [9,6] + for (r = 1; r < NUM_DQ_PINS; r = r + 1) begin: gen_loop_seed_prbs + assign prbs_seed[r] = {prbs_seed[r-1][PRBS_WIDTH-2:0], + ~(prbs_seed[r-1][9] ^ prbs_seed[r-1][6])}; + end + end + endgenerate + + // Instantiate one PRBS per data bit. Note this is only temporary - + // eventually it will be far more efficient to use a large shift register + // that is initialized with 2*CK_PER_CLK*NUM_DQ_PINS worth of LFSR cycles + // rather than individual PRBS generators. For now this is done because + // not sure if current logic allows for the initial delay required to fill + // this large shift register + generate + for (r = 0; r < NUM_DQ_PINS; r = r + 1) begin: gen_prbs_modules + mig_7series_v4_0_tg_prbs_gen # + (.nCK_PER_CLK (nCK_PER_CLK), + .TCQ (TCQ), + .PRBS_WIDTH (PRBS_WIDTH) + ) + u_data_prbs_gen + ( + .clk_i (clk_i), + .rst_i (rst_i), + .clk_en_i (data_clk_en), + .prbs_seed_i (prbs_seed[r]), + .prbs_o (prbs_out[r]), + .ReSeedcounter_o (ReSeedcounter[32*r+:32]) + ); + end + endgenerate + + generate + for (r = 0; r < NUM_DQ_PINS; r = r + 1) begin: gen_prbs_rise_fall_data + if (nCK_PER_CLK == 2) begin: gen_ck_per_clk2 + assign prbsdata_rising_0[r] = prbs_out[r][0]; + assign prbsdata_falling_0[r] = prbs_out[r][1]; + assign prbsdata_rising_1[r] = prbs_out[r][2]; + assign prbsdata_falling_1[r] = prbs_out[r][3]; + end else if (nCK_PER_CLK == 4) begin: gen_ck_per_clk4 + assign prbsdata_rising_0[r] = prbs_out[r][0]; + assign prbsdata_falling_0[r] = prbs_out[r][1]; + assign prbsdata_rising_1[r] = prbs_out[r][2]; + assign prbsdata_falling_1[r] = prbs_out[r][3]; + assign prbsdata_rising_2[r] = prbs_out[r][4]; + assign prbsdata_falling_2[r] = prbs_out[r][5]; + assign prbsdata_rising_3[r] = prbs_out[r][6]; + assign prbsdata_falling_3[r] = prbs_out[r][7]; + end + end + endgenerate + + //*************************************************************************** + +//***debug PRBS in ddr3 hware +//assign dbg_prbs_tpts[15:0] = {prbs_shift_value3 ,prbs_shift_value2,prbs_shift_value1,prbs_shift_value0}; +//assign dbg_prbs_tpts[21:16] = prbs_mux_counter[5:0]; +//assign dbg_prbs_tpts[22] = data_clk_en2; +//assign dbg_prbs_tpts[23] = mode_load_r1 ; +//assign dbg_prbs_tpts[24] = mode_has_loaded; +//fifo_rdy_i && data_rdy_i +//assign dbg_prbs_tpts[25] = data_rdy_i; +//assign dbg_prbs_tpts[26] = fifo_rdy_i; + +//assign dbg_prbs_tpts[31:27] = 'b0; + +//assign dbg_prbs_tpts[63:32] = ReSeedcounter[31:0]; +//assign dbg_prbs_tpts[64+:10] = user_burst_cnt[9:0]; +//assign dbg_prbs_tpts[74] = user_burst_cnt_larger_1_r; + +//assign dbg_prbs_tpts[127:75] = 'b0; + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_tg_prbs_gen.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_tg_prbs_gen.v new file mode 100755 index 0000000..c1b3a81 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_tg_prbs_gen.v @@ -0,0 +1,246 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: tb_cmd_gen.v +// /___/ /\ Date Last Modified: $Date: 2011/06/02 08:37:24 $ +// \ \ / \ Date Created: Fri Sep 01 2006 +// \___\/\___\ +// +//Device: 7 Series +//Design Name: PRBS_Generator +//Purpose: +// Overview: +// Implements a "pseudo-PRBS" generator. Basically this is a standard +// PRBS generator (using an linear feedback shift register) along with +// logic to force the repetition of the sequence after 2^PRBS_WIDTH +// samples (instead of 2^PRBS_WIDTH - 1). The LFSR is based on the design +// from Table 1 of XAPP 210. Note that only 8- and 10-tap long LFSR chains +// are supported in this code +// Parameter Requirements: +// 1. PRBS_WIDTH = 8 or 10 +// 2. PRBS_WIDTH >= 2*nCK_PER_CLK +// Output notes: +// The output of this module consists of 2*nCK_PER_CLK bits, these contain +// the value of the LFSR output for the next 2*CK_PER_CLK bit times. Note +// that prbs_o[0] contains the bit value for the "earliest" bit time. +//Reference: +//Revision History: +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_tg_prbs_gen # + ( + parameter TCQ = 100, // clk->out delay (sim only) + parameter PRBS_WIDTH = 10, // LFSR shift register length + parameter nCK_PER_CLK = 4 // output:internal clock freq ratio + ) + ( + input clk_i, // input clock + input clk_en_i, // clock enable + input rst_i, // synchronous reset + input [PRBS_WIDTH-1:0] prbs_seed_i, // initial LFSR seed + output [2*nCK_PER_CLK-1:0] prbs_o, // generated address + // ReSeedcounter used to indicate when pseudo-PRBS sequence has reached + // the end of it's cycle. May not be needed, but for now included to + // maintain compatibility with current TG code + output [31:0] ReSeedcounter_o + ); + + //*************************************************************************** + + function integer clogb2 (input integer size); + begin + size = size - 1; + for (clogb2=1; size>1; clogb2=clogb2+1) + size = size >> 1; + end + endfunction + + // Number of internal clock cycles before the PRBS sequence will repeat + localparam PRBS_SEQ_LEN_CYCLES = (2**PRBS_WIDTH) / (2*nCK_PER_CLK); + localparam PRBS_SEQ_LEN_CYCLES_BITS = clogb2(PRBS_SEQ_LEN_CYCLES); + + reg [PRBS_WIDTH-1:0] lfsr_reg_r; + wire [PRBS_WIDTH-1:0] next_lfsr_reg; + reg [PRBS_WIDTH-1:0] reseed_cnt_r; + reg reseed_prbs_r; + reg [PRBS_SEQ_LEN_CYCLES_BITS-1:0] sample_cnt_r; + + genvar i; + + //*************************************************************************** + + assign ReSeedcounter_o = {{(32-PRBS_WIDTH){1'b0}}, reseed_cnt_r}; + always @ (posedge clk_i) + if (rst_i) + reseed_cnt_r <= 'b0; + else if (clk_en_i) + if (reseed_cnt_r == {PRBS_WIDTH {1'b1}}) + reseed_cnt_r <= 'b0; + else + reseed_cnt_r <= reseed_cnt_r + 1; + + //*************************************************************************** + + // Generate PRBS reset signal to ensure that PRBS sequence repeats after + // every 2**PRBS_WIDTH samples. Basically what happens is that we let the + // LFSR run for an extra cycle after "truly PRBS" 2**PRBS_WIDTH - 1 + // samples have past. Once that extra cycle is finished, we reseed the LFSR + always @(posedge clk_i) + if (rst_i) begin + sample_cnt_r <= #TCQ 'b0; + reseed_prbs_r <= #TCQ 1'b0; + end else if (clk_en_i) begin + // The rollver count should always be [(power of 2) - 1] + sample_cnt_r <= #TCQ sample_cnt_r + 1; + // Assert PRBS reset signal so that it is simultaneously with the + // last sample of the sequence + if (sample_cnt_r == PRBS_SEQ_LEN_CYCLES - 2) + reseed_prbs_r <= #TCQ 1'b1; + else + reseed_prbs_r <= #TCQ 1'b0; + end + + // Load initial seed or update LFSR contents + always @(posedge clk_i) + if (rst_i) + lfsr_reg_r <= #TCQ prbs_seed_i; + else if (clk_en_i) + if (reseed_prbs_r) + lfsr_reg_r <= #TCQ prbs_seed_i; + else begin + lfsr_reg_r <= #TCQ next_lfsr_reg; + end + + // Calculate next set of nCK_PER_CLK samplse for LFSR + // Basically we calculate all PRBS_WIDTH samples in parallel, rather + // than serially shifting the LFSR to determine future sample values. + // Shifting is possible, but requires multiple shift registers to be + // instantiated because the fabric clock frequency is running at a + // fraction of the output clock frequency + generate + if (PRBS_WIDTH == 8) begin: gen_next_lfsr_prbs8 + if (nCK_PER_CLK == 2) begin: gen_ck_per_clk2 + assign next_lfsr_reg[7] = lfsr_reg_r[3]; + assign next_lfsr_reg[6] = lfsr_reg_r[2]; + assign next_lfsr_reg[5] = lfsr_reg_r[1]; + assign next_lfsr_reg[4] = lfsr_reg_r[0]; + assign next_lfsr_reg[3] = ~(lfsr_reg_r[7] ^ lfsr_reg_r[5] ^ + lfsr_reg_r[4] ^ lfsr_reg_r[3]); + assign next_lfsr_reg[2] = ~(lfsr_reg_r[6] ^ lfsr_reg_r[4] ^ + lfsr_reg_r[3] ^ lfsr_reg_r[2]); + assign next_lfsr_reg[1] = ~(lfsr_reg_r[5] ^ lfsr_reg_r[3] ^ + lfsr_reg_r[2] ^ lfsr_reg_r[1]); + assign next_lfsr_reg[0] = ~(lfsr_reg_r[4] ^ lfsr_reg_r[2] ^ + lfsr_reg_r[1] ^ lfsr_reg_r[0]); + end else if (nCK_PER_CLK == 4) begin: gen_ck_per_clk4 + assign next_lfsr_reg[7] = ~(lfsr_reg_r[7] ^ lfsr_reg_r[5] ^ + lfsr_reg_r[4] ^ lfsr_reg_r[3]); + assign next_lfsr_reg[6] = ~(lfsr_reg_r[6] ^ lfsr_reg_r[4] ^ + lfsr_reg_r[3] ^ lfsr_reg_r[2]) ; + assign next_lfsr_reg[5] = ~(lfsr_reg_r[5] ^ lfsr_reg_r[3] ^ + lfsr_reg_r[2] ^ lfsr_reg_r[1]); + assign next_lfsr_reg[4] = ~(lfsr_reg_r[4] ^ lfsr_reg_r[2] ^ + lfsr_reg_r[1] ^ lfsr_reg_r[0]); + assign next_lfsr_reg[3] = ~(lfsr_reg_r[3] ^ lfsr_reg_r[1] ^ + lfsr_reg_r[0] ^ next_lfsr_reg[7]); + assign next_lfsr_reg[2] = ~(lfsr_reg_r[2] ^ lfsr_reg_r[0] ^ + next_lfsr_reg[7] ^ next_lfsr_reg[6]); + assign next_lfsr_reg[1] = ~(lfsr_reg_r[1] ^ next_lfsr_reg[7] ^ + next_lfsr_reg[6] ^ next_lfsr_reg[5]); + assign next_lfsr_reg[0] = ~(lfsr_reg_r[0] ^ next_lfsr_reg[6] ^ + next_lfsr_reg[5] ^ next_lfsr_reg[4]); + end + end else if (PRBS_WIDTH == 10) begin: gen_next_lfsr_prbs10 + if (nCK_PER_CLK == 2) begin: gen_ck_per_clk2 + assign next_lfsr_reg[9] = lfsr_reg_r[5]; + assign next_lfsr_reg[8] = lfsr_reg_r[4]; + assign next_lfsr_reg[7] = lfsr_reg_r[3]; + assign next_lfsr_reg[6] = lfsr_reg_r[2]; + assign next_lfsr_reg[5] = lfsr_reg_r[1]; + assign next_lfsr_reg[4] = lfsr_reg_r[0]; + assign next_lfsr_reg[3] = ~(lfsr_reg_r[9] ^ lfsr_reg_r[6]); + assign next_lfsr_reg[2] = ~(lfsr_reg_r[8] ^ lfsr_reg_r[5]); + assign next_lfsr_reg[1] = ~(lfsr_reg_r[7] ^ lfsr_reg_r[4]); + assign next_lfsr_reg[0] = ~(lfsr_reg_r[6] ^ lfsr_reg_r[3]); + end else if (nCK_PER_CLK == 4) begin: gen_ck_per_clk4 + assign next_lfsr_reg[9] = lfsr_reg_r[1]; + assign next_lfsr_reg[8] = lfsr_reg_r[0]; + assign next_lfsr_reg[7] = ~(lfsr_reg_r[9] ^ lfsr_reg_r[6]); + assign next_lfsr_reg[6] = ~(lfsr_reg_r[8] ^ lfsr_reg_r[5]); + assign next_lfsr_reg[5] = ~(lfsr_reg_r[7] ^ lfsr_reg_r[4]); + assign next_lfsr_reg[4] = ~(lfsr_reg_r[6] ^ lfsr_reg_r[3]); + assign next_lfsr_reg[3] = ~(lfsr_reg_r[5] ^ lfsr_reg_r[2]); + assign next_lfsr_reg[2] = ~(lfsr_reg_r[4] ^ lfsr_reg_r[1]); + assign next_lfsr_reg[1] = ~(lfsr_reg_r[3] ^ lfsr_reg_r[0]); + assign next_lfsr_reg[0] = ~(lfsr_reg_r[2] ^ next_lfsr_reg[7]); + end + end + endgenerate + + // Output highest (2*nCK_PER_CLK) taps of LFSR - note that the "earliest" + // tap is highest tap (e.g. for an 8-bit LFSR, tap[7] contains the first + // data sent out the shift register), therefore tap[PRBS_WIDTH-1] must be + // routed to bit[0] of the output, tap[PRBS_WIDTH-2] to bit[1] of the + // output, etc. + generate + for (i = 0; i < 2*nCK_PER_CLK; i = i + 1) begin: gen_prbs_transpose + assign prbs_o[i] = lfsr_reg_r[PRBS_WIDTH-1-i]; + end + endgenerate + + +endmodule + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_tg_status.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_tg_status.v new file mode 100755 index 0000000..e06c5d8 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_tg_status.v @@ -0,0 +1,127 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: tg_status.v +// /___/ /\ Date Last Modified: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This module compare the memory read data agaisnt compare data that generated from data_gen module. +// Error signal will be asserted if the comparsion is not equal. +//Reference: +//Revision History: +//***************************************************************************** + +`timescale 1ps/1ps + + +module mig_7series_v4_0_tg_status #( + parameter TCQ = 100, + + parameter DWIDTH = 32 + ) + ( + + + input clk_i , + input rst_i , + input manual_clear_error, + input data_error_i , + input [DWIDTH-1:0] cmp_data_i, + input [DWIDTH-1:0] rd_data_i , + input [31:0] cmp_addr_i , + input [5:0] cmp_bl_i , + input mcb_cmd_full_i , + input mcb_wr_full_i, + input mcb_rd_empty_i, + output reg [64 + (2*DWIDTH - 1):0] error_status, + output error + ); + +reg data_error_r; +reg error_set; +assign error = error_set; + +always @ (posedge clk_i) + data_error_r <= #TCQ data_error_i; + +always @ (posedge clk_i) +begin + +if (rst_i || manual_clear_error) begin + error_status <= #TCQ 'b0; + error_set <= #TCQ 1'b0; +end +else begin + // latch the first error only + if (data_error_i && ~data_error_r && ~error_set ) begin + error_status[31:0] <= #TCQ cmp_addr_i; + error_status[37:32] <= #TCQ cmp_bl_i; + error_status[40] <= #TCQ mcb_cmd_full_i; + error_status[41] <= #TCQ mcb_wr_full_i; + error_status[42] <= #TCQ mcb_rd_empty_i; + error_set <= #TCQ 1'b1; + error_status[64 + (DWIDTH - 1) :64] <= #TCQ cmp_data_i; + error_status[64 + (2*DWIDTH - 1):64 + DWIDTH] <= #TCQ rd_data_i; + + end + + error_status[39:38] <= #TCQ 'b0; // reserved + error_status[63:43] <= #TCQ 'b0; // reserved + + +end end + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_traffic_gen_top.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_traffic_gen_top.v new file mode 100755 index 0000000..94cf921 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_traffic_gen_top.v @@ -0,0 +1,627 @@ +//***************************************************************************** +// (c) Copyright 2009-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor : Xilinx +// \ \ \/ Application : MIG +// \ \ Filename : traffic_gen_top.v +// / / Date Last Modified : $Date: 2011/06/02 08:37:25 $ +// /___/ /\ Date Created : Fri Mar 26 2010 +// \ \ / \ +// \___\/\___\ +// +//Device : Virtex-7 +//Design Name : DDR/DDR2/DDR3/LPDDR +//Purpose : This Traffic Gen supports both nCK_PER_CLK x4 mode and nCK_PER_CLK x2 mode for +// 7series MC UI Interface. The user bus datawidth has a equation: 2*nCK_PER_CLK*DQ_WIDTH. +// +//Reference : +//Revision History : 11/17/2011 Adding CMD_GAP_DELAY to allow control of next command generation after current +// completion of burst command in user interface port. +// 1/4/2012 Added vio_percent_write in memc_traffic_gen module to let user specify percentage +// of write commands out of mix write/read commands. User can +// modify this file and bring the signals to top level to use it. +// The value is between 1(10 percent) through 10 (100 percent). +// The signal value is only used if vio_instr_mode_value == 4. +// 5/21/2012 Removed BL_WIDTH parameter and forced internally to 10. +// +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_traffic_gen_top #( + parameter TCQ = 100, // SIMULATION tCQ delay. + + parameter SIMULATION = "FALSE", + parameter FAMILY = "VIRTEX7", // "VIRTEX6", "VIRTEX7" + parameter MEM_TYPE = "DDR3", + + parameter TST_MEM_INSTR_MODE = "R_W_INSTR_MODE", // Spartan6 Available commands: + // "FIXED_INSTR_R_MODE", "FIXED_INSTR_W_MODE" + // "R_W_INSTR_MODE", "RP_WP_INSTR_MODE + // "R_RP_W_WP_INSTR_MODE", "R_RP_W_WP_REF_INSTR_MODE" + // ******************************* + // Virtex 6 Available commands: + // "R_W_INSTR_MODE" + // "FIXED_INSTR_R_MODE" - Only Read commands will be generated. + // "FIXED_INSTR_W_MODE" -- Only Write commands will be generated. + // "FIXED_INSTR_R_EYE_MODE" Only Read commands will be generated + // with lower 10 bits address in sequential increment. + // This mode is for Read Eye measurement. + + // parameter BL_WIDTH = 10, // Define User Interface Burst length width. + // // For a maximum 128 continuous back_to_back command, set this to 8. + parameter nCK_PER_CLK = 4, // Memory Clock ratio to fabric clock. + parameter NUM_DQ_PINS = 8, // Total number of memory dq pins in the design. + parameter MEM_BURST_LEN = 8, // MEMROY Burst Length + parameter MEM_COL_WIDTH = 10, // Memory component column width. + parameter DATA_WIDTH = NUM_DQ_PINS*2*nCK_PER_CLK, // User Interface Data Width + parameter ADDR_WIDTH = 29, // Command Address Bus width + parameter MASK_SIZE = DATA_WIDTH/8, // + parameter DATA_MODE = 4'b0010, // Default Data mode is set to Address as Data pattern. + + // parameters define the address range + parameter BEGIN_ADDRESS = 32'h00000100, + parameter END_ADDRESS = 32'h000002ff, + parameter PRBS_EADDR_MASK_POS = 32'hfffffc00, + // debug parameters + parameter CMDS_GAP_DELAY = 6'd0, // CMDS_GAP_DELAY is used in memc_flow_vcontrol module to insert delay between + // each sucessive burst commands. The maximum delay is 32 clock cycles + // after the last command. + parameter SEL_VICTIM_LINE = NUM_DQ_PINS, // VICTIM LINE is one of the DQ pins is selected to be always asserted when + // DATA MODE is hammer pattern. No VICTIM_LINE will be selected if + // SEL_VICTIM_LINE = NUM_DQ_PINS. + parameter CMD_WDT = 'h3FF, + parameter WR_WDT = 'h1FFF, + parameter RD_WDT = 'hFF, + + parameter EYE_TEST = "FALSE", + // S6 Only parameters + parameter PORT_MODE = "BI_MODE", + parameter DATA_PATTERN = "DGEN_ALL", // Default is to generate all data pattern circuits. + parameter CMD_PATTERN = "CGEN_ALL" // Default is to generate all commands pattern circuits. + + ) + ( + input clk, + input rst, + input tg_only_rst, + input manual_clear_error, + input memc_init_done, + + input memc_cmd_full, + output memc_cmd_en, + output [2:0] memc_cmd_instr, + output [5:0] memc_cmd_bl, + output [31:0] memc_cmd_addr, + + output memc_wr_en, + output memc_wr_end, + + output [DATA_WIDTH/8 - 1:0] memc_wr_mask, + output [DATA_WIDTH - 1:0] memc_wr_data, + input memc_wr_full, + + output memc_rd_en, + input [DATA_WIDTH - 1:0] memc_rd_data, + input memc_rd_empty, + + // interface to qdr interface + output qdr_wr_cmd_o, + output qdr_rd_cmd_o, + + + // Signal declarations that can be connected to vio module + input vio_pause_traffic, // Pause traffic on the fly. + input vio_modify_enable, + input [3:0] vio_data_mode_value, + input [2:0] vio_addr_mode_value, + input [3:0] vio_instr_mode_value, + input [1:0] vio_bl_mode_value, + input [9:0] vio_fixed_bl_value, + input [2:0] vio_fixed_instr_value, // Allows upper level control write only or read only + // on the fly. + // Set the vio_instr_mode_value to "0001" . + // User has control of the type of commands to be generated + // after memory has been filled with selected data pattern. + // vio_fixed_instr_value = 3'b000: Write command + // vio_fixed_instr_value = 3'b001: Read command + input vio_data_mask_gen, // data_mask generation is only supported + // when data mode = address as data . + // + input [31:0] fixed_addr_i, + + // User Specific data pattern interface that used when vio_data_mode vale = 1.4.9. + input [31:0] fixed_data_i, + input [31:0] simple_data0, + input [31:0] simple_data1, + input [31:0] simple_data2, + input [31:0] simple_data3, + input [31:0] simple_data4, + input [31:0] simple_data5, + input [31:0] simple_data6, + input [31:0] simple_data7, + input wdt_en_i, + + // BRAM interface. + // bram bus formats: + // Only SP6 has been tested. + input [38:0] bram_cmd_i, // {{bl}, {cmd}, {address[28:2]}} + input bram_valid_i, + output bram_rdy_o, // + + + // status feedback + output [DATA_WIDTH-1:0] cmp_data, + output cmp_data_valid, + output cmp_error, + output [47:0] wr_data_counts, + output [47:0] rd_data_counts, + output [NUM_DQ_PINS/8 - 1:0] dq_error_bytelane_cmp, + output error, // asserted whenever the read back data is not correct. + output [64 + (2*DATA_WIDTH - 1):0] error_status, + output [NUM_DQ_PINS/8 - 1:0] cumlative_dq_lane_error, + output reg cmd_wdt_err_o, + output reg wr_wdt_err_o, + output reg rd_wdt_err_o, + + output mem_pattern_init_done + + ); + + + + +//p0 wire declarations + wire tg_run_traffic; + wire tg_data_mask_gen; + wire run_traffic; + wire [31:0] tg_start_addr; + wire [31:0] tg_end_addr; + wire [31:0] tg_cmd_seed; + wire [31:0] tg_data_seed; + wire tg_load_seed; + wire [2:0] tg_addr_mode; + wire [3:0] tg_instr_mode; + wire [1:0] tg_bl_mode; + wire [3:0] tg_data_mode; + wire tg_mode_load; + wire [9:0] tg_fixed_bl; + wire [2:0] tg_fixed_instr; + wire tg_addr_order; + wire [5:0] cmds_gap_delay_value; + wire tg_memc_wr_en; + wire [63:0] mem_tg_tstpoints; + wire [9:0] lcl_v_fixed_bl_value; + + wire single_operation; + wire [3:0] tg_instr_mode_value; + wire [3:0] instr_mode_value; + reg tg_rst; + localparam ADDR_WIDTH_MASK = {{31-ADDR_WIDTH{1'b0}}, {ADDR_WIDTH-1{1'b1}}}; + localparam ADDR_WIDTH_MASK_1 = {{30-ADDR_WIDTH{1'b0}}, {ADDR_WIDTH{1'b1}}}; + localparam BEGIN_ADDRESS_MASK = ADDR_WIDTH_MASK & BEGIN_ADDRESS; + localparam END_ADDRESS_MASK = ADDR_WIDTH_MASK_1 & END_ADDRESS; + + localparam SHIFT_COUNT = (31-ADDR_WIDTH) ; + localparam BEGIN_ADDRESS_INT = (BEGIN_ADDRESS_MASK >= END_ADDRESS_MASK) ? (BEGIN_ADDRESS >> SHIFT_COUNT) : BEGIN_ADDRESS_MASK ; + localparam END_ADDRESS_INT = (BEGIN_ADDRESS_MASK >= END_ADDRESS_MASK) ? (END_ADDRESS >> SHIFT_COUNT) : END_ADDRESS_MASK ; + localparam TG_INIT_DATA_MODE = (DATA_PATTERN == "DGEN_ADDR") ? 4'b0010 : + (DATA_PATTERN == "DGEN_HAMMER") ? 4'b0011 : + (DATA_PATTERN == "DGEN_WALKING1") ? 4'b0101 : + (DATA_PATTERN == "DGEN_WALKING0") ? 4'b0110 : + (DATA_PATTERN == "DGEN_PRBS") ? 4'b0111 : + DATA_MODE ; + +assign single_operation = 1'b0; // Disable this for 13.3 release + + +// cmds_gap_delay_value is used in memc_flow_vcontrol module to insert delay between +// each sucessive burst commands. The maximum delay is 32 clock cycles after the last command. + function integer clogb2 (input integer size); + begin + size = size - 1; + for (clogb2=1; size>1; clogb2=clogb2+1) + size = size >> 1; + end + endfunction + + localparam CMD_WDT_WIDTH = clogb2(CMD_WDT); + localparam RD_WDT_WIDTH = clogb2(RD_WDT); + localparam WR_WDT_WIDTH = clogb2(WR_WDT); + +assign cmds_gap_delay_value = CMDS_GAP_DELAY; + +localparam TG_FAMILY = ((FAMILY == "VIRTEX6") || (FAMILY == "VIRTEX7") || (FAMILY == "7SERIES") + || (FAMILY == "KINTEX7") || (FAMILY == "ARTIX7") ) ? "VIRTEX6" : "SPARTAN6"; + +assign tg_memc_wr_en = (TG_FAMILY == "VIRTEX6") ?memc_cmd_en & ~memc_cmd_full : memc_wr_en ; +assign lcl_v_fixed_bl_value = (vio_data_mode_value == 4) ? 32:vio_fixed_bl_value; +assign tg_run_traffic = (run_traffic & ((vio_modify_enable == 1'b1) ? ~vio_pause_traffic : 1'b1)) ; +assign tg_data_mask_gen = (vio_modify_enable == 1'b1) ? vio_data_mask_gen : 1'b0 ; +assign instr_mode_value = (vio_modify_enable == 1'b1) ? vio_instr_mode_value : 4'b0010; +assign tg_instr_mode_value = (single_operation == 1'b1) ? 4'b0111: instr_mode_value; + +reg [CMD_WDT_WIDTH-1 : 0] cmd_wdt; +reg [RD_WDT_WIDTH-1 : 0] rd_wdt; +reg [WR_WDT_WIDTH-1 : 0] wr_wdt; + +// The following 'generate' statement activates the traffic generator for + // init_mem_pattern_ctr module instantiation for Port-0 + mig_7series_v4_0_init_mem_pattern_ctr # + ( + .TCQ (TCQ), + .DWIDTH (DATA_WIDTH), + + .TST_MEM_INSTR_MODE (TST_MEM_INSTR_MODE), + .nCK_PER_CLK (nCK_PER_CLK), + .MEM_BURST_LEN (MEM_BURST_LEN), + .NUM_DQ_PINS (NUM_DQ_PINS), + .MEM_TYPE (MEM_TYPE), + + .FAMILY (TG_FAMILY), + .BL_WIDTH (10), + .ADDR_WIDTH (ADDR_WIDTH), + .BEGIN_ADDRESS (BEGIN_ADDRESS_INT), + .END_ADDRESS (END_ADDRESS_INT), + .CMD_SEED_VALUE (32'h56456783), + .DATA_SEED_VALUE (32'h12345678), + .DATA_MODE (TG_INIT_DATA_MODE), + .PORT_MODE (PORT_MODE) + ) + u_init_mem_pattern_ctr + ( + .clk_i (clk), + .rst_i (tg_rst), + .memc_cmd_en_i (memc_cmd_en), + .memc_wr_en_i (tg_memc_wr_en), + .single_write_button (1'b0), // tie off these group of signals for 13.3 + .single_read_button (1'b0), + .slow_write_read_button (1'b0), + .single_operation (1'b0), + .vio_modify_enable (vio_modify_enable), + .vio_instr_mode_value (tg_instr_mode_value), + .vio_data_mode_value (vio_data_mode_value), + .vio_addr_mode_value (vio_addr_mode_value), + .vio_bl_mode_value (vio_bl_mode_value), // always set to PRBS_BL mode + .vio_fixed_bl_value (lcl_v_fixed_bl_value), // always set to 64 in order to run PRBS data pattern + .vio_data_mask_gen (vio_data_mask_gen), + .vio_fixed_instr_value (vio_fixed_instr_value), + .memc_init_done_i (memc_init_done), + .cmp_error (error), + .run_traffic_o (run_traffic), + .start_addr_o (tg_start_addr), + .end_addr_o (tg_end_addr), + .cmd_seed_o (tg_cmd_seed), + .data_seed_o (tg_data_seed), + .load_seed_o (tg_load_seed), + .addr_mode_o (tg_addr_mode), + .instr_mode_o (tg_instr_mode), + .bl_mode_o (tg_bl_mode), + .data_mode_o (tg_data_mode), + .mode_load_o (tg_mode_load), + .fixed_bl_o (tg_fixed_bl), + .fixed_instr_o (tg_fixed_instr), + .mem_pattern_init_done_o (mem_pattern_init_done) + ); + + // traffic generator instantiation for Port-0 + mig_7series_v4_0_memc_traffic_gen # + ( + .TCQ (TCQ), + .MEM_BURST_LEN (MEM_BURST_LEN), + .MEM_COL_WIDTH (MEM_COL_WIDTH), + .NUM_DQ_PINS (NUM_DQ_PINS), + .nCK_PER_CLK (nCK_PER_CLK), + + .PORT_MODE (PORT_MODE), + .DWIDTH (DATA_WIDTH), + .FAMILY (TG_FAMILY), + .MEM_TYPE (MEM_TYPE), + .SIMULATION (SIMULATION), + .DATA_PATTERN (DATA_PATTERN), + .CMD_PATTERN (CMD_PATTERN ), + .ADDR_WIDTH (ADDR_WIDTH), + .BL_WIDTH (10), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .PRBS_SADDR_MASK_POS (BEGIN_ADDRESS_INT), + .PRBS_EADDR_MASK_POS (PRBS_EADDR_MASK_POS), + .PRBS_SADDR (BEGIN_ADDRESS_INT), + .PRBS_EADDR (END_ADDRESS_INT), + .EYE_TEST (EYE_TEST) + ) + u_memc_traffic_gen + ( + .clk_i (clk), + .rst_i (tg_rst), + .run_traffic_i (tg_run_traffic), + .manual_clear_error (manual_clear_error), + .cmds_gap_delay_value (cmds_gap_delay_value), + .vio_instr_mode_value (tg_instr_mode_value), + .vio_percent_write ('b0), // bring this to top if want to specify percentage of write commands + // instr_mode_i has to be == 4 if want to use this command pattern + // runtime parameter + .mem_pattern_init_done_i (mem_pattern_init_done), + .single_operation (1'b0), + + .start_addr_i (tg_start_addr), + .end_addr_i (tg_end_addr), + .cmd_seed_i (tg_cmd_seed), + .data_seed_i (tg_data_seed), + .load_seed_i (tg_load_seed), + .addr_mode_i (tg_addr_mode), + .instr_mode_i (tg_instr_mode), + .bl_mode_i (tg_bl_mode), + .data_mode_i (tg_data_mode), + .mode_load_i (tg_mode_load), + .wr_data_mask_gen_i (tg_data_mask_gen), + // fixed pattern inputs interface + .fixed_bl_i (tg_fixed_bl), + .fixed_instr_i (tg_fixed_instr), + .fixed_addr_i (fixed_addr_i), + .fixed_data_i (fixed_data_i), + // BRAM interface. + .bram_cmd_i (bram_cmd_i), + // .bram_addr_i (bram_addr_i ), + // .bram_instr_i ( bram_instr_i), + .bram_valid_i (bram_valid_i), + .bram_rdy_o (bram_rdy_o), + + // MCB INTERFACE + .memc_cmd_en_o (memc_cmd_en), + .memc_cmd_instr_o (memc_cmd_instr), + .memc_cmd_bl_o (memc_cmd_bl), + .memc_cmd_addr_o (memc_cmd_addr), + .memc_cmd_full_i (memc_cmd_full), + + .memc_wr_en_o (memc_wr_en), + .memc_wr_data_end_o (memc_wr_end), + .memc_wr_mask_o (memc_wr_mask), + .memc_wr_data_o (memc_wr_data), + .memc_wr_full_i (memc_wr_full), + + .memc_rd_en_o (memc_rd_en), + .memc_rd_data_i (memc_rd_data), + .memc_rd_empty_i (memc_rd_empty), + + .qdr_wr_cmd_o (qdr_wr_cmd_o), + .qdr_rd_cmd_o (qdr_rd_cmd_o), + // status feedback + .counts_rst (tg_rst), + .wr_data_counts (wr_data_counts), + .rd_data_counts (rd_data_counts), + .error (error), // asserted whenever the read back data is not correct. + .error_status (error_status), // TBD how signals mapped + .cmp_data (cmp_data), + .cmp_data_valid (cmp_data_valid), + .cmp_error (cmp_error), + .mem_rd_data (), + .simple_data0 (simple_data0), + .simple_data1 (simple_data1), + .simple_data2 (simple_data2), + .simple_data3 (simple_data3), + .simple_data4 (simple_data4), + .simple_data5 (simple_data5), + .simple_data6 (simple_data6), + .simple_data7 (simple_data7), + .dq_error_bytelane_cmp (dq_error_bytelane_cmp), + .cumlative_dq_lane_error (cumlative_dq_lane_error), + .cumlative_dq_r0_bit_error (), + .cumlative_dq_f0_bit_error (), + .cumlative_dq_r1_bit_error (), + .cumlative_dq_f1_bit_error (), + .dq_r0_bit_error_r (), + .dq_f0_bit_error_r (), + .dq_r1_bit_error_r (), + .dq_f1_bit_error_r (), + .dq_r0_read_bit (), + .dq_f0_read_bit (), + .dq_r1_read_bit (), + .dq_f1_read_bit (), + .dq_r0_expect_bit (), + .dq_f0_expect_bit (), + .dq_r1_expect_bit (), + .dq_f1_expect_bit (), + .error_addr () + ); + + reg [8:0] wr_cmd_cnt; + reg [8:0] dat_cmd_cnt; + reg rst_remem; + reg [2:0] app_cmd1; + reg [2:0] app_cmd2; + reg [2:0] app_cmd3; + reg [2:0] app_cmd4; + + reg [8:0] rst_cntr; + + always @(posedge clk) begin + if (rst) begin + rst_remem <= 1'b0; + end else if (tg_only_rst) begin + rst_remem <= 1'b1; + end else if (rst_cntr == 9'h0) begin + rst_remem <= 1'b0; + end + end + + + always @(posedge clk) begin + if (rst) begin + tg_rst <= 1'b1; + end else begin + tg_rst <= (rst_cntr != 9'h1ff); + end + end + + always @ (posedge clk) + begin + if (rst) + rst_cntr <= 9'h1ff; + else if (rst_remem & (wr_cmd_cnt==dat_cmd_cnt) & (app_cmd3==3'h1) & (app_cmd4==3'h0)) + rst_cntr <= 9'h0; + else if (rst_cntr != 9'h1ff) + rst_cntr <= rst_cntr + 1'b1; + end + + always @(posedge clk) begin + if (rst | tg_rst) begin + wr_cmd_cnt <= 1'b0; + end else if (memc_cmd_en & (!memc_cmd_full)& (memc_cmd_instr == 3'h0)) begin + wr_cmd_cnt <= wr_cmd_cnt + 1'b1; + end + end + + always @(posedge clk) begin + if (rst| tg_rst) begin + dat_cmd_cnt <= 1'b0; + end else if (memc_wr_en & (!memc_wr_full)) begin + dat_cmd_cnt <= dat_cmd_cnt + 1'b1; + end + end + + always @(posedge clk) begin + if (rst| tg_rst) begin + app_cmd1 <= 'b0; + app_cmd2 <= 'b0; + app_cmd3 <= 'b0; + app_cmd4 <= 'b0; + end else if (memc_cmd_en & (!memc_cmd_full)) begin + app_cmd1 <= memc_cmd_instr; + app_cmd2 <= app_cmd1; + app_cmd3 <= app_cmd2; + app_cmd4 <= app_cmd3; + end + end + always @(posedge clk) begin + if (rst| tg_rst) begin + cmd_wdt <= 1'b0; + end else if (memc_init_done & (cmd_wdt!=CMD_WDT) & (memc_cmd_full | (!memc_cmd_en)) & wdt_en_i) begin + // init_calib_done !app_rdy app_en + cmd_wdt <= cmd_wdt + 1'b1; +// end else if (memc_init_done & (cmd_wdt!=CMD_WDT) & (!memc_cmd_full) & memc_cmd_en & wdt_en_w) begin + end else if ((!memc_cmd_full) & memc_cmd_en) begin + // init_calib_done !app_rdy app_en + cmd_wdt <= 'b0; + end + end + + + always @(posedge clk) begin + if (rst| tg_rst) begin + rd_wdt <= 1'b0; + end else if (mem_pattern_init_done & (rd_wdt != RD_WDT) & (memc_rd_empty) & wdt_en_i) begin + // !app_rd_data_valid + rd_wdt <= rd_wdt + 1'b1; + end else if (!memc_rd_empty) begin + // !app_rd_data_valid + rd_wdt <= 'b0; + end + end + + always @(posedge clk) begin + if (rst| tg_rst) begin + wr_wdt <= 1'b0; + end else if (mem_pattern_init_done & (wr_wdt != WR_WDT) & (!memc_wr_en) & wdt_en_i) begin + // app_wdf_wren + wr_wdt <= wr_wdt + 1'b1; + end else if (memc_wr_en) begin + // app_wdf_wren + wr_wdt <= 'b0; + end + end + + always @(posedge clk) begin + if (rst| tg_rst) begin + cmd_wdt_err_o <= 'b0; + rd_wdt_err_o <= 'b0; + wr_wdt_err_o <= 'b0; + end else begin + cmd_wdt_err_o <= cmd_wdt == CMD_WDT; + rd_wdt_err_o <= rd_wdt == RD_WDT; + wr_wdt_err_o <= wr_wdt == WR_WDT; + end + end + + +//synthesis translate_off +initial +begin +@ (posedge cmd_wdt_err_o); +$display ("ERROR: COMMAND Watch Dog Timer Expired"); +repeat (20) @ (posedge clk); +$finish; +end + +initial +begin +@ (posedge rd_wdt_err_o); +$display ("ERROR: READ Watch Dog Timer Expired"); +repeat (20) @ (posedge clk); +$finish; +end + +initial +begin +@ (posedge wr_wdt_err_o) +$display ("ERROR: WRITE Watch Dog Timer Expired"); +repeat (20) @ (posedge clk); +$finish; +end + +initial +begin +@ (posedge error) +repeat (20) @ (posedge clk); +$finish; +end +//synthesis translate_on + + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_vio_init_pattern_bram.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_vio_init_pattern_bram.v new file mode 100755 index 0000000..4b39803 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_vio_init_pattern_bram.v @@ -0,0 +1,397 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: tb_cmd_gen.v +// /___/ /\ Date Last Modified: $Date: 2011/06/02 08:37:25 $ +// \ \ / \ Date Created: Fri Sep 01 2006 +// \___\/\___\ +// +//Device: Fuji +//Design Name: vio_init_pattern_bram +//Purpose: This moduel takes external defined data inputs as its bram init pattern. +// It allows users to change simple test data pattern withoug recompilation. +//Revision History: +//***************************************************************************** + +`timescale 1ps/1ps +`ifndef TCQ + `define TCQ 100 +`endif +module mig_7series_v4_0_vio_init_pattern_bram # + ( + parameter TCQ = 100, + parameter START_ADDR = 32'h00000000, + parameter MEM_BURST_LEN = 8, + parameter ADDR_WIDTH = 4, + parameter DEPTH = 16, + parameter NUM_DQ_PINS = 8, + parameter SEL_VICTIM_LINE = NUM_DQ_PINS // possible value : 0 to NUM_DQ_PINS + + ) + ( + input clk_i, + input rst_i, + input cmd_start, + input [31:0] cmd_addr, // + input mode_load_i, // signal to initialze internal bram + // with input data1 through data9. + input [3:0] data_mode_i, // selection of data pattern. + input [31:0] data0, // data1 through data8 are + input [31:0] data1, // used as simple traffic data + input [31:0] data2, // pattern that repeats continuously + input [31:0] data3, + input [31:0] data4, + input [31:0] data5, + input [31:0] data6, + input [31:0] data7, + input [31:0] data8, // used a fixed input data + + output reg bram_rd_valid_o, + input bram_rd_rdy_i, + output [31:0] dout_o + ); + + function integer logb2; + input [31:0] number; + integer i; + begin + i = number; + for(logb2=1; i>0; logb2=logb2+1) + i = i >> 1; + end + endfunction + + reg [ADDR_WIDTH - 1:0] wr_addr /* synthesis syn_maxfan = 8 */; + reg [ADDR_WIDTH - 1:0] rd_addr /* synthesis syn_maxfan = 8 */; + reg init_write; + reg mode_load_r1; + reg mode_load_r2; + reg [31:0] data_in0; + reg [31:0] data_in1; + reg [31:0] data_in2; + reg [31:0] data_in3; + reg [31:0] data_in4; + reg [31:0] data_in5; + reg [31:0] data_in6; + reg [31:0] data_in7; + reg [31:0] data_in8; + reg [31:0] data_in9; + reg [31:0] data_in10; + reg [31:0] data_in11; + reg [31:0] data_in12; + reg [31:0] data_in13; + reg [31:0] data_in14; + reg [31:0] data_in15; + reg [31:0] hdata; + reg [7:0] mem_0 [0:DEPTH - 1]; + reg [7:0] mem_1 [0:DEPTH - 1]; + reg [7:0] mem_2 [0:DEPTH - 1]; + reg [7:0] mem_3 [0:DEPTH - 1]; + reg [31:0] data_in; + reg wr_en; + reg cmd_addr_r9; + integer i,j,k; + + always @ (posedge clk_i) + begin + mode_load_r1 <= mode_load_i; + mode_load_r2 <= mode_load_r1; + end + + always @ (posedge clk_i) + begin + if (rst_i) + init_write <= 'b0; + else if (wr_addr == {4'b0111}) + init_write <= 'b1; + else if (mode_load_r1 && ~mode_load_r2 && data_mode_i != 4'b0010) + init_write <= 'b1; + end + +// generate a mutil_cycle control siganl to improve timing. + always @ (posedge clk_i) + begin + if (rst_i) + wr_en <= 1'b1; + else if (init_write && data_mode_i != 4'b0010) + wr_en <= 1'b1; + end + + always @ (posedge clk_i) + begin + if (rst_i) + wr_addr <= 'b0; + else if (data_mode_i == 4'h1) + wr_addr <= 4'b1000; + else if (data_mode_i == 4'b0011) + wr_addr <= 4'b1001; + else if (~init_write && data_mode_i == 4'b0100) + wr_addr <= 4'b0000; + else if (init_write && wr_en && data_mode_i != 4'b0010 && wr_addr != 15) + wr_addr <= wr_addr + 1'b1; + end + +// HAMMER_PATTERN_MINUS: generate walking HAMMER data pattern except 1 bit for the whole burst. +// The incoming addr_i[5:2] determine the position of the pin driving oppsite polarity +// addr_i[6:2] = 5'h0f ; 32 bit data port +// => the rsing data pattern will be 32'b11111111_11111111_01111111_11111111 +// => the falling data pattern will be 32'b00000000_00000000_00000000_00000000 + +// Only generate NUM_DQ_PINS width of hdata and will do concatenation in above level. + always @ (posedge clk_i) + begin + for (i= 0; i <= 31; i= i+1) //begin: hammer_data + if (i >= NUM_DQ_PINS) begin + if (SEL_VICTIM_LINE == NUM_DQ_PINS) + hdata[i] <= 1'b0; + else if ( + ((i == SEL_VICTIM_LINE-1) || (i-NUM_DQ_PINS) == SEL_VICTIM_LINE || + (i-(NUM_DQ_PINS*2)) == SEL_VICTIM_LINE || + (i-(NUM_DQ_PINS*3)) == SEL_VICTIM_LINE)) + hdata[i] <= 1'b1; + else + hdata[i] <= 1'b0; + end + else + hdata[i] <= 1'b1; + end + +// content formats +// {burst length, instruction, address} + initial begin + mem_0[0] = {2'b00,6'h00}; + mem_1[0] = 8'h0; + mem_2[0] = 8'h0; + mem_3[0] = 8'h0; + mem_0[1] = {2'b00,6'h04}; + mem_1[1] = 8'h0; + mem_2[1] = 8'h0; + mem_3[1] = 8'h0; + mem_0[2] = {2'b00,6'h08}; + mem_1[2] = 8'h0; + mem_2[2] = 8'h0; + mem_3[2] = 8'h0; + mem_0[3] = {2'b00,6'h0c}; + mem_1[3] = 8'h0; + mem_2[3] = 8'h0; + mem_3[3] = 8'h0; + mem_0[4] = {2'b00,6'h10}; + mem_1[4] = 8'h0; + mem_2[4] = 8'h0; + mem_3[4] = 8'h0; + mem_0[5] = {2'b00,6'h14}; + mem_1[5] = 8'h0; + mem_2[5] = 8'h0; + mem_3[5] = 8'h0; + mem_0[6] = {2'b00,6'h18}; + mem_1[6] = 8'h0; + mem_2[6] = 8'h0; + mem_3[6] = 8'h0; + mem_0[7] = {2'b00,6'h1c}; + mem_1[7] = 8'h0; + mem_2[7] = 8'h0; + mem_3[7] = 8'h0; + mem_0[8] = {2'b00,6'h20}; + mem_1[8] = 8'h0; + mem_2[8] = 8'h0; + mem_3[8] = 8'h0; + mem_0[9] = {2'b00,6'h24}; + mem_1[9] = 8'h0; + mem_2[9] = 8'h0; + mem_3[9] = 8'h0; + mem_0[10] = 8'hff; + mem_1[10] = 8'hff; + mem_2[10] = 8'hff; + mem_3[10] = 8'hff; + mem_0[11] = 8'h0; + mem_1[11] = 8'h0; + mem_2[11] = 8'h0; + mem_3[11] = 8'h0; + mem_0[12] = {2'b00,6'h30}; + mem_1[12] = 8'h0; + mem_2[12] = 8'h0; + mem_3[12] = 8'h0; + mem_0[13] = {2'b00,6'h34}; + mem_1[13] = 8'h0; + mem_2[13] = 8'h0; + mem_3[13] = 8'h0; + mem_0[14] = {2'b00,6'h38}; + mem_1[14] = 8'h0; + mem_2[14] = 8'h0; + mem_3[14] = 8'h0; + mem_0[15] = {2'b00,6'h3c}; + mem_1[15] = 8'h0; + mem_2[15] = 8'h0; + mem_3[15] = 8'h0; + end + +// address is one cycle earlier. + always @ (posedge clk_i) + begin + if (rst_i) + data_in <= #TCQ data0; + else begin + case(wr_addr) + 0: if (init_write) + data_in <= #TCQ data_in1; + else + data_in <= #TCQ data_in0; + 1: data_in <= #TCQ data_in2; + 2: data_in <= #TCQ data_in3; + 3: data_in <= #TCQ data_in4; + 4: data_in <= #TCQ data_in5; + 5: data_in <= #TCQ data_in6; + 6: data_in <= #TCQ data_in7; + 7: data_in <= #TCQ data_in7; + 8: data_in <= #TCQ data_in8; + 9: data_in <= #TCQ data_in9; + 10: data_in <= #TCQ data_in10; + 11: data_in <= #TCQ data_in11; + 12: data_in <= #TCQ data_in12; + 13: data_in <= #TCQ data_in13; + 14: data_in <= #TCQ data_in14; + 15: data_in <= #TCQ data_in15; + default: data_in <= data8; + endcase + end + end + + always @(posedge clk_i) begin + mem_0[wr_addr] <= data_in[7:0]; + mem_1[wr_addr] <= data_in[15:8]; + mem_2[wr_addr] <= data_in[23:16]; + mem_3[wr_addr] <= data_in[31:24]; + end + + always @ (data_mode_i, data0,data1,data2,data3,data4,data5,data6,data7,data8,hdata) + begin + data_in0[31:0] = #TCQ data0; + data_in1[31:0] = #TCQ data1; + data_in2[31:0] = #TCQ data2; + data_in3[31:0] = #TCQ data3; + data_in4[31:0] = #TCQ data4; + data_in5[31:0] = #TCQ data5; + data_in6[31:0] = #TCQ data6; + data_in7[31:0] = #TCQ data7; + data_in8[31:0] = #TCQ data8; + data_in9[31:0] = #TCQ hdata; + data_in10[31:0] = #TCQ 32'hffffffff; + data_in11[31:0] = #TCQ 32'h00000000; + data_in12[31:0] = #TCQ 'b0; + data_in13[31:0] = #TCQ 'b0; + data_in14[31:0] = #TCQ 'b0; + data_in15[31:0] = #TCQ 'b0; + end + + always @ (posedge clk_i) + begin + if (cmd_start) + cmd_addr_r9 <= cmd_addr[9]; + end + + always @ (posedge clk_i) + if (rst_i) + bram_rd_valid_o <= 1'b0; + else if (wr_addr[3:0] == {ADDR_WIDTH - 1{1'b1}} || data_mode_i == 2 || data_mode_i == 3) + bram_rd_valid_o <= 1'b1; + +// rd_address generation depending on data pattern mode. + always @ (posedge clk_i) + begin + if (rst_i) begin + if (data_mode_i == 9) begin + rd_addr[3:1] <= #TCQ 3'b101; + rd_addr[0] <= #TCQ cmd_addr[9]; + end + else if (data_mode_i == 1) + rd_addr[3:0] <= #TCQ 8; + else if (data_mode_i == 3) // address as data pattern + rd_addr <= #TCQ 9; + else + rd_addr <= #TCQ 0; + end + else if (cmd_start) begin + if (data_mode_i == 3) + rd_addr[3:0] <= #TCQ 9; + else if (data_mode_i == 1) + rd_addr[3:0] <= #TCQ 8; + else if (data_mode_i == 9) begin + rd_addr[3:1] <= #TCQ 3'b101; + rd_addr[0] <= #TCQ cmd_addr[9]; + end + else + rd_addr[3:0] <= #TCQ 0; + end + else if (bram_rd_rdy_i) begin + case (data_mode_i) + 4'h2: rd_addr <= #TCQ 0; + 4'h4: if (rd_addr == 7) + rd_addr <= #TCQ 0; + else + rd_addr <= #TCQ rd_addr+ 1'b1; + 4'h1: rd_addr <= #TCQ 8; + 4'h3: rd_addr <= #TCQ 9; + 4'h9: begin + rd_addr[3:1] <= #TCQ 3'b101; + rd_addr[0] <= #TCQ cmd_addr_r9; + end + default: rd_addr <= #TCQ 0; + endcase + end + end + +// need to infer distributed RAM to meet output timing +// in upper level +assign dout_o = {mem_3[rd_addr],mem_2[rd_addr],mem_1[rd_addr],mem_0[rd_addr]}; // + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_wr_data_gen.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_wr_data_gen.v new file mode 100755 index 0000000..2efebf6 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_wr_data_gen.v @@ -0,0 +1,433 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: wr_data_gen.v +// /___/ /\ Date Last Modified: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: +//Reference: +//Revision History: 5/2/2012 Fixed data_wr_end_r logic which didn't hold its state when data_rdy_i was deasserted and +// data_valid was asserted. +// +//***************************************************************************** + +`timescale 1ps/1ps + +module mig_7series_v4_0_wr_data_gen # + +( + parameter TCQ = 100, + parameter FAMILY = "SPARTAN6", // "SPARTAN6", "VIRTEX6" + parameter MEM_BURST_LEN = 8, + parameter START_ADDR = 32'h00000000, + parameter nCK_PER_CLK = 4, // DRAM clock : MC clock + parameter MEM_TYPE = "DDR3", + + parameter MODE = "WR", //"WR", "RD" + parameter ADDR_WIDTH = 32, + parameter BL_WIDTH = 6, + parameter DWIDTH = 32, + parameter DATA_PATTERN = "DGEN_PRBS", //"DGEN__HAMMER", "DGEN_WALING1","DGEN_WALING0","DGEN_ADDR","DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + parameter NUM_DQ_PINS = 8, + parameter SEL_VICTIM_LINE = 3, // VICTIM LINE is one of the DQ pins is selected to be different than hammer pattern + + parameter COLUMN_WIDTH = 10, + parameter EYE_TEST = "FALSE" + + ) + ( + input clk_i, // + input [4:0] rst_i, + input [31:0] prbs_fseed_i, + input mode_load_i, + + input [3:0] data_mode_i, // "00" = bram; + input mem_init_done_i, + input wr_data_mask_gen_i, + + output cmd_rdy_o, // ready to receive command. It should assert when data_port is ready at the // beginning and will be deasserted once see the cmd_valid_i is asserted. + // And then it should reasserted when + // it is generating the last_word. + input cmd_valid_i, // when both cmd_valid_i and cmd_rdy_o is high, the command is valid. + input cmd_validB_i, + input cmd_validC_i, + + output last_word_o, + + // input [5:0] port_data_counts_i,// connect to data port fifo counts + // input [ADDR_WIDTH-1:0] m_addr_i, + input [31:0] simple_data0 , + input [31:0] simple_data1 , + input [31:0] simple_data2 , + input [31:0] simple_data3 , + input [31:0] simple_data4 , + input [31:0] simple_data5 , + input [31:0] simple_data6 , + input [31:0] simple_data7 , + + input [31:0] fixed_data_i, + + input [ADDR_WIDTH-1:0] addr_i, // generated address used to determine data pattern. + input [BL_WIDTH-1:0] bl_i, // generated burst length for control the burst data + input memc_cmd_full_i, + + input data_rdy_i, // connect from mcb_wr_full when used as wr_data_gen + // connect from mcb_rd_empty when used as rd_data_gen + // When both data_rdy and data_valid is asserted, the ouput data is valid. + output data_valid_o, // connect to wr_en or rd_en and is asserted whenever the + // pattern is available. + output [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] data_o, // generated data pattern + output data_wr_end_o, + output [(NUM_DQ_PINS*nCK_PER_CLK*2/8) - 1:0] data_mask_o + + + +); +// + + +reg [DWIDTH-1:0] data; + + + +(*EQUIVALENT_REGISTER_REMOVAL="NO"*) reg cmd_rdy,cmd_rdyB, cmd_rdyC,cmd_rdyD,cmd_rdyE,cmd_rdyF; +(*EQUIVALENT_REGISTER_REMOVAL="NO"*) reg cmd_start,cmd_startB,cmd_startC,cmd_startD,cmd_startE,cmd_startF; + + + + +reg burst_count_reached2; + +reg data_valid; +reg [BL_WIDTH:0]user_burst_cnt; +reg [2:0] walk_cnt; +wire fifo_not_full; +integer i,j; +reg [31:0] w3data; +reg data_wr_end_r; +wire data_wr_end; +wire bram_rd_valid_o; + +function integer logb2; + input [31:0] number; + integer i; + begin + i = number; + for(logb2=1; i>0; logb2=logb2+1) + i = i >> 1; + end +endfunction + + +assign fifo_not_full = data_rdy_i; + + +// data_wr_end_r is used in nCK_PER_CLK == 2; when nCK_PER_CLK = 4, data_wr_end_o == data_valid_o; + +always @(posedge clk_i) +begin + if (~user_burst_cnt[0] && data_valid && data_rdy_i && MEM_BURST_LEN == 8) + data_wr_end_r <= #TCQ 1'b1; + else if (data_rdy_i) // keep the data_wr_end_r asserted if data_rdy_i is deasserted because of mc's write + // data fifo full. + data_wr_end_r <= #TCQ 1'b0; +end + +//assign data_wr_end_o = data_wr_end_r && fifo_not_full; */ +assign data_wr_end_o = (nCK_PER_CLK == 4 || nCK_PER_CLK == 2 && MEM_BURST_LEN == 4) ? data_valid_o :data_wr_end_r ;//(MEM_BURST_LEN == 8) ? user_burst_cnt[0] & data_valid_o : + +assign data_valid_o = data_valid ;//& ~memc_cmd_full_i;// (nCK_PER_CLK == 4)?data_valid_r: data_valid ;//& fifo_not_full; + +//assign data_wr_end_o = data_wr_end_r; + + +always @ (posedge clk_i) +begin +cmd_start <= #TCQ cmd_validC_i & cmd_rdyC ; +cmd_startB <= #TCQ cmd_valid_i & cmd_rdyB; +cmd_startC <= #TCQ cmd_validB_i & cmd_rdyC; +cmd_startD <= #TCQ cmd_validB_i & cmd_rdyD; +cmd_startE <= #TCQ cmd_validB_i & cmd_rdyE; +cmd_startF <= #TCQ cmd_validB_i & cmd_rdyF; +end + + +// counter to count user burst length +// verilint STARC-2.2.3.3 off +always @( posedge clk_i) +begin + if ( rst_i[0] ) + user_burst_cnt <= #TCQ 'd0; + else if(cmd_start) + // if (FAMILY == "SPARTAN6") begin + // SPATAN6 has maximum of burst length of 64. + if (FAMILY == "SPARTAN6" && bl_i[5:0] == 6'b000000) + // user_burst_cnt <= #TCQ 7'b1000000; + begin + user_burst_cnt[6:0] <= #TCQ 7'd64; + user_burst_cnt[BL_WIDTH:7] <= 'b0; + end + else if (FAMILY == "VIRTEX6" && bl_i[BL_WIDTH - 1:0] == {BL_WIDTH {1'b0}}) + user_burst_cnt <= #TCQ {1'b1, {BL_WIDTH{1'b0}}}; + + else + user_burst_cnt <= #TCQ {1'b0,bl_i}; + + // else + // user_burst_cnt <= #TCQ bl_i; +// else if(fifo_not_full && data_valid && ~memc_cmd_full_i) +// verilint STARC-2.2.3.3 on + else if(fifo_not_full && data_valid ) + + if (user_burst_cnt != 6'd0) + user_burst_cnt <= #TCQ user_burst_cnt - 1'b1; + else + user_burst_cnt <=#TCQ 'd0; + +end + +reg u_bcount_2; +wire last_word_t; +always @ (posedge clk_i) +begin +if ((user_burst_cnt == 2 && fifo_not_full )|| (cmd_startC && bl_i == 1)) + u_bcount_2 <= #TCQ 1'b1; +else if (last_word_o) + u_bcount_2 <= #TCQ 1'b0; +end + + +assign last_word_o = u_bcount_2 & fifo_not_full; + +// cmd_rdy_o assert when the dat fifo is not full and deassert once cmd_valid_i +// is assert and reassert during the last data + +assign cmd_rdy_o = cmd_rdy & fifo_not_full; + + +always @( posedge clk_i) +begin + if ( rst_i[0] ) + cmd_rdy <= #TCQ 1'b1; // the state should be '0' for bram_interface during reset. + else if (bram_rd_valid_o) // need work here. + cmd_rdy <= #TCQ 1'b1; + + else if (cmd_start) + if (bl_i == 1) + cmd_rdy <= #TCQ 1'b1; + else + cmd_rdy <= #TCQ 1'b0; + else if ((user_burst_cnt == 6'd2 && fifo_not_full ) ) + + cmd_rdy <= #TCQ bram_rd_valid_o;//1'b1; + + +end + +always @( posedge clk_i) +begin + if ( rst_i [0]) + cmd_rdyB <= #TCQ 1'b1; + else if (cmd_startB) + if (bl_i == 1) + cmd_rdyB <= #TCQ 1'b1; + else + cmd_rdyB <= #TCQ 1'b0; + else if ((user_burst_cnt == 6'd2 && fifo_not_full ) ) + + + cmd_rdyB <= #TCQ 1'b1; + + +end + +always @( posedge clk_i) +begin + if ( rst_i[0] ) + cmd_rdyC <= #TCQ 1'b1; + else if (cmd_startC) + if (bl_i == 1) + cmd_rdyC <= #TCQ 1'b1; + else + cmd_rdyC <= #TCQ 1'b0; + else if ((user_burst_cnt == 6'd2 && fifo_not_full ) ) + + + cmd_rdyC <= #TCQ 1'b1; + + +end + +always @( posedge clk_i) +begin + if ( rst_i[0] ) + cmd_rdyD <= #TCQ 1'b1; + else if (cmd_startD) + if (bl_i == 1) + cmd_rdyD <= #TCQ 1'b1; + else + cmd_rdyD <= #TCQ 1'b0; + else if ((user_burst_cnt == 6'd2 && fifo_not_full ) ) + + + cmd_rdyD <= #TCQ 1'b1; + + +end + +always @( posedge clk_i) +begin + if ( rst_i[0] ) + cmd_rdyE <= #TCQ 1'b1; + else if (cmd_startE) + if (bl_i == 1) + cmd_rdyE <= #TCQ 1'b1; + else + cmd_rdyE <= #TCQ 1'b0; + else if ((user_burst_cnt == 6'd2 && fifo_not_full ) ) + + + cmd_rdyE <= #TCQ 1'b1; + + +end + + + +always @( posedge clk_i) +begin + if ( rst_i[0] ) + cmd_rdyF <= #TCQ 1'b1; + else if (cmd_startF) + if (bl_i == 1) + cmd_rdyF <= #TCQ 1'b1; + else + cmd_rdyF <= #TCQ 1'b0; + else if ((user_burst_cnt == 6'd2 && fifo_not_full ) ) + + cmd_rdyF <= #TCQ 1'b1; + + +end + + +reg dvalid; + +always @ (posedge clk_i) +begin + if (rst_i[1]) + data_valid <= #TCQ 'd0; + else if(cmd_start) + data_valid <= #TCQ 1'b1; + else if (fifo_not_full && user_burst_cnt <= 6'd1) + data_valid <= #TCQ 1'b0; + + // data_valid <= dvalid ; +end + +mig_7series_v4_0_s7ven_data_gen # + ( + .TCQ (TCQ), + .ADDR_WIDTH (32 ), + .FAMILY (FAMILY), + .MEM_TYPE (MEM_TYPE), + .BL_WIDTH (BL_WIDTH), + .DWIDTH (DWIDTH), + .MEM_BURST_LEN (MEM_BURST_LEN), + .nCK_PER_CLK (nCK_PER_CLK), + .START_ADDR (START_ADDR), + .DATA_PATTERN (DATA_PATTERN), + .NUM_DQ_PINS (NUM_DQ_PINS), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .COLUMN_WIDTH (COLUMN_WIDTH), + .EYE_TEST (EYE_TEST) + ) + s7ven_data_gen + ( + .clk_i (clk_i ), + .rst_i (rst_i[1] ), + .data_rdy_i (data_rdy_i ), + .prbs_fseed_i (prbs_fseed_i), + .mem_init_done_i (mem_init_done_i), + .mode_load_i (mode_load_i), + .wr_data_mask_gen_i (wr_data_mask_gen_i), + .data_mode_i (data_mode_i ), + .cmd_startA (cmd_start ), + .cmd_startB (cmd_startB ), + .cmd_startC (cmd_startC ), + .cmd_startD (cmd_startD ), + .cmd_startE (cmd_startE ), + .m_addr_i (addr_i ), + .fixed_data_i (fixed_data_i), + .simple_data0 (simple_data0), + .simple_data1 (simple_data1), + .simple_data2 (simple_data2), + .simple_data3 (simple_data3), + .simple_data4 (simple_data4), + .simple_data5 (simple_data5), + .simple_data6 (simple_data6), + .simple_data7 (simple_data7), + .addr_i (addr_i ), + .user_burst_cnt (user_burst_cnt), + .fifo_rdy_i (fifo_not_full ), + .data_o (data_o ), + .data_mask_o (data_mask_o), + .bram_rd_valid_o (bram_rd_valid_o), + .tg_st_addr_o () + ); + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_write_data_path.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_write_data_path.v new file mode 100755 index 0000000..76886f3 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/rtl/traffic_gen/mig_7series_v4_0_write_data_path.v @@ -0,0 +1,193 @@ +//***************************************************************************** +// (c) Copyright 2008-2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: %version +// \ \ Application: MIG +// / / Filename: write_data_path.v +// /___/ /\ Date Last Modified: +// \ \ / \ Date Created: +// \___\/\___\ +// +//Device: Spartan6 +//Design Name: DDR/DDR2/DDR3/LPDDR +//Purpose: This is top level of write path . + +//Reference: +//Revision History: +//***************************************************************************** + +`timescale 1ps/1ps + + +module mig_7series_v4_0_write_data_path #( + parameter TCQ = 100, + parameter FAMILY = "SPARTAN6", + parameter MEM_TYPE = "DDR3", + + parameter ADDR_WIDTH = 32, + parameter START_ADDR = 32'h00000000, + parameter BL_WIDTH = 6, + parameter nCK_PER_CLK = 4, // DRAM clock : MC clock + parameter MEM_BURST_LEN = 8, + parameter DWIDTH = 32, + parameter DATA_PATTERN = "DGEN_ALL", //"DGEN__HAMMER", "DGEN_WALING1","DGEN_WALING0","DGEN_ADDR","DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + parameter NUM_DQ_PINS = 8, + parameter SEL_VICTIM_LINE = 3, // VICTIM LINE is one of the DQ pins is selected to be different than hammer pattern + + parameter MEM_COL_WIDTH = 10, + parameter EYE_TEST = "FALSE" + + ) + ( + + input clk_i, + input [9:0] rst_i, + output cmd_rdy_o, + input cmd_valid_i, + input cmd_validB_i, + input cmd_validC_i, + input [31:0] prbs_fseed_i, + input [3:0] data_mode_i, + input mem_init_done_i, + input wr_data_mask_gen_i, + // input [31:0] m_addr_i, + + input [31:0] simple_data0 , + input [31:0] simple_data1 , + input [31:0] simple_data2 , + input [31:0] simple_data3 , + input [31:0] simple_data4 , + input [31:0] simple_data5 , + input [31:0] simple_data6 , + input [31:0] simple_data7 , + + input [31:0] fixed_data_i, + input mode_load_i, + + input [31:0] addr_i, + input [BL_WIDTH-1:0] bl_i, + +// input [5:0] port_data_counts_i,// connect to data port fifo counts + input memc_cmd_full_i, + input data_rdy_i, + output data_valid_o, + output last_word_wr_o, + output [NUM_DQ_PINS*nCK_PER_CLK*2-1:0] data_o, + output [(NUM_DQ_PINS*nCK_PER_CLK*2/8) - 1:0] data_mask_o, + output data_wr_end_o + + ); + +wire data_valid; +reg cmd_rdy; + + assign data_valid_o = data_valid;// & data_rdy_i; + + + mig_7series_v4_0_wr_data_gen # + ( + .TCQ (TCQ), + .FAMILY (FAMILY), + .MEM_TYPE (MEM_TYPE), + .NUM_DQ_PINS (NUM_DQ_PINS), + .MEM_BURST_LEN (MEM_BURST_LEN), + .BL_WIDTH (BL_WIDTH), + .START_ADDR (START_ADDR), + .nCK_PER_CLK (nCK_PER_CLK), + .SEL_VICTIM_LINE (SEL_VICTIM_LINE), + .DATA_PATTERN (DATA_PATTERN), + .DWIDTH (DWIDTH), + .COLUMN_WIDTH (MEM_COL_WIDTH), + .EYE_TEST (EYE_TEST) + + ) + wr_data_gen( + .clk_i (clk_i ), + .rst_i (rst_i[9:5]), + .prbs_fseed_i (prbs_fseed_i), + .wr_data_mask_gen_i (wr_data_mask_gen_i), + .mem_init_done_i (mem_init_done_i), + .data_mode_i (data_mode_i ), + .cmd_rdy_o (cmd_rdy_o ), + .cmd_valid_i (cmd_valid_i ), + .cmd_validB_i (cmd_validB_i ), + .cmd_validC_i (cmd_validC_i ), + + .last_word_o (last_word_wr_o ), + // .port_data_counts_i (port_data_counts_i), + // .m_addr_i (m_addr_i ), + .fixed_data_i (fixed_data_i), + .simple_data0 (simple_data0), + .simple_data1 (simple_data1), + .simple_data2 (simple_data2), + .simple_data3 (simple_data3), + .simple_data4 (simple_data4), + .simple_data5 (simple_data5), + .simple_data6 (simple_data6), + .simple_data7 (simple_data7), + + + .mode_load_i (mode_load_i), + + .addr_i (addr_i ), + .bl_i (bl_i ), + .memc_cmd_full_i (memc_cmd_full_i), + + .data_rdy_i (data_rdy_i ), + .data_valid_o ( data_valid ), + .data_o (data_o ), + .data_wr_end_o (data_wr_end_o), + .data_mask_o (data_mask_o) + ); + + + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ddr3_model.sv b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ddr3_model.sv new file mode 100644 index 0000000..3daa1d1 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ddr3_model.sv @@ -0,0 +1,2937 @@ +//`define MAX_MEM + +/**************************************************************************************** +* +* File Name: ddr3.v +* Version: 1.72 +* Model: BUS Functional +* +* Dependencies: ddr3_model_parameters.vh +* +* Description: Micron SDRAM DDR3 (Double Data Rate 3) +* +* Limitation: - doesn't check for average refresh timings +* - positive ck and ck_n edges are used to form internal clock +* - positive dqs and dqs_n edges are used to latch data +* - test mode is not modeled +* - Duty Cycle Corrector is not modeled +* - Temperature Compensated Self Refresh is not modeled +* - DLL off mode is not modeled. +* +* Note: - Set simulator resolution to "ps" accuracy +* - Set DEBUG = 0 to disable $display messages +* +* Disclaimer This software code and all associated documentation, comments or other +* of Warranty: information (collectively "Software") is provided "AS IS" without +* warranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLY +* DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +* TO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIES +* OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOT +* WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE +* OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE. +* FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE OR +* THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, +* ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USE +* OR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU. IN NO EVENT SHALL MTI, +* ITS AFFILIATED COMPANIES OR THEIR SUPPLIERS BE LIABLE FOR ANY DIRECT, +* INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES (INCLUDING, +* WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, +* OR LOSS OF INFORMATION) ARISING OUT OF YOUR USE OF OR INABILITY TO USE +* THE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +* DAMAGES. Because some jurisdictions prohibit the exclusion or +* limitation of liability for consequential or incidental damages, the +* above limitation may not apply to you. +* +* Copyright 2003 Micron Technology, Inc. All rights reserved. +* +* Rev Author Date Changes +* --------------------------------------------------------------------------------------- +* 0.41 JMK 05/12/06 Removed auto-precharge to power down error check. +* 0.42 JMK 08/25/06 Created internal clock using ck and ck_n. +* TDQS can only be enabled in EMR for x8 configurations. +* CAS latency is checked vs frequency when DLL locks. +* Improved checking of DQS during writes. +* Added true BL4 operation. +* 0.43 JMK 08/14/06 Added checking for setting reserved bits in Mode Registers. +* Added ODTS Readout. +* Replaced tZQCL with tZQinit and tZQoper +* Fixed tWRPDEN and tWRAPDEN during BC4MRS and BL4MRS. +* Added tRFC checking for Refresh to Power-Down Re-Entry. +* Added tXPDLL checking for Power-Down Exit to Refresh to Power-Down Entry +* Added Clock Frequency Change during Precharge Power-Down. +* Added -125x speed grades. +* Fixed tRCD checking during Write. +* 1.00 JMK 05/11/07 Initial release +* 1.10 JMK 06/26/07 Fixed ODTH8 check during BLOTF +* Removed temp sensor readout from MPR +* Updated initialization sequence +* Updated timing parameters +* 1.20 JMK 09/05/07 Updated clock frequency change +* Added ddr3_dimm module +* 1.30 JMK 01/23/08 Updated timing parameters +* 1.40 JMK 12/02/08 Added support for DDR3-1866 and DDR3-2133 +* renamed ddr3_dimm.v to ddr3_module.v and added SODIMM support. +* Added multi-chip package model support in ddr3_mcp.v +* 1.50 JMK 05/04/08 Added 1866 and 2133 speed grades. +* 1.60 MYY 07/10/09 Merging of 1.50 version and pre-1.0 version changes +* 1.61 SPH 12/10/09 Only check tIH for cmd_addr if CS# LOW +* 1.62 SPH 10/26/10 Added 4Gb DDR3 SDRAM support +* 1.63 MYY 11/09/10 Added Dll Disable mode +* 1.64 MYY 07/28/11 Check dqs_in for dqs timing check +* 1.65 MYY 09/19/11 Widen internal bus width +* 1.66 MYY 01/20/12 Support ODT tied high feature +* 1.67 MYY 02/03/12 Added TJIT_PER margin for timing checks +* 1.68 SPH 04/02/12 Added memory preload +* 1.69 SPH 03/19/13 Update tZQCS, tZQinit, tZQoper timing parameters +* 1.70 SPH 04/08/14 Update tRFC to PRECHARGE check +* 1.71 SPH 04/21/14 Added 8Gb mono die parameters +* Remove strict CL check +* 1.72 DLH 06/18/15 calculate TZQCS from current tCK +*****************************************************************************************/ + +// DO NOT CHANGE THE TIMESCALE +// MAKE SURE YOUR SIMULATOR USES "PS" RESOLUTION +`timescale 1ps / 1ps + +// model flags +// `define MODEL_PASR +//Memory Details +`define x1Gb +`define sg125 +`define x8 +module ddr3_model ( + rst_n, + ck, + ck_n, + cke, + cs_n, + ras_n, + cas_n, + we_n, + dm_tdqs, + ba, + addr, + dq, + dqs, + dqs_n, + tdqs_n, + odt +); + + `include "ddr3_model_parameters.vh" + + parameter check_strict_mrbits = 1; + parameter check_strict_timing = 1; + parameter feature_pasr = 1; + parameter feature_truebl4 = 0; + parameter feature_odt_hi = 0; + parameter PERTCKAVG=TDLLK; + + // text macros + `define DQ_PER_DQS DQ_BITS/DQS_BITS + `define BANKS (1<= 2. \nBL_MAX = %d", BL_MAX); + if ((1< BL_MAX) + $display("%m ERROR: 2^BO_BITS cannot be greater than BL_MAX parameter."); + + $timeformat (-12, 1, " ps", 1); + seed = RANDOM_SEED; + + ck_cntr = 0; + end + + function integer get_rtt_wr; + input [1:0] rtt; + begin + get_rtt_wr = RZQ/{rtt[0], rtt[1], 1'b0}; + end + endfunction + + function integer get_rtt_nom; + input [2:0] rtt; + begin + case (rtt) + 1: get_rtt_nom = RZQ/4; + 2: get_rtt_nom = RZQ/2; + 3: get_rtt_nom = RZQ/6; + 4: get_rtt_nom = RZQ/12; + 5: get_rtt_nom = RZQ/8; + default : get_rtt_nom = 0; + endcase + end + endfunction + + // calculate the absolute value of a real number + function real abs_value; + input arg; + real arg; + begin + if (arg < 0.0) + abs_value = -1.0 * arg; + else + abs_value = arg; + end + endfunction + + function integer ceil; + input number; + real number; + + // LMR 4.1.7 + // When either operand of a relational expression is a real operand then the other operand shall be converted + // to an equivalent real value, and the expression shall be interpreted as a comparison between two real values. + if (number > $rtoi(number)) + ceil = $rtoi(number) + 1; + else + ceil = number; + endfunction + + function integer floor; + input number; + real number; + + // LMR 4.1.7 + // When either operand of a relational expression is a real operand then the other operand shall be converted + // to an equivalent real value, and the expression shall be interpreted as a comparison between two real values. + if (number < $rtoi(number)) + floor = $rtoi(number) - 1; + else + floor = number; + endfunction + + function int max( input int a, b ); + max = (a < b) ? b : a; + endfunction + + function int min( input int a, b ); + min = (a > b) ? b : a; + endfunction + +`ifdef MAX_MEM + + function integer open_bank_file( input integer bank ); + integer fd; + reg [2048:1] filename; + begin + $sformat( filename, "%0s/%m.%0d", tmp_model_dir, bank ); + + fd = $fopen(filename, "wb+"); + if (fd == 0) + begin + $display("%m: at time %0t ERROR: failed to open %0s.", $time, filename); + $finish; + end + else + begin + if (DEBUG) $display("%m: at time %0t INFO: opening %0s.", $time, filename); + open_bank_file = fd; + end + + end + endfunction + + function [RFF_BITS:1] read_from_file( + input integer fd, + input integer index + ); + integer code; + integer offset; + reg [1024:1] msg; + reg [RFF_BITS:1] read_value; + + begin + offset = index * RFF_CHUNK; + code = $fseek( fd, offset, 0 ); + // $fseek returns 0 on success, -1 on failure + if (code != 0) + begin + $display("%m: at time %t ERROR: fseek to %d failed", $time, offset); + $finish; + end + + code = $fscanf(fd, "%z", read_value); + // $fscanf returns number of items read + if (code != 1) + begin + if ($ferror(fd,msg) != 0) + begin + $display("%m: at time %t ERROR: fscanf failed at %d", $time, index); + $display(msg); + $finish; + end + else + read_value = 'hx; + end + + /* when reading from unwritten portions of the file, 0 will be returned. + * Use 0 in bit 1 as indicator that invalid data has been read. + * A true 0 is encoded as Z. + */ + if (read_value[1] === 1'bz) + // true 0 encoded as Z, data is valid + read_value[1] = 1'b0; + else if (read_value[1] === 1'b0) + // read from file section that has not been written + read_value = 'hx; + + read_from_file = read_value; + end + endfunction + + task write_to_file( + input integer fd, + input integer index, + input [RFF_BITS:1] data + ); + integer code; + integer offset; + + begin + offset = index * RFF_CHUNK; + code = $fseek( fd, offset, 0 ); + if (code != 0) + begin + $display("%m: at time %t ERROR: fseek to %d failed", $time, offset); + $finish; + end + + // encode a valid data + if (data[1] === 1'bz) + data[1] = 1'bx; + else if (data[1] === 1'b0) + data[1] = 1'bz; + + $fwrite( fd, "%z", data ); + end + endtask +`else + function get_index; + input [`MAX_BITS-1:0] addr; + begin : index + get_index = 0; + for (memory_index=0; memory_index>(ROW_BITS+COL_BITS-BL_BITS)); + if (!banks[ba]) begin //bank is selected to keep + address[i] = address[memory_index]; + memory[i] = memory[memory_index]; + i = i + 1; + end + end + // clean up the unused banks + for (memory_index=i; memory_index TRAS_MAX) $display ("%m: at time %t ERROR: tRAS maximum violation during %s to bank %d", $time, cmd_string[cmd], bank); + if ($time - tm_bank_activate[bank] < TRAS_MIN-TJIT_PER) $display ("%m: at time %t ERROR: tRAS minimum violation during %s to bank %d", $time, cmd_string[cmd], bank);end + {1'bx, SAME_BANK , ACTIVATE , ACTIVATE } : begin if ($time - tm_bank_activate[bank] < TRC-TJIT_PER) $display ("%m: at time %t ERROR: tRC violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'bx, SAME_BANK , ACTIVATE , WRITE } , + {1'bx, SAME_BANK , ACTIVATE , READ } : ; // tRCD is checked outside this task + {1'b0, DIFF_BANK , ACTIVATE , ACTIVATE } : begin if (($time - tm_activate < TRRD) || (ck_cntr - ck_activate < TRRD_TCK)) $display ("%m: at time %t ERROR: tRRD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_BANK , ACTIVATE , ACTIVATE } : begin if (($time - tm_group_activate[bank[1]] < TRRD) || (ck_cntr - ck_group_activate[bank[1]] < TRRD_TCK)) $display ("%m: at time %t ERROR: tRRD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_GROUP, ACTIVATE , ACTIVATE } : begin if (($time - tm_activate < TRRD_DG) || (ck_cntr - ck_activate < TRRD_DG_TCK)) $display ("%m: at time %t ERROR: tRRD_DG violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'bx, DIFF_BANK , ACTIVATE , REFRESH } : begin if ($time - tm_activate < TRC-TJIT_PER) $display ("%m: at time %t ERROR: tRC violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , ACTIVATE , PWR_DOWN } : begin if (ck_cntr - ck_activate < TACTPDEN) $display ("%m: at time %t ERROR: tACTPDEN violation during %s", $time, cmd_string[cmd]); end + + // write + {1'bx, SAME_BANK , WRITE , PRECHARGE} : begin if (($time - tm_bank_write_end[bank] < TWR-TJIT_PER) || (ck_cntr - ck_bank_write[bank] <= write_latency + burst_length/2)) $display ("%m: at time %t ERROR: tWR violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b0, DIFF_BANK , WRITE , WRITE } : begin if (ck_cntr - ck_write < TCCD) $display ("%m: at time %t ERROR: tCCD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_BANK , WRITE , WRITE } : begin if (ck_cntr - ck_group_write[bank[1]] < TCCD) $display ("%m: at time %t ERROR: tCCD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b0, DIFF_BANK , WRITE , READ } : begin if (ck_cntr - ck_write < write_latency + burst_length/2 + TWTR_TCK - additive_latency) $display ("%m: at time %t ERROR: tWTR violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_BANK , WRITE , READ } : begin if (ck_cntr - ck_group_write[bank[1]] < write_latency + burst_length/2 + TWTR_TCK - additive_latency) $display ("%m: at time %t ERROR: tWTR violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_GROUP, WRITE , WRITE } : begin if (ck_cntr - ck_write < TCCD_DG) $display ("%m: at time %t ERROR: tCCD_DG violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_GROUP, WRITE , READ } : begin if (ck_cntr - ck_write < write_latency + burst_length/2 + TWTR_DG_TCK - additive_latency) $display ("%m: at time %t ERROR: tWTR_DG violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'bx, DIFF_BANK , WRITE , PWR_DOWN } : begin if (($time - tm_write_end < TWR-TJIT_PER) || (ck_cntr - ck_write < write_latency + burst_length/2)) $display ("%m: at time %t ERROR: tWRPDEN violation during %s", $time, cmd_string[cmd]); end + + // read + {1'bx, SAME_BANK , READ , PRECHARGE} : begin if (($time - tm_bank_read_end[bank] < TRTP-TJIT_PER) || (ck_cntr - ck_bank_read[bank] < additive_latency + TRTP_TCK)) $display ("%m: at time %t ERROR: tRTP violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b0, DIFF_BANK , READ , WRITE } : ; // tRTW is checked outside this task + {1'b1, DIFF_BANK , READ , WRITE } : ; // tRTW is checked outside this task + {1'b0, DIFF_BANK , READ , READ } : begin if (ck_cntr - ck_read < TCCD) $display ("%m: at time %t ERROR: tCCD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_BANK , READ , READ } : begin if (ck_cntr - ck_group_read[bank[1]] < TCCD) $display ("%m: at time %t ERROR: tCCD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_GROUP, READ , WRITE } : ; // tRTW is checked outside this task + {1'b1, DIFF_GROUP, READ , READ } : begin if (ck_cntr - ck_read < TCCD_DG) $display ("%m: at time %t ERROR: tCCD_DG violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'bx, DIFF_BANK , READ , PWR_DOWN } : begin if (ck_cntr - ck_read < read_latency + 5) $display ("%m: at time %t ERROR: tRDPDEN violation during %s", $time, cmd_string[cmd]); end + + // zq + {1'bx, DIFF_BANK , ZQ , LOAD_MODE} : ; // 1 tCK + {1'bx, DIFF_BANK , ZQ , REFRESH } , + {1'bx, DIFF_BANK , ZQ , PRECHARGE} , + {1'bx, DIFF_BANK , ZQ , ACTIVATE } , + {1'bx, DIFF_BANK , ZQ , ZQ } , + {1'bx, DIFF_BANK , ZQ , PWR_DOWN } , + {1'bx, DIFF_BANK , ZQ , SELF_REF } : begin if (ck_cntr - ck_zqinit < TZQINIT) $display ("%m: at time %t ERROR: tZQinit violation during %s", $time, cmd_string[cmd]); + if (ck_cntr - ck_zqoper < TZQOPER) $display ("%m: at time %t ERROR: tZQoper violation during %s", $time, cmd_string[cmd]); + if (ck_cntr - ck_zqcs < TZQCS) $display ("%m: at time %t ERROR: tZQCS violation during %s", $time, cmd_string[cmd]); end + + // power down + {1'bx, DIFF_BANK , PWR_DOWN , LOAD_MODE} , + {1'bx, DIFF_BANK , PWR_DOWN , REFRESH } , + {1'bx, DIFF_BANK , PWR_DOWN , PRECHARGE} , + {1'bx, DIFF_BANK , PWR_DOWN , ACTIVATE } , + {1'bx, DIFF_BANK , PWR_DOWN , WRITE } , + {1'bx, DIFF_BANK , PWR_DOWN , ZQ } : begin if (($time - tm_power_down < TXP) || (ck_cntr - ck_power_down < TXP_TCK)) $display ("%m: at time %t ERROR: tXP violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , PWR_DOWN , READ } : begin if (($time - tm_power_down < TXP) || (ck_cntr - ck_power_down < TXP_TCK)) $display ("%m: at time %t ERROR: tXP violation during %s", $time, cmd_string[cmd]); + else if (($time - tm_slow_exit_pd < TXPDLL) || (ck_cntr - ck_slow_exit_pd < TXPDLL_TCK)) $display ("%m: at time %t ERROR: tXPDLL violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , PWR_DOWN , PWR_DOWN } , + {1'bx, DIFF_BANK , PWR_DOWN , SELF_REF } : begin if (($time - tm_power_down < TXP) || (ck_cntr - ck_power_down < TXP_TCK)) $display ("%m: at time %t ERROR: tXP violation during %s", $time, cmd_string[cmd]); + if ((tm_power_down > tm_refresh) && ($time - tm_refresh < TRFC_MIN)) $display ("%m: at time %t ERROR: tRFC violation during %s", $time, cmd_string[cmd]); + if ((tm_refresh > tm_power_down) && (($time - tm_power_down < TXPDLL) || (ck_cntr - ck_power_down < TXPDLL_TCK))) $display ("%m: at time %t ERROR: tXPDLL violation during %s", $time, cmd_string[cmd]); + if (($time - tm_cke_cmd < TCKE) || (ck_cntr - ck_cke_cmd < TCKE_TCK)) $display ("%m: at time %t ERROR: tCKE violation on CKE", $time); end + + // self refresh + {1'bx, DIFF_BANK , SELF_REF , LOAD_MODE} , + {1'bx, DIFF_BANK , SELF_REF , REFRESH } , + {1'bx, DIFF_BANK , SELF_REF , PRECHARGE} , + {1'bx, DIFF_BANK , SELF_REF , ACTIVATE } , + {1'bx, DIFF_BANK , SELF_REF , WRITE } , + {1'bx, DIFF_BANK , SELF_REF , ZQ } : begin if (($time - tm_self_refresh < TXS) || (ck_cntr - ck_self_refresh < TXS_TCK)) $display ("%m: at time %t ERROR: tXS violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , SELF_REF , READ } : begin if (ck_cntr - ck_self_refresh < TXSDLL) $display ("%m: at time %t ERROR: tXSDLL violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , SELF_REF , PWR_DOWN } , + {1'bx, DIFF_BANK , SELF_REF , SELF_REF } : begin if (($time - tm_self_refresh < TXS) || (ck_cntr - ck_self_refresh < TXS_TCK)) $display ("%m: at time %t ERROR: tXS violation during %s", $time, cmd_string[cmd]); + if (($time - tm_cke_cmd < TCKE) || (ck_cntr - ck_cke_cmd < TCKE_TCK)) $display ("%m: at time %t ERROR: tCKE violation on CKE", $time); end + endcase + end + endtask + + task cmd_task; + inout prev_cke; + input cke; + input [2:0] cmd; + input [BA_BITS-1:0] bank; + input [ADDR_BITS-1:0] addr; + reg [`BANKS:0] i; + integer j; + reg [`BANKS:0] tfaw_cntr; + reg [COL_BITS-1:0] col; + reg group; + begin + // tRFC max check + if (!er_trfc_max && !in_self_refresh) begin + if ($time - tm_refresh > TRFC_MAX && check_strict_timing) begin + $display ("%m: at time %t ERROR: tRFC maximum violation during %s", $time, cmd_string[cmd]); + er_trfc_max = 1; + end + end + if (cke) begin + if ((cmd < NOP) && (cmd != PRECHARGE)) begin + if (($time - tm_txpr < TXPR) || (ck_cntr - ck_txpr < TXPR_TCK)) + $display ("%m: at time %t ERROR: tXPR violation during %s", $time, cmd_string[cmd]); + for (j=0; j<=SELF_REF; j=j+1) begin + chk_err(SAME_BANK , bank, j, cmd); + chk_err(DIFF_BANK , bank, j, cmd); + chk_err(DIFF_GROUP, bank, j, cmd); + end + end + case (cmd) + LOAD_MODE : begin + if (|odt_pipeline) + $display ("%m: at time %t ERROR: ODTL violation during %s", $time, cmd_string[cmd]); + if (odt_state && !feature_odt_hi) + $display ("%m: at time %t ERROR: ODT must be off prior to %s", $time, cmd_string[cmd]); + + if (|active_bank) begin + $display ("%m: at time %t ERROR: %s Failure. All banks must be Precharged.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d", $time, cmd_string[cmd], bank); + if (bank>>2) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved bank bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + case (bank) + 0 : begin + // Burst Length + if (addr[1:0] == 2'b00) begin + burst_length = 8; + blotf = 0; + truebl4 = 0; + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Length = %d", $time, cmd_string[cmd], bank, burst_length); + end else if (addr[1:0] == 2'b01) begin + burst_length = 8; + blotf = 1; + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Length = Select via A12", $time, cmd_string[cmd], bank); + end else if (addr[1:0] == 2'b10) begin + burst_length = 4; + blotf = 0; + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Length = Fixed %d (chop)", $time, cmd_string[cmd], bank, burst_length); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Burst Length = %d", $time, cmd_string[cmd], bank, addr[1:0]); + end + // Burst Order + burst_order = addr[3]; + if (!burst_order) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Order = Sequential", $time, cmd_string[cmd], bank); + end else if (burst_order) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Order = Interleaved", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Burst Order = %d", $time, cmd_string[cmd], bank, burst_order); + end + // CAS Latency + cas_latency = {addr[2],addr[6:4]} + 4; + set_latency; + if ((cas_latency >= CL_MIN) && (cas_latency <= CL_MAX)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d CAS Latency = %d", $time, cmd_string[cmd], bank, cas_latency); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal CAS Latency = %d", $time, cmd_string[cmd], bank, cas_latency); + end + // Reserved + if (addr[7] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // DLL Reset + dll_reset = addr[8]; + if (!dll_reset) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d DLL Reset = Normal", $time, cmd_string[cmd], bank); + end else if (dll_reset) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d DLL Reset = Reset DLL", $time, cmd_string[cmd], bank); + dll_locked = 0; + init_dll_reset = 1; + ck_dll_reset <= ck_cntr; + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal DLL Reset = %d", $time, cmd_string[cmd], bank, dll_reset); + end + + // Write Recovery + if (addr[11:9] == 0) begin + write_recovery = 16; + end else if (addr[11:9] < 4) begin + write_recovery = addr[11:9] + 4; + end else begin + write_recovery = 2*addr[11:9]; + end + + if ((write_recovery >= WR_MIN) && (write_recovery <= WR_MAX)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Write Recovery = %d", $time, cmd_string[cmd], bank, write_recovery); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Write Recovery = %d", $time, cmd_string[cmd], bank, write_recovery); + end + // Power Down Mode + low_power = !addr[12]; + if (!low_power) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Power Down Mode = DLL on", $time, cmd_string[cmd], bank); + end else if (low_power) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Power Down Mode = DLL off", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Power Down Mode = %d", $time, cmd_string[cmd], bank, low_power); + end + // Reserved + if (ADDR_BITS>13 && addr[13] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + end + 1 : begin + // DLL Enable + dll_en = !addr[0]; + if (!dll_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d DLL Enable = Disabled", $time, cmd_string[cmd], bank); + if (check_strict_mrbits) $display ("%m: at time %t WARNING: %s %d DLL off mode is not fully modeled", $time, cmd_string[cmd], bank); + end else if (dll_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d DLL Enable = Enabled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal DLL Enable = %d", $time, cmd_string[cmd], bank, dll_en); + end + // Output Drive Strength + if ({addr[5], addr[1]} == 2'b00) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Output Drive Strength = %d Ohm", $time, cmd_string[cmd], bank, RZQ/6); + end else if ({addr[5], addr[1]} == 2'b01) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Output Drive Strength = %d Ohm", $time, cmd_string[cmd], bank, RZQ/7); + end else if ({addr[5], addr[1]} == 2'b11) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Output Drive Strength = %d Ohm", $time, cmd_string[cmd], bank, RZQ/5); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Output Drive Strength = %d", $time, cmd_string[cmd], bank, {addr[5], addr[1]}); + end + // ODT Rtt (Rtt_NOM) + odt_rtt_nom = {addr[9], addr[6], addr[2]}; + if (odt_rtt_nom == 3'b000) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d ODT Rtt = Disabled", $time, cmd_string[cmd], bank); + odt_en = 0; + end else if ((odt_rtt_nom < 4) || ((!addr[7] || (addr[7] && addr[12])) && (odt_rtt_nom < 6))) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d ODT Rtt = %d Ohm", $time, cmd_string[cmd], bank, get_rtt_nom(odt_rtt_nom)); + odt_en = 1; + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal ODT Rtt = %d", $time, cmd_string[cmd], bank, odt_rtt_nom); + odt_en = 0; + end + // Report the additive latency value + al = addr[4:3]; + set_latency; + if (al == 0) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Additive Latency = %d", $time, cmd_string[cmd], bank, al); + end else if ((al >= AL_MIN) && (al <= AL_MAX)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Additive Latency = CL - %d", $time, cmd_string[cmd], bank, al); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Additive Latency = %d", $time, cmd_string[cmd], bank, al); + end + // Write Levelization + write_levelization = addr[7]; + if (!write_levelization) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Write Levelization = Disabled", $time, cmd_string[cmd], bank); + end else if (write_levelization) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Write Levelization = Enabled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Write Levelization = %d", $time, cmd_string[cmd], bank, write_levelization); + end + // Reserved + if (addr[8] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // Reserved + if (addr[10] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // TDQS Enable + tdqs_en = addr[11]; + if (!tdqs_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d TDQS Enable = Disabled", $time, cmd_string[cmd], bank); + end else if (tdqs_en) begin + if (8 == DQ_BITS) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d TDQS Enable = Enabled", $time, cmd_string[cmd], bank); + end + else begin + $display ("%m: at time %t WARNING: %s %d Illegal TDQS Enable. TDQS only exists on a x8 part", $time, cmd_string[cmd], bank); + tdqs_en = 0; + end + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal TDQS Enable = %d", $time, cmd_string[cmd], bank, tdqs_en); + end + // Output Enable + out_en = !addr[12]; + if (!out_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Qoff = Disabled", $time, cmd_string[cmd], bank); + end else if (out_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Qoff = Enabled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Qoff = %d", $time, cmd_string[cmd], bank, out_en); + end + // Reserved + if (ADDR_BITS>13 && addr[13] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + end + 2 : begin + if (feature_pasr) begin + // Partial Array Self Refresh + pasr = addr[2:0]; + case (pasr) + 3'b000 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 0-7", $time, cmd_string[cmd], bank); + 3'b001 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 0-3", $time, cmd_string[cmd], bank); + 3'b010 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 0-1", $time, cmd_string[cmd], bank); + 3'b011 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 0", $time, cmd_string[cmd], bank); + 3'b100 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 2-7", $time, cmd_string[cmd], bank); + 3'b101 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 4-7", $time, cmd_string[cmd], bank); + 3'b110 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 6-7", $time, cmd_string[cmd], bank); + 3'b111 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 7", $time, cmd_string[cmd], bank); + default : $display ("%m: at time %t ERROR: %s %d Illegal Partial Array Self Refresh = %d", $time, cmd_string[cmd], bank, pasr); + endcase + end + else + if (addr[2:0] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // CAS Write Latency + cas_write_latency = addr[5:3]+5; + set_latency; + if ((cas_write_latency >= CWL_MIN) && (cas_write_latency <= CWL_MAX)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d CAS Write Latency = %d", $time, cmd_string[cmd], bank, cas_write_latency); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal CAS Write Latency = %d", $time, cmd_string[cmd], bank, cas_write_latency); + end + // Auto Self Refresh Method + asr = addr[6]; + if (!asr) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Auto Self Refresh = Disabled", $time, cmd_string[cmd], bank); + end else if (asr) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Auto Self Refresh = Enabled", $time, cmd_string[cmd], bank); + if (check_strict_mrbits) $display ("%m: at time %t WARNING: %s %d Auto Self Refresh is not modeled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Auto Self Refresh = %d", $time, cmd_string[cmd], bank, asr); + end + // Self Refresh Temperature + srt = addr[7]; + if (!srt) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Self Refresh Temperature = Normal", $time, cmd_string[cmd], bank); + end else if (srt) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Self Refresh Temperature = Extended", $time, cmd_string[cmd], bank); + if (check_strict_mrbits) $display ("%m: at time %t WARNING: %s %d Self Refresh Temperature is not modeled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Self Refresh Temperature = %d", $time, cmd_string[cmd], bank, srt); + end + if (asr && srt) + $display ("%m: at time %t ERROR: %s %d SRT must be set to 0 when ASR is enabled.", $time, cmd_string[cmd], bank); + // Reserved + if (addr[8] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // Dynamic ODT (Rtt_WR) + odt_rtt_wr = addr[10:9]; + if (odt_rtt_wr == 2'b00) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Dynamic ODT = Disabled", $time, cmd_string[cmd], bank); + dyn_odt_en = 0; + end else if ((odt_rtt_wr > 0) && (odt_rtt_wr < 3)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Dynamic ODT Rtt = %d Ohm", $time, cmd_string[cmd], bank, get_rtt_wr(odt_rtt_wr)); + dyn_odt_en = 1; + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Dynamic ODT = %d", $time, cmd_string[cmd], bank, odt_rtt_wr); + dyn_odt_en = 0; + end + // Reserved + if (ADDR_BITS>13 && addr[13:11] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + end + 3 : begin + mpr_select = addr[1:0]; + // MultiPurpose Register Select + if (mpr_select == 2'b00) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d MultiPurpose Register Select = Pre-defined pattern", $time, cmd_string[cmd], bank); + end else begin + if (check_strict_mrbits) $display ("%m: at time %t ERROR: %s %d Illegal MultiPurpose Register Select = %d", $time, cmd_string[cmd], bank, mpr_select); + end + // MultiPurpose Register Enable + mpr_en = addr[2]; + if (!mpr_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d MultiPurpose Register Enable = Disabled", $time, cmd_string[cmd], bank); + end else if (mpr_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d MultiPurpose Register Enable = Enabled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal MultiPurpose Register Enable = %d", $time, cmd_string[cmd], bank, mpr_en); + end + + if (feature_truebl4 && (addr[11] == 1'b1)) begin + if (addr[11] == 1'b1) begin + truebl4 = 1; + $display(" EMRS3 Set True Bl4 mode only "); + end + end + + // Reserved + if (ADDR_BITS>13 && addr[13:3] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + end + endcase + if (dyn_odt_en && write_levelization) + $display ("%m: at time %t ERROR: Dynamic ODT is not available during Write Leveling mode.", $time); + init_mode_reg[bank] = 1; + mode_reg[bank] = addr; + // dll_reset bit self clear + if(bank==0 && addr[8]==1'b1) + mode_reg[0][8] <= #($rtoi(tck_avg)) 1'b0; + tm_load_mode <= $time; + ck_load_mode <= ck_cntr; + end + end + REFRESH : begin + if (mpr_en) begin + $display ("%m: at time %t ERROR: %s Failure. Multipurpose Register must be disabled.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else if (|active_bank) begin + $display ("%m: at time %t ERROR: %s Failure. All banks must be Precharged.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: %s", $time, cmd_string[cmd]); + er_trfc_max = 0; + ref_cntr = ref_cntr + 1; + tm_refresh <= $time; + ck_refresh <= ck_cntr; + end + end + PRECHARGE : begin + if (addr[AP]) begin + if (DEBUG) $display ("%m: at time %t INFO: %s All", $time, cmd_string[cmd]); + end + // PRECHARGE command will be treated as a NOP if there is no open row in that bank (idle state), + // or if the previously open row is already in the process of precharging + if (|active_bank) begin + if (($time - tm_txpr < TXPR) || (ck_cntr - ck_txpr < TXPR_TCK)) + $display ("%m: at time %t ERROR: tXPR violation during %s", $time, cmd_string[cmd]); + if (mpr_en) begin + $display ("%m: at time %t ERROR: %s Failure. Multipurpose Register must be disabled.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else begin + for (i=0; i<`BANKS; i=i+1) begin + if (active_bank[i]) begin + if (addr[AP] || (i == bank)) begin + + for (j=0; j<=SELF_REF; j=j+1) begin + chk_err(SAME_BANK, i, j, cmd); + chk_err(DIFF_BANK, i, j, cmd); + end + + if (auto_precharge_bank[i]) begin + $display ("%m: at time %t ERROR: %s Failure. Auto Precharge is scheduled to bank %d.", $time, cmd_string[cmd], i); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: %s bank %d", $time, cmd_string[cmd], i); + active_bank[i] = 1'b0; + tm_bank_precharge[i] <= $time; + tm_precharge <= $time; + ck_precharge <= ck_cntr; + end + end + end + end + end + end // if (|active_bank) + else begin + chk_err(DIFF_BANK, 0, REFRESH, PRECHARGE); + end + end + ACTIVATE : begin + tfaw_cntr = 0; + for (i=0; i<`BANKS; i=i+1) begin + if ($time - tm_bank_activate[i] < TFAW) begin + tfaw_cntr = tfaw_cntr + 1; + end + end + if (tfaw_cntr > 3) begin + $display ("%m: at time %t ERROR: tFAW violation during %s to bank %d", $time, cmd_string[cmd], bank); + end + + if (mpr_en) begin + $display ("%m: at time %t ERROR: %s Failure. Multipurpose Register must be disabled.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else if (!init_done) begin + $display ("%m: at time %t ERROR: %s Failure. Initialization sequence is not complete.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else if (active_bank[bank]) begin + $display ("%m: at time %t ERROR: %s Failure. Bank %d must be Precharged.", $time, cmd_string[cmd], bank); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (addr >= 1< AP +`else + col = {addr[BC-1:AP+1], addr[AP-1:0]}; // assume BC > AP +`endif + if (col >= 1< AP +`else + col = {addr[BC-1:AP+1], addr[AP-1:0]}; // assume BC > AP +`endif + if (col >= 1< TPD_MAX) + $display ("%m: at time %t ERROR: tPD maximum violation during Power Down Exit", $time); + if (DEBUG) $display ("%m: at time %t INFO: Power Down Exit", $time); + in_power_down = 0; + if ((active_bank == 0) && low_power) begin // precharge power down with dll off + if (ck_cntr - ck_odt < write_latency - 1) + $display ("%m: at time %t WARNING: tANPD violation during Power Down Exit. Synchronous or asynchronous change in termination resistance is possible.", $time); + tm_slow_exit_pd <= $time; + ck_slow_exit_pd <= ck_cntr; + end + tm_power_down <= $time; + ck_power_down <= ck_cntr; + end + if (in_self_refresh) begin + if (($time - tm_freq_change < TCKSRX) || (ck_cntr - ck_freq_change < TCKSRX_TCK)) + $display ("%m: at time %t ERROR: tCKSRX violation during Self Refresh Exit", $time); + if (ck_cntr - ck_cke_cmd < TCKESR_TCK) + $display ("%m: at time %t ERROR: tCKESR violation during Self Refresh Exit", $time); + if ($time - tm_cke < TISXR) + $display ("%m: at time %t ERROR: tISXR violation during Self Refresh Exit", $time); + if (DEBUG) $display ("%m: at time %t INFO: Self Refresh Exit", $time); + in_self_refresh = 0; + ck_dll_reset <= ck_cntr; + ck_self_refresh <= ck_cntr; + tm_self_refresh <= $time; + tm_refresh <= $time; + end + end + endcase + if ((prev_cke !== 1) && (cmd !== NOP)) begin + $display ("%m: at time %t ERROR: NOP or Deselect is required when CKE goes active.", $time); + end + + if (!init_done) begin + case (init_step) + 0 : begin + if ($time - tm_rst_n < 500000000 && check_strict_timing) + $display ("%m at time %t WARNING: 500 us is required after RST_N goes inactive before CKE goes active.", $time); + tm_txpr <= $time; + ck_txpr <= ck_cntr; + init_step = init_step + 1; + end + 1 : begin + if (dll_en) init_step = init_step + 1; + end + 2 : begin + if (&init_mode_reg && init_dll_reset && zq_set) begin + if (DEBUG) $display ("%m: at time %t INFO: Initialization Sequence is complete", $time); + init_done = 1; + end + end + endcase + end + end else if (prev_cke) begin + if ((!init_done) && (init_step > 1)) begin + $display ("%m: at time %t ERROR: CKE must remain active until the initialization sequence is complete.", $time); + if (STOP_ON_ERROR) $stop(0); + end + case (cmd) + REFRESH : begin + if ($time - tm_txpr < TXPR) + $display ("%m: at time %t ERROR: tXPR violation during %s", $time, cmd_string[SELF_REF]); + for (j=0; j<=SELF_REF; j=j+1) begin + chk_err(DIFF_BANK, bank, j, SELF_REF); + end + + if (mpr_en) begin + $display ("%m: at time %t ERROR: Self Refresh Failure. Multipurpose Register must be disabled.", $time); + if (STOP_ON_ERROR) $stop(0); + end else if (|active_bank) begin + $display ("%m: at time %t ERROR: Self Refresh Failure. All banks must be Precharged.", $time); + if (STOP_ON_ERROR) $stop(0); + end else if (odt_state) begin + $display ("%m: at time %t ERROR: Self Refresh Failure. ODT must be off prior to entering Self Refresh", $time); + if (STOP_ON_ERROR) $stop(0); + end else if (!init_done) begin + $display ("%m: at time %t ERROR: Self Refresh Failure. Initialization sequence is not complete.", $time); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: Self Refresh Enter", $time); + if (feature_pasr) + // Partial Array Self Refresh + case (pasr) + 3'b000 : ;//keep Bank 0-7 + 3'b001 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 4-7 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'hF0); end + 3'b010 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 2-7 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'hFC); end + 3'b011 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 1-7 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'hFE); end + 3'b100 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 0-1 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'h03); end + 3'b101 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 0-3 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'h0F); end + 3'b110 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 0-5 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'h3F); end + 3'b111 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 0-6 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'h7F); end + endcase + in_self_refresh = 1; + dll_locked = 0; + end + end + NOP : begin + // entering precharge power down with dll off and tANPD has not been satisfied + if (low_power && (active_bank == 0) && |odt_pipeline) + $display ("%m: at time %t WARNING: tANPD violation during %s. Synchronous or asynchronous change in termination resistance is possible.", $time, cmd_string[PWR_DOWN]); + if ($time - tm_txpr < TXPR) + $display ("%m: at time %t ERROR: tXPR violation during %s", $time, cmd_string[PWR_DOWN]); + for (j=0; j<=SELF_REF; j=j+1) begin + chk_err(DIFF_BANK, bank, j, PWR_DOWN); + end + + if (mpr_en) begin + $display ("%m: at time %t ERROR: Power Down Failure. Multipurpose Register must be disabled.", $time); + if (STOP_ON_ERROR) $stop(0); + end else if (!init_done) begin + $display ("%m: at time %t ERROR: Power Down Failure. Initialization sequence is not complete.", $time); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) begin + if (|active_bank) begin + $display ("%m: at time %t INFO: Active Power Down Enter", $time); + end else begin + $display ("%m: at time %t INFO: Precharge Power Down Enter", $time); + end + end + in_power_down = 1; + end + end + default : begin + $display ("%m: at time %t ERROR: NOP, Deselect, or Refresh is required when CKE goes inactive.", $time); + end + endcase + end else if (in_self_refresh || in_power_down) begin + if ((ck_cntr - ck_cke_cmd <= TCPDED) && (cmd !== NOP)) + $display ("%m: at time %t ERROR: tCPDED violation during Power Down or Self Refresh Entry. NOP or Deselect is required.", $time); + end + prev_cke = cke; + + end + endtask + + task data_task; + reg [BA_BITS-1:0] bank; + reg [ROW_BITS-1:0] row; + reg [COL_BITS-1:0] col; + integer i; + integer j; + begin + + if (diff_ck) begin + for (i=0; i<64; i=i+1) begin + if (dq_in_valid && dll_locked && ($time - tm_dqs_neg[i] < $rtoi(TDSS*tck_avg))) + $display ("%m: at time %t ERROR: tDSS violation on %s bit %d", $time, dqs_string[i/32], i%32); + if (check_write_dqs_high[i]) + $display ("%m: at time %t ERROR: %s bit %d latching edge required during the preceding clock period.", $time, dqs_string[i/32], i%32); + end + check_write_dqs_high <= 0; + end else begin + for (i=0; i<64; i=i+1) begin + if (dll_locked && dq_in_valid) begin + tm_tdqss = abs_value(1.0*tm_ck_pos - tm_dqss_pos[i]); + if ((tm_tdqss < tck_avg/2.0) && (tm_tdqss > TDQSS*tck_avg)) + $display ("%m: at time %t ERROR: tDQSS violation on %s bit %d", $time, dqs_string[i/32], i%32); + end + if (check_write_dqs_low[i]) + $display ("%m: at time %t ERROR: %s bit %d latching edge required during the preceding clock period", $time, dqs_string[i/32], i%32); + end + check_write_preamble <= 0; + check_write_postamble <= 0; + check_write_dqs_low <= 0; + end + + if (wr_pipeline[0] || rd_pipeline[0]) begin + bank = ba_pipeline[0]; + row = row_pipeline[0]; + col = col_pipeline[0]; + burst_cntr = 0; + memory_read(bank, row, col, memory_data); + end + + // burst counter + if (burst_cntr < burst_length) begin + burst_position = col ^ burst_cntr; + if (!burst_order) begin + burst_position[BO_BITS-1:0] = col + burst_cntr; + end + burst_cntr = burst_cntr + 1; + end + + // write dqs counter + if (wr_pipeline[WDQS_PRE + 1]) begin + wdqs_cntr = WDQS_PRE + bl_pipeline[WDQS_PRE + 1] + WDQS_PST - 1; + end + // write dqs + if ((wr_pipeline[2]) && (wdq_cntr == 0)) begin //write preamble + check_write_preamble <= ({DQS_BITS{1'b1}}<<32) | {DQS_BITS{1'b1}}; + end + if (wdqs_cntr > 1) begin // write data + if ((wdqs_cntr - WDQS_PST)%2) begin + check_write_dqs_high <= ({DQS_BITS{1'b1}}<<32) | {DQS_BITS{1'b1}}; + end else begin + check_write_dqs_low <= ({DQS_BITS{1'b1}}<<32) | {DQS_BITS{1'b1}}; + end + end + if (wdqs_cntr == WDQS_PST) begin // write postamble + check_write_postamble <= ({DQS_BITS{1'b1}}<<32) | {DQS_BITS{1'b1}}; + end + if (wdqs_cntr > 0) begin + wdqs_cntr = wdqs_cntr - 1; + end + + // write dq + if (dq_in_valid) begin // write data + bit_mask = 0; + if (diff_ck) begin + for (i=0; i>(burst_position*DQ_BITS); + if (DEBUG) $display ("%m: at time %t INFO: WRITE @ DQS= bank = %h row = %h col = %h data = %h",$time, bank, row, (-1*BL_MAX & col) + burst_position, dq_temp); + if (burst_cntr%BL_MIN == 0) begin + memory_write(bank, row, col, memory_data); + end + end + if (wr_pipeline[1]) begin + wdq_cntr = bl_pipeline[1]; + end + if (wdq_cntr > 0) begin + wdq_cntr = wdq_cntr - 1; + dq_in_valid = 1'b1; + end else begin + dq_in_valid = 1'b0; + dqs_in_valid <= 1'b0; + for (i=0; i<63; i=i+1) begin + wdqs_pos_cntr[i] <= 0; + end + end + if (wr_pipeline[0]) begin + b2b_write <= 1'b0; + end + if (wr_pipeline[2]) begin + if (dqs_in_valid) begin + b2b_write <= 1'b1; + end + dqs_in_valid <= 1'b1; + wr_burst_length = bl_pipeline[2]; + end + + // read dqs enable counter + if (rd_pipeline[RDQSEN_PRE]) begin + rdqsen_cntr = RDQSEN_PRE + bl_pipeline[RDQSEN_PRE] + RDQSEN_PST - 1; + end + if (rdqsen_cntr > 0) begin + rdqsen_cntr = rdqsen_cntr - 1; + dqs_out_en = 1'b1; + end else begin + dqs_out_en = 1'b0; + end + + // read dqs counter + if (rd_pipeline[RDQS_PRE]) begin + rdqs_cntr = RDQS_PRE + bl_pipeline[RDQS_PRE] + RDQS_PST - 1; + end + // read dqs + if (((rd_pipeline>>1 & {RDQS_PRE{1'b1}}) > 0) && (rdq_cntr == 0)) begin //read preamble + dqs_out = 1'b0; + end else if (rdqs_cntr > RDQS_PST) begin // read data + dqs_out = rdqs_cntr - RDQS_PST; + end else if (rdqs_cntr > 0) begin // read postamble + dqs_out = 1'b0; + end else begin + dqs_out = 1'b1; + end + if (rdqs_cntr > 0) begin + rdqs_cntr = rdqs_cntr - 1; + end + + // read dq enable counter + if (rd_pipeline[RDQEN_PRE]) begin + rdqen_cntr = RDQEN_PRE + bl_pipeline[RDQEN_PRE] + RDQEN_PST; + end + if (rdqen_cntr > 0) begin + rdqen_cntr = rdqen_cntr - 1; + dq_out_en = 1'b1; + end else begin + dq_out_en = 1'b0; + end + // read dq + if (rd_pipeline[0]) begin + rdq_cntr = bl_pipeline[0]; + end + if (rdq_cntr > 0) begin // read data + if (mpr_en) begin +`ifdef MPR_DQ0 // DQ0 output MPR data, other DQ low + if (mpr_select == 2'b00) begin // Calibration Pattern + dq_temp = {DQS_BITS{{`DQ_PER_DQS-1{1'b0}}, calibration_pattern[burst_position]}}; + end else if (odts_readout && (mpr_select == 2'b11)) begin // Temp Sensor (ODTS) + dq_temp = {DQS_BITS{{`DQ_PER_DQS-1{1'b0}}, temp_sensor[burst_position]}}; + end else begin // Reserved + dq_temp = {DQS_BITS{{`DQ_PER_DQS-1{1'b0}}, 1'bx}}; + end +`else // all DQ output MPR data + if (mpr_select == 2'b00) begin // Calibration Pattern + dq_temp = {DQS_BITS{{`DQ_PER_DQS{calibration_pattern[burst_position]}}}}; + end else if (odts_readout && (mpr_select == 2'b11)) begin // Temp Sensor (ODTS) + dq_temp = {DQS_BITS{{`DQ_PER_DQS{temp_sensor[burst_position]}}}}; + end else begin // Reserved + dq_temp = {DQS_BITS{{`DQ_PER_DQS{1'bx}}}}; + end +`endif + if (DEBUG) $display ("%m: at time %t READ @ DQS MultiPurpose Register %d, col = %d, data = %b", $time, mpr_select, burst_position, dq_temp[0]); + end else begin + dq_temp = memory_data>>(burst_position*DQ_BITS); + if (DEBUG) $display ("%m: at time %t INFO: READ @ DQS= bank = %h row = %h col = %h data = %h",$time, bank, row, (-1*BL_MAX & col) + burst_position, dq_temp); + end + dq_out = dq_temp; + rdq_cntr = rdq_cntr - 1; + end else begin + dq_out = {DQ_BITS{1'b1}}; + end + + // delay signals prior to output + if (RANDOM_OUT_DELAY && (dqs_out_en || (|dqs_out_en_dly) || dq_out_en || (|dq_out_en_dly))) begin + for (i=0; i dqsck[i] + TQH*tck_avg + TDQSQ) begin + dqsck_max = dqsck[i] + TQH*tck_avg + TDQSQ; + end + dqsck_min = -1*TDQSCK; + if (dqsck_min < dqsck[i] - TQH*tck_avg - TDQSQ) begin + dqsck_min = dqsck[i] - TQH*tck_avg - TDQSQ; + end + + // DQSQ requirements + // 1.) less than tDQSQ + // 2.) greater than 0 + // 3.) greater than tQH from the previous DQS edge + dqsq_min = 0; + if (dqsq_min < dqsck[i] - TQH*tck_avg) begin + dqsq_min = dqsck[i] - TQH*tck_avg; + end + if (dqsck_min == dqsck_max) begin + dqsck[i] = dqsck_min; + end else begin + dqsck[i] = $dist_uniform(seed, dqsck_min, dqsck_max); + end + dqsq_max = TDQSQ + dqsck[i]; + + dqs_out_en_dly[i] <= #(tck_avg/2) dqs_out_en; + dqs_out_dly[i] <= #(tck_avg/2 + dqsck[i]) dqs_out; + if (!write_levelization) begin + for (j=0; j<`DQ_PER_DQS; j=j+1) begin + dq_out_en_dly[i*`DQ_PER_DQS + j] <= #(tck_avg/2) dq_out_en; + if (dqsq_min == dqsq_max) begin + dq_out_dly [i*`DQ_PER_DQS + j] <= #(tck_avg/2 + dqsq_min) dq_out[i*`DQ_PER_DQS + j]; + end else begin + dq_out_dly [i*`DQ_PER_DQS + j] <= #(tck_avg/2 + $dist_uniform(seed, dqsq_min, dqsq_max)) dq_out[i*`DQ_PER_DQS + j]; + end + end + end + end + end else begin + if (dll_en) + if(diff_ck) + out_delay = ($rtoi(tch_avg) > 50000) ? 0 : $rtoi(tch_avg); + else + out_delay = ($rtoi(tcl_avg) > 50000) ? 0 : $rtoi(tcl_avg); + else + if(diff_ck) + out_delay = ($rtoi(tch_avg) > 50000) ? 0 : $rtoi(tch_avg) + TDQSCK_DLLDIS; + else + out_delay = ($rtoi(tcl_avg) > 50000) ? 0 : $rtoi(tcl_avg) + TDQSCK_DLLDIS; + dqs_out_en_dly <= #(out_delay) {DQS_BITS{dqs_out_en}}; + dqs_out_dly <= #(out_delay) {DQS_BITS{dqs_out }}; + if (write_levelization !== 1'b1) begin + dq_out_en_dly <= #(out_delay) {DQ_BITS {dq_out_en }}; + dq_out_dly <= #(out_delay) {DQ_BITS {dq_out }}; + end + end + end + endtask + + always @ (posedge rst_n_in) begin : reset + integer i; + if (rst_n_in) begin + if ($time < 200000000 && check_strict_timing) + $display ("%m at time %t WARNING: 200 us is required before RST_N goes inactive.", $time); + if (cke_in !== 1'b0) + $display ("%m: at time %t ERROR: CKE must be inactive when RST_N goes inactive.", $time); + if ($time - tm_cke < 10000) + $display ("%m: at time %t ERROR: CKE must be maintained inactive for 10 ns before RST_N goes inactive.", $time); + + // clear memory +`ifdef MAX_MEM + // verification group does not erase memory + // for (banki = 0; banki < `BANKS; banki = banki + 1) begin + // $fclose(memfd[banki]); + // memfd[banki] = open_bank_file(banki); + // end +`else + memory_used <= 0; //erase memory +`endif + + end + end + + always @(negedge rst_n_in or posedge diff_ck or negedge diff_ck) begin : main + integer i; + if (!rst_n_in) begin + reset_task; + end else begin + if (!in_self_refresh && (diff_ck !== 1'b0) && (diff_ck !== 1'b1)) + $display ("%m: at time %t ERROR: CK and CK_N are not allowed to go to an unknown state.", $time); + data_task; + + // Clock Frequency Change is legal: + // 1.) During Self Refresh + // 2.) During Precharge Power Down (DLL on or off) + if (in_self_refresh || (in_power_down && (active_bank == 0))) begin + if (diff_ck) begin + tjit_per_rtime = $time - tm_ck_pos - tck_avg; + end else begin + tjit_per_rtime = $time - tm_ck_neg - tck_avg; + end + if (dll_locked && (abs_value(tjit_per_rtime) > TJIT_PER)) begin + if ((tm_ck_pos - tm_cke_cmd < TCKSRE) || (ck_cntr - ck_cke_cmd < TCKSRE_TCK)) + $display ("%m: at time %t ERROR: tCKSRE violation during Self Refresh or Precharge Power Down Entry", $time); + if (odt_state) begin + $display ("%m: at time %t ERROR: Clock Frequency Change Failure. ODT must be off prior to Clock Frequency Change.", $time); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: Clock Frequency Change detected. DLL Reset is Required.", $time); + tm_freq_change <= $time; + ck_freq_change <= ck_cntr; + dll_locked = 0; + end + end + end + + if (diff_ck) begin + // check setup of command signals + if ($time > TIS) begin + if ($time - tm_cke < TIS) + $display ("%m: at time %t ERROR: tIS violation on CKE by %t", $time, tm_cke + TIS - $time); + if (cke_in) begin + for (i=0; i<23; i=i+1) begin + if ($time - tm_cmd_addr[i] < TIS) + $display ("%m: at time %t ERROR: tIS violation on %s by %t", $time, cmd_addr_string[i], tm_cmd_addr[i] + TIS - $time); + end + end + end + + // update current state + if (dll_locked) begin + if (mr_chk == 0) begin + mr_chk = 1; + end else if (init_mode_reg[0] && (mr_chk == 1)) begin + // check CL value against the clock frequency + // check WR value against the clock frequency + if (ceil(write_recovery*tck_avg) < TWR) + $display ("%m: at time %t ERROR: Write Recovery = %d is illegal @tCK(avg) = %f", $time, write_recovery, tck_avg); + // check the CWL value against the clock frequency + if (check_strict_timing) begin + case (cas_write_latency) + 5 : if (tck_avg < 2500.0) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 6 : if ((tck_avg < 1875.0) || (tck_avg >= 2500.0)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 7 : if ((tck_avg < 1500.0) || (tck_avg >= 1875.0)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 8 : if ((tck_avg < 1250.0) || (tck_avg >= 1500.0)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 9 : if ((tck_avg < 15e3/14) || (tck_avg >= 1250.0)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 10: if ((tck_avg < 937.5) || (tck_avg >= 15e3/14)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + default : $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + endcase + // check the CL value against the clock frequency + if (!valid_cl(cas_latency, cas_write_latency)) + $display ("%m: at time %t ERROR: CAS Latency = %d is not valid when CAS Write Latency = %d", $time, cas_latency, cas_write_latency); + end + mr_chk = 2; + end + end else if (!in_self_refresh) begin + mr_chk = 0; + if (ck_cntr - ck_dll_reset == TDLLK) begin + dll_locked = 1; + end + end + + if (|auto_precharge_bank) begin + for (i=0; i<`BANKS; i=i+1) begin + // Write with Auto Precharge Calculation + // 1. Meet minimum tRAS requirement + // 2. Write Latency PLUS BL/2 cycles PLUS WR after Write command + if (write_precharge_bank[i]) begin + if ($time - tm_bank_activate[i] >= TRAS_MIN) begin + if (ck_cntr - ck_bank_write[i] >= write_latency + burst_length/2 + write_recovery) begin + if (DEBUG) $display ("%m: at time %t INFO: Auto Precharge bank %d", $time, i); + write_precharge_bank[i] = 0; + active_bank[i] = 0; + auto_precharge_bank[i] = 0; + tm_bank_precharge[i] = $time; + tm_precharge = $time; + ck_precharge = ck_cntr; + end + end + end + // Read with Auto Precharge Calculation + // 1. Meet minimum tRAS requirement + // 2. Additive Latency plus 4 cycles after Read command + // 3. tRTP after the last 8-bit prefetch + if (read_precharge_bank[i]) begin + if (($time - tm_bank_activate[i] >= TRAS_MIN) && (ck_cntr - ck_bank_read[i] >= additive_latency + TRTP_TCK)) begin + read_precharge_bank[i] = 0; + // In case the internal precharge is pushed out by tRTP, tRP starts at the point where + // the internal precharge happens (not at the next rising clock edge after this event). + if ($time - tm_bank_read_end[i] < TRTP) begin + if (DEBUG) $display ("%m: at time %t INFO: Auto Precharge bank %d", tm_bank_read_end[i] + TRTP, i); + active_bank[i] <= #(tm_bank_read_end[i] + TRTP - $time) 0; + auto_precharge_bank[i] <= #(tm_bank_read_end[i] + TRTP - $time) 0; + tm_bank_precharge[i] <= #(tm_bank_read_end[i] + TRTP - $time) tm_bank_read_end[i] + TRTP; + tm_precharge <= #(tm_bank_read_end[i] + TRTP - $time) tm_bank_read_end[i] + TRTP; + ck_precharge = ck_cntr; + end else begin + if (DEBUG) $display ("%m: at time %t INFO: Auto Precharge bank %d", $time, i); + active_bank[i] = 0; + auto_precharge_bank[i] = 0; + tm_bank_precharge[i] = $time; + tm_precharge = $time; + ck_precharge = ck_cntr; + end + end + end + end + end + + + // respond to incoming command + if (cke_in ^ prev_cke) begin + tm_cke_cmd <= $time; + ck_cke_cmd <= ck_cntr; + end + + + cmd_task(prev_cke, cke_in, cmd_n_in, ba_in, addr_in); + if ((cmd_n_in == WRITE) || (cmd_n_in == READ)) begin + al_pipeline[2*additive_latency] = 1'b1; + end + if (al_pipeline[0]) begin + // check tRCD after additive latency + if ((rd_pipeline[2*cas_latency - 1]) && ($time - tm_bank_activate[ba_pipeline[2*cas_latency - 1]] < TRCD)) + $display ("%m: at time %t ERROR: tRCD violation during %s", $time, cmd_string[READ]); + if ((wr_pipeline[2*cas_write_latency + 1]) && ($time - tm_bank_activate[ba_pipeline[2*cas_write_latency + 1]] < TRCD)) + $display ("%m: at time %t ERROR: tRCD violation during %s", $time, cmd_string[WRITE]); + // check tWTR after additive latency + if (rd_pipeline[2*cas_latency - 1]) begin //{ + if (truebl4) begin //{ + i = ba_pipeline[2*cas_latency - 1]; + if ($time - tm_group_write_end[i[1]] < TWTR) + $display ("%m: at time %t ERROR: tWTR violation during %s", $time, cmd_string[READ]); + if ($time - tm_write_end < TWTR_DG) + $display ("%m: at time %t ERROR: tWTR_DG violation during %s", $time, cmd_string[READ]); + end else begin + if ($time - tm_write_end < TWTR) + $display ("%m: at time %t ERROR: tWTR violation during %s", $time, cmd_string[READ]); + end + end + end + if (rd_pipeline) begin + if (rd_pipeline[2*cas_latency - 1]) begin + tm_bank_read_end[ba_pipeline[2*cas_latency - 1]] <= $time; + end + end + for (i=0; i<`BANKS; i=i+1) begin + if ((ck_cntr - ck_bank_write[i] > write_latency) && (ck_cntr - ck_bank_write[i] <= write_latency + burst_length/2)) begin + tm_bank_write_end[i] <= $time; + tm_group_write_end[i[1]] <= $time; + tm_write_end <= $time; + end + end + + // clk pin is disabled during self refresh + if (!in_self_refresh && tm_ck_pos ) begin + tjit_cc_time = $time - tm_ck_pos - tck_i; + tck_i = $time - tm_ck_pos; + tck_avg = tck_avg - tck_sample[ck_cntr%PERTCKAVG]/$itor(PERTCKAVG); + tck_avg = tck_avg + tck_i/$itor(PERTCKAVG); + tck_sample[ck_cntr%PERTCKAVG] = tck_i; + tjit_per_rtime = tck_i - tck_avg; + + if (dll_locked && check_strict_timing) begin + // check accumulated error + terr_nper_rtime = 0; + for (i=0; i<12; i=i+1) begin + terr_nper_rtime = terr_nper_rtime + tck_sample[i] - tck_avg; + terr_nper_rtime = abs_value(terr_nper_rtime); + case (i) + 0 :; + 1 : if (terr_nper_rtime - TERR_2PER >= 1.0) $display ("%m: at time %t ERROR: tERR(2per) violation by %f ps.", $time, terr_nper_rtime - TERR_2PER); + 2 : if (terr_nper_rtime - TERR_3PER >= 1.0) $display ("%m: at time %t ERROR: tERR(3per) violation by %f ps.", $time, terr_nper_rtime - TERR_3PER); + 3 : if (terr_nper_rtime - TERR_4PER >= 1.0) $display ("%m: at time %t ERROR: tERR(4per) violation by %f ps.", $time, terr_nper_rtime - TERR_4PER); + 4 : if (terr_nper_rtime - TERR_5PER >= 1.0) $display ("%m: at time %t ERROR: tERR(5per) violation by %f ps.", $time, terr_nper_rtime - TERR_5PER); + 5 : if (terr_nper_rtime - TERR_6PER >= 1.0) $display ("%m: at time %t ERROR: tERR(6per) violation by %f ps.", $time, terr_nper_rtime - TERR_6PER); + 6 : if (terr_nper_rtime - TERR_7PER >= 1.0) $display ("%m: at time %t ERROR: tERR(7per) violation by %f ps.", $time, terr_nper_rtime - TERR_7PER); + 7 : if (terr_nper_rtime - TERR_8PER >= 1.0) $display ("%m: at time %t ERROR: tERR(8per) violation by %f ps.", $time, terr_nper_rtime - TERR_8PER); + 8 : if (terr_nper_rtime - TERR_9PER >= 1.0) $display ("%m: at time %t ERROR: tERR(9per) violation by %f ps.", $time, terr_nper_rtime - TERR_9PER); + 9 : if (terr_nper_rtime - TERR_10PER >= 1.0) $display ("%m: at time %t ERROR: tERR(10per) violation by %f ps.", $time, terr_nper_rtime - TERR_10PER); + 10 : if (terr_nper_rtime - TERR_11PER >= 1.0) $display ("%m: at time %t ERROR: tERR(11per) violation by %f ps.", $time, terr_nper_rtime - TERR_11PER); + 11 : if (terr_nper_rtime - TERR_12PER >= 1.0) $display ("%m: at time %t ERROR: tERR(12per) violation by %f ps.", $time, terr_nper_rtime - TERR_12PER); + endcase + end + + // check tCK min/max/jitter + if (abs_value(tjit_per_rtime) - TJIT_PER >= 1.0) + $display ("%m: at time %t ERROR: tJIT(per) violation by %f ps.", $time, abs_value(tjit_per_rtime) - TJIT_PER); + if (abs_value(tjit_cc_time) - TJIT_CC >= 1.0) + $display ("%m: at time %t ERROR: tJIT(cc) violation by %f ps.", $time, abs_value(tjit_cc_time) - TJIT_CC); + if (TCK_MIN - tck_avg >= 1.0) + $display ("%m: at time %t ERROR: tCK(avg) minimum violation by %f ps.", $time, TCK_MIN - tck_avg); + if (tck_avg - TCK_MAX >= 1.0) + $display ("%m: at time %t ERROR: tCK(avg) maximum violation by %f ps.", $time, tck_avg - TCK_MAX); + + // check tCL + if (tm_ck_neg - $time < TCL_ABS_MIN*tck_avg) + $display ("%m: at time %t ERROR: tCL(abs) minimum violation on CLK by %t", $time, TCL_ABS_MIN*tck_avg - tm_ck_neg + $time); + if (tcl_avg < TCL_AVG_MIN*tck_avg) + $display ("%m: at time %t ERROR: tCL(avg) minimum violation on CLK by %t", $time, TCL_AVG_MIN*tck_avg - tcl_avg); + if (tcl_avg > TCL_AVG_MAX*tck_avg) + $display ("%m: at time %t ERROR: tCL(avg) maximum violation on CLK by %t", $time, tcl_avg - TCL_AVG_MAX*tck_avg); + end + + // calculate the tch avg jitter + tch_avg = tch_avg - tch_sample[ck_cntr%PERTCKAVG]/$itor(PERTCKAVG); + tch_avg = tch_avg + tch_i/$itor(PERTCKAVG); + tch_sample[ck_cntr%PERTCKAVG] = tch_i; + tjit_ch_rtime = tch_i - tch_avg; + duty_cycle = $rtoi(tch_avg*100/tck_avg); + + // update timers/counters + tcl_i <= $time - tm_ck_neg; + end + + prev_odt <= odt_in; + // update timers/counters + ck_cntr <= ck_cntr + 1; + tm_ck_pos = $time; + end else begin + // clk pin is disabled during self refresh + if (!in_self_refresh) begin + if (dll_locked && check_strict_timing) begin + if ($time - tm_ck_pos < TCH_ABS_MIN*tck_avg) + $display ("%m: at time %t ERROR: tCH(abs) minimum violation on CLK by %t", $time, TCH_ABS_MIN*tck_avg - $time + tm_ck_pos); + if (tch_avg < TCH_AVG_MIN*tck_avg) + $display ("%m: at time %t ERROR: tCH(avg) minimum violation on CLK by %t", $time, TCH_AVG_MIN*tck_avg - tch_avg); + if (tch_avg > TCH_AVG_MAX*tck_avg) + $display ("%m: at time %t ERROR: tCH(avg) maximum violation on CLK by %t", $time, tch_avg - TCH_AVG_MAX*tck_avg); + end + + // calculate the tcl avg jitter + tcl_avg = tcl_avg - tcl_sample[ck_cntr%PERTCKAVG]/$itor(PERTCKAVG); + tcl_avg = tcl_avg + tcl_i/$itor(PERTCKAVG); + tcl_sample[ck_cntr%PERTCKAVG] = tcl_i; + + // update timers/counters + tch_i <= $time - tm_ck_pos; + end + tm_ck_neg = $time; + end + + // on die termination + if (odt_en || dyn_odt_en) begin + // odt pin is disabled during self refresh + if (!in_self_refresh && diff_ck) begin + if ($time - tm_odt < TIS) + $display ("%m: at time %t ERROR: tIS violation on ODT by %t", $time, tm_odt + TIS - $time); + if (prev_odt ^ odt_in) begin + if (!dll_locked) + $display ("%m: at time %t WARNING: tDLLK violation during ODT transition.", $time); + if (($time - tm_load_mode < TMOD) || (ck_cntr - ck_load_mode < TMOD_TCK)) + $display ("%m: at time %t ERROR: tMOD violation during ODT transition", $time); + if (ck_cntr - ck_zqinit < TZQINIT) + $display ("%m: at time %t ERROR: TZQinit violation during ODT transition", $time); + if (ck_cntr - ck_zqoper < TZQOPER) + $display ("%m: at time %t ERROR: TZQoper violation during ODT transition", $time); + if (ck_cntr - ck_zqcs < TZQCS) + $display ("%m: at time %t ERROR: tZQcs violation during ODT transition", $time); + // if (($time - tm_slow_exit_pd < TXPDLL) || (ck_cntr - ck_slow_exit_pd < TXPDLL_TCK)) + // $display ("%m: at time %t ERROR: tXPDLL violation during ODT transition", $time); + if (ck_cntr - ck_self_refresh < TXSDLL) + $display ("%m: at time %t ERROR: tXSDLL violation during ODT transition", $time); + if (in_self_refresh) + $display ("%m: at time %t ERROR: Illegal ODT transition during Self Refresh.", $time); + if (!odt_in && (ck_cntr - ck_odt < ODTH4)) + $display ("%m: at time %t ERROR: ODTH4 violation during ODT transition", $time); + if (!odt_in && (ck_cntr - ck_odth8 < ODTH8)) + $display ("%m: at time %t ERROR: ODTH8 violation during ODT transition", $time); + if (($time - tm_slow_exit_pd < TXPDLL) || (ck_cntr - ck_slow_exit_pd < TXPDLL_TCK)) + $display ("%m: at time %t WARNING: tXPDLL during ODT transition. Synchronous or asynchronous change in termination resistance is possible.", $time); + + // async ODT mode applies: + // 1.) during precharge power down with DLL off + // 2.) if tANPD has not been satisfied + // 3.) until tXPDLL has been satisfied + if ((in_power_down && low_power && (active_bank == 0)) || ($time - tm_slow_exit_pd < TXPDLL) || (ck_cntr - ck_slow_exit_pd < TXPDLL_TCK)) begin + odt_state = odt_in; + if (DEBUG && odt_en) $display ("%m: at time %t INFO: Async On Die Termination Rtt_NOM = %d Ohm", $time, {32{odt_state}} & get_rtt_nom(odt_rtt_nom)); + if (odt_state) begin + odt_state_dly <= #(TAONPD) odt_state; + end else begin + odt_state_dly <= #(TAOFPD) odt_state; + end + // sync ODT mode applies: + // 1.) during normal operation + // 2.) during active power down + // 3.) during precharge power down with DLL on + end else begin + odt_pipeline[2*(write_latency - 2)] = 1'b1; // ODTLon, ODTLoff + end + ck_odt <= ck_cntr; + end + end + if (odt_pipeline[0]) begin + odt_state = ~odt_state; + if (DEBUG && odt_en) $display ("%m: at time %t INFO: Sync On Die Termination Rtt_NOM = %d Ohm", $time, {32{odt_state}} & get_rtt_nom(odt_rtt_nom)); + if (odt_state) begin + odt_state_dly <= #(TAON) odt_state; + end else begin + odt_state_dly <= #(TAOF*tck_avg) odt_state; + end + end + if (rd_pipeline[RDQSEN_PRE]) begin + odt_cntr = 1 + RDQSEN_PRE + bl_pipeline[RDQSEN_PRE] + RDQSEN_PST - 1; + end + if (odt_cntr > 0) begin + if ((get_rtt_nom(odt_rtt_nom) > 0) && odt_state) begin + $display ("%m: at time %t ERROR: On Die Termination must be OFF during Read data transfer.", $time); + end + odt_cntr = odt_cntr - 1; + end + if (dyn_odt_en && ( odt_state || feature_odt_hi) ) begin + if (DEBUG && (dyn_odt_state ^ dyn_odt_pipeline[0])) + $display ("%m: at time %t INFO: Sync On Die Termination Rtt_WR = %d Ohm", $time, {32{dyn_odt_pipeline[0]}} & get_rtt_wr(odt_rtt_wr)); + dyn_odt_state = dyn_odt_pipeline[0]; + end + dyn_odt_state_dly <= #(TADC*tck_avg) dyn_odt_state; + end + + if (cke_in && write_levelization) begin + for (i=0; i>1; + wr_pipeline = wr_pipeline>>1; + rd_pipeline = rd_pipeline>>1; + for (i=0; i<`MAX_PIPE; i=i+1) begin + bl_pipeline[i] = bl_pipeline[i+1]; + ba_pipeline[i] = ba_pipeline[i+1]; + row_pipeline[i] = row_pipeline[i+1]; + col_pipeline[i] = col_pipeline[i+1]; + end + end + if (|odt_pipeline || |dyn_odt_pipeline) begin + odt_pipeline = odt_pipeline>>1; + dyn_odt_pipeline = dyn_odt_pipeline>>1; + end + end + end + + // receiver(s) + task dqs_even_receiver; + input [4:0] i; + reg [127:0] bit_mask; + begin + bit_mask = {`DQ_PER_DQS{1'b1}}<<(i*`DQ_PER_DQS); + if (dqs_even[i]) begin + if (tdqs_en) begin // tdqs disables dm + dm_in_pos[i] = 1'b0; + end else begin + dm_in_pos[i] = dm_in[i]; + end + dq_in_pos = (dq_in & bit_mask) | (dq_in_pos & ~bit_mask); + end + end + endtask + + always @(posedge dqs_even[ 0]) dqs_even_receiver( 0); + always @(posedge dqs_even[ 1]) dqs_even_receiver( 1); + always @(posedge dqs_even[ 2]) dqs_even_receiver( 2); + always @(posedge dqs_even[ 3]) dqs_even_receiver( 3); + always @(posedge dqs_even[ 4]) dqs_even_receiver( 4); + always @(posedge dqs_even[ 5]) dqs_even_receiver( 5); + always @(posedge dqs_even[ 6]) dqs_even_receiver( 6); + always @(posedge dqs_even[ 7]) dqs_even_receiver( 7); + always @(posedge dqs_even[ 8]) dqs_even_receiver( 8); + always @(posedge dqs_even[ 9]) dqs_even_receiver( 9); + always @(posedge dqs_even[10]) dqs_even_receiver(10); + always @(posedge dqs_even[11]) dqs_even_receiver(11); + always @(posedge dqs_even[12]) dqs_even_receiver(12); + always @(posedge dqs_even[13]) dqs_even_receiver(13); + always @(posedge dqs_even[14]) dqs_even_receiver(14); + always @(posedge dqs_even[15]) dqs_even_receiver(15); + + task dqs_odd_receiver; + input [4:0] i; + reg [127:0] bit_mask; + begin + bit_mask = {`DQ_PER_DQS{1'b1}}<<(i*`DQ_PER_DQS); + if (dqs_odd[i]) begin + if (tdqs_en) begin // tdqs disables dm + dm_in_neg[i] = 1'b0; + end else begin + dm_in_neg[i] = dm_in[i]; + end + dq_in_neg = (dq_in & bit_mask) | (dq_in_neg & ~bit_mask); + end + end + endtask + + always @(posedge dqs_odd[ 0]) dqs_odd_receiver( 0); + always @(posedge dqs_odd[ 1]) dqs_odd_receiver( 1); + always @(posedge dqs_odd[ 2]) dqs_odd_receiver( 2); + always @(posedge dqs_odd[ 3]) dqs_odd_receiver( 3); + always @(posedge dqs_odd[ 4]) dqs_odd_receiver( 4); + always @(posedge dqs_odd[ 5]) dqs_odd_receiver( 5); + always @(posedge dqs_odd[ 6]) dqs_odd_receiver( 6); + always @(posedge dqs_odd[ 7]) dqs_odd_receiver( 7); + always @(posedge dqs_odd[ 8]) dqs_odd_receiver( 8); + always @(posedge dqs_odd[ 9]) dqs_odd_receiver( 9); + always @(posedge dqs_odd[10]) dqs_odd_receiver(10); + always @(posedge dqs_odd[11]) dqs_odd_receiver(11); + always @(posedge dqs_odd[12]) dqs_odd_receiver(12); + always @(posedge dqs_odd[13]) dqs_odd_receiver(13); + always @(posedge dqs_odd[14]) dqs_odd_receiver(14); + always @(posedge dqs_odd[15]) dqs_odd_receiver(15); + + // Processes to check hold and pulse width of control signals + always @(posedge rst_n_in) begin + if ($time > 100000) begin + if (tm_rst_n + 100000 > $time) + $display ("%m: at time %t ERROR: RST_N pulse width violation by %t", $time, tm_rst_n + 100000 - $time); + end + tm_rst_n = $time; + end + always @(cke_in) begin + if (rst_n_in) begin + if ($time > TIH) begin + if ($time - tm_ck_pos < TIH) + $display ("%m: at time %t ERROR: tIH violation on CKE by %t", $time, tm_ck_pos + TIH - $time); + end + if ($time - tm_cke < TIPW) + $display ("%m: at time %t ERROR: tIPW violation on CKE by %t", $time, tm_cke + TIPW - $time); + end + tm_cke = $time; + end + always @(odt_in) begin + if (rst_n_in && odt_en && !in_self_refresh) begin + if ($time - tm_ck_pos < TIH) + $display ("%m: at time %t ERROR: tIH violation on ODT by %t", $time, tm_ck_pos + TIH - $time); + if ($time - tm_odt < TIPW) + $display ("%m: at time %t ERROR: tIPW violation on ODT by %t", $time, tm_odt + TIPW - $time); + end + tm_odt = $time; + end + + task cmd_addr_timing_check; + input i; + reg [4:0] i; + begin + if (rst_n_in && prev_cke) begin + if ((i == 0) && ($time - tm_ck_pos < TIH)) // always check tIH for CS# + $display ("%m: at time %t ERROR: tIH violation on %s by %t", $time, cmd_addr_string[i], tm_ck_pos + TIH - $time); + if ((i > 0) && (cs_n_in == 0) &&($time - tm_ck_pos < TIH)) // Only check tIH for cmd_addr if CS# is low + $display ("%m: at time %t ERROR: tIH violation on %s by %t", $time, cmd_addr_string[i], tm_ck_pos + TIH - $time); + if ((i == 0) && ($time - tm_cmd_addr[i] < TIPW)) // always check tIPW for CS# + $display ("%m: at time %t ERROR: tIPW violation on %s by %t", $time, cmd_addr_string[i], tm_cmd_addr[i] + TIPW - $time); + if ((i > 0) && (cs_n_in == 0) && ($time - tm_cmd_addr[i] < TIPW)) + $display ("%m: at time %t ERROR: tIPW violation on %s by %t", $time, cmd_addr_string[i], tm_cmd_addr[i] + TIPW - $time); + end + tm_cmd_addr[i] = $time; + end + endtask + + always @(cs_n_in ) cmd_addr_timing_check( 0); + always @(ras_n_in ) cmd_addr_timing_check( 1); + always @(cas_n_in ) cmd_addr_timing_check( 2); + always @(we_n_in ) cmd_addr_timing_check( 3); + always @(ba_in [ 0]) cmd_addr_timing_check( 4); + always @(ba_in [ 1]) cmd_addr_timing_check( 5); + always @(ba_in [ 2]) cmd_addr_timing_check( 6); + always @(addr_in[ 0]) cmd_addr_timing_check( 7); + always @(addr_in[ 1]) cmd_addr_timing_check( 8); + always @(addr_in[ 2]) cmd_addr_timing_check( 9); + always @(addr_in[ 3]) cmd_addr_timing_check(10); + always @(addr_in[ 4]) cmd_addr_timing_check(11); + always @(addr_in[ 5]) cmd_addr_timing_check(12); + always @(addr_in[ 6]) cmd_addr_timing_check(13); + always @(addr_in[ 7]) cmd_addr_timing_check(14); + always @(addr_in[ 8]) cmd_addr_timing_check(15); + always @(addr_in[ 9]) cmd_addr_timing_check(16); + always @(addr_in[10]) cmd_addr_timing_check(17); + always @(addr_in[11]) cmd_addr_timing_check(18); + always @(addr_in[12]) cmd_addr_timing_check(19); + always @(addr_in[13]) cmd_addr_timing_check(20); + always @(addr_in[14]) cmd_addr_timing_check(21); + always @(addr_in[15]) cmd_addr_timing_check(22); + always @(addr_in[16]) cmd_addr_timing_check(23); + + // Processes to check setup and hold of data signals + task dm_timing_check; + input i; + reg [4:0] i; + begin + if (dqs_in_valid) begin + if ($time - tm_dqs[i] < TDH) + $display ("%m: at time %t ERROR: tDH violation on DM bit %d by %t", $time, i, tm_dqs[i] + TDH - $time); + if (check_dm_tdipw[i]) begin + if ($time - tm_dm[i] < TDIPW) + $display ("%m: at time %t ERROR: tDIPW violation on DM bit %d by %t", $time, i, tm_dm[i] + TDIPW - $time); + end + end + check_dm_tdipw[i] <= 1'b0; + tm_dm[i] = $time; + end + endtask + + always @(dm_in[ 0]) dm_timing_check( 0); + always @(dm_in[ 1]) dm_timing_check( 1); + always @(dm_in[ 2]) dm_timing_check( 2); + always @(dm_in[ 3]) dm_timing_check( 3); + always @(dm_in[ 4]) dm_timing_check( 4); + always @(dm_in[ 5]) dm_timing_check( 5); + always @(dm_in[ 6]) dm_timing_check( 6); + always @(dm_in[ 7]) dm_timing_check( 7); + always @(dm_in[ 8]) dm_timing_check( 8); + always @(dm_in[ 9]) dm_timing_check( 9); + always @(dm_in[10]) dm_timing_check(10); + always @(dm_in[11]) dm_timing_check(11); + always @(dm_in[12]) dm_timing_check(12); + always @(dm_in[13]) dm_timing_check(13); + always @(dm_in[14]) dm_timing_check(14); + always @(dm_in[15]) dm_timing_check(15); + + always @(dm_in[16]) dm_timing_check(16); + always @(dm_in[17]) dm_timing_check(17); + always @(dm_in[18]) dm_timing_check(18); + always @(dm_in[19]) dm_timing_check(19); + always @(dm_in[20]) dm_timing_check(20); + always @(dm_in[21]) dm_timing_check(21); + always @(dm_in[22]) dm_timing_check(22); + always @(dm_in[23]) dm_timing_check(23); + always @(dm_in[24]) dm_timing_check(24); + always @(dm_in[25]) dm_timing_check(25); + always @(dm_in[26]) dm_timing_check(26); + always @(dm_in[27]) dm_timing_check(27); + always @(dm_in[28]) dm_timing_check(28); + always @(dm_in[29]) dm_timing_check(29); + always @(dm_in[30]) dm_timing_check(30); + always @(dm_in[31]) dm_timing_check(31); + + task dq_timing_check; + input i; + reg [6:0] i; + begin + if (dqs_in_valid) begin + if ($time - tm_dqs[i/(`DQ_PER_DQS)] < TDH) + $display ("%m: at time %t ERROR: tDH violation on DQ bit %d by %t", $time, i, tm_dqs[i/`DQ_PER_DQS] + TDH - $time); + if (check_dq_tdipw[i]) begin + if ($time - tm_dq[i] < TDIPW) + $display ("%m: at time %t ERROR: tDIPW violation on DQ bit %d by %t", $time, i, tm_dq[i] + TDIPW - $time); + end + end + check_dq_tdipw[i] <= 1'b0; + tm_dq[i] = $time; + end + endtask + + always @(dq_in[ 0]) dq_timing_check( 0); + always @(dq_in[ 1]) dq_timing_check( 1); + always @(dq_in[ 2]) dq_timing_check( 2); + always @(dq_in[ 3]) dq_timing_check( 3); + always @(dq_in[ 4]) dq_timing_check( 4); + always @(dq_in[ 5]) dq_timing_check( 5); + always @(dq_in[ 6]) dq_timing_check( 6); + always @(dq_in[ 7]) dq_timing_check( 7); + always @(dq_in[ 8]) dq_timing_check( 8); + always @(dq_in[ 9]) dq_timing_check( 9); + always @(dq_in[10]) dq_timing_check(10); + always @(dq_in[11]) dq_timing_check(11); + always @(dq_in[12]) dq_timing_check(12); + always @(dq_in[13]) dq_timing_check(13); + always @(dq_in[14]) dq_timing_check(14); + always @(dq_in[15]) dq_timing_check(15); + always @(dq_in[16]) dq_timing_check(16); + always @(dq_in[17]) dq_timing_check(17); + always @(dq_in[18]) dq_timing_check(18); + always @(dq_in[19]) dq_timing_check(19); + always @(dq_in[20]) dq_timing_check(20); + always @(dq_in[21]) dq_timing_check(21); + always @(dq_in[22]) dq_timing_check(22); + always @(dq_in[23]) dq_timing_check(23); + always @(dq_in[24]) dq_timing_check(24); + always @(dq_in[25]) dq_timing_check(25); + always @(dq_in[26]) dq_timing_check(26); + always @(dq_in[27]) dq_timing_check(27); + always @(dq_in[28]) dq_timing_check(28); + always @(dq_in[29]) dq_timing_check(29); + always @(dq_in[30]) dq_timing_check(30); + always @(dq_in[31]) dq_timing_check(31); + always @(dq_in[32]) dq_timing_check(32); + always @(dq_in[33]) dq_timing_check(33); + always @(dq_in[34]) dq_timing_check(34); + always @(dq_in[35]) dq_timing_check(35); + always @(dq_in[36]) dq_timing_check(36); + always @(dq_in[37]) dq_timing_check(37); + always @(dq_in[38]) dq_timing_check(38); + always @(dq_in[39]) dq_timing_check(39); + always @(dq_in[40]) dq_timing_check(40); + always @(dq_in[41]) dq_timing_check(41); + always @(dq_in[42]) dq_timing_check(42); + always @(dq_in[43]) dq_timing_check(43); + always @(dq_in[44]) dq_timing_check(44); + always @(dq_in[45]) dq_timing_check(45); + always @(dq_in[46]) dq_timing_check(46); + always @(dq_in[47]) dq_timing_check(47); + always @(dq_in[48]) dq_timing_check(48); + always @(dq_in[49]) dq_timing_check(49); + always @(dq_in[50]) dq_timing_check(50); + always @(dq_in[51]) dq_timing_check(51); + always @(dq_in[52]) dq_timing_check(52); + always @(dq_in[53]) dq_timing_check(53); + always @(dq_in[54]) dq_timing_check(54); + always @(dq_in[55]) dq_timing_check(55); + always @(dq_in[56]) dq_timing_check(56); + always @(dq_in[57]) dq_timing_check(57); + always @(dq_in[58]) dq_timing_check(58); + always @(dq_in[59]) dq_timing_check(59); + always @(dq_in[60]) dq_timing_check(60); + always @(dq_in[61]) dq_timing_check(61); + always @(dq_in[62]) dq_timing_check(62); + always @(dq_in[63]) dq_timing_check(63); + + always @(dq_in[64]) dq_timing_check(64); + always @(dq_in[65]) dq_timing_check(65); + always @(dq_in[66]) dq_timing_check(66); + always @(dq_in[67]) dq_timing_check(67); + always @(dq_in[68]) dq_timing_check(68); + always @(dq_in[69]) dq_timing_check(69); + always @(dq_in[70]) dq_timing_check(70); + always @(dq_in[71]) dq_timing_check(71); + always @(dq_in[72]) dq_timing_check(72); + always @(dq_in[73]) dq_timing_check(73); + always @(dq_in[74]) dq_timing_check(74); + always @(dq_in[75]) dq_timing_check(75); + always @(dq_in[76]) dq_timing_check(76); + always @(dq_in[77]) dq_timing_check(77); + always @(dq_in[78]) dq_timing_check(78); + always @(dq_in[79]) dq_timing_check(79); + always @(dq_in[80]) dq_timing_check(80); + always @(dq_in[81]) dq_timing_check(81); + always @(dq_in[82]) dq_timing_check(82); + always @(dq_in[83]) dq_timing_check(83); + always @(dq_in[84]) dq_timing_check(84); + always @(dq_in[85]) dq_timing_check(85); + always @(dq_in[86]) dq_timing_check(86); + always @(dq_in[87]) dq_timing_check(87); + always @(dq_in[88]) dq_timing_check(88); + always @(dq_in[89]) dq_timing_check(89); + always @(dq_in[90]) dq_timing_check(90); + always @(dq_in[91]) dq_timing_check(91); + always @(dq_in[92]) dq_timing_check(92); + always @(dq_in[93]) dq_timing_check(93); + always @(dq_in[94]) dq_timing_check(94); + always @(dq_in[95]) dq_timing_check(95); + always @(dq_in[96]) dq_timing_check(96); + always @(dq_in[97]) dq_timing_check(97); + always @(dq_in[98]) dq_timing_check(98); + always @(dq_in[99]) dq_timing_check(99); + always @(dq_in[100]) dq_timing_check(100); + always @(dq_in[101]) dq_timing_check(101); + always @(dq_in[102]) dq_timing_check(102); + always @(dq_in[103]) dq_timing_check(103); + always @(dq_in[104]) dq_timing_check(104); + always @(dq_in[105]) dq_timing_check(105); + always @(dq_in[106]) dq_timing_check(106); + always @(dq_in[107]) dq_timing_check(107); + always @(dq_in[108]) dq_timing_check(108); + always @(dq_in[109]) dq_timing_check(109); + always @(dq_in[110]) dq_timing_check(110); + always @(dq_in[111]) dq_timing_check(111); + always @(dq_in[112]) dq_timing_check(112); + always @(dq_in[113]) dq_timing_check(113); + always @(dq_in[114]) dq_timing_check(114); + always @(dq_in[115]) dq_timing_check(115); + always @(dq_in[116]) dq_timing_check(116); + always @(dq_in[117]) dq_timing_check(117); + always @(dq_in[118]) dq_timing_check(118); + always @(dq_in[119]) dq_timing_check(119); + always @(dq_in[120]) dq_timing_check(120); + always @(dq_in[121]) dq_timing_check(121); + always @(dq_in[122]) dq_timing_check(122); + always @(dq_in[123]) dq_timing_check(123); + always @(dq_in[124]) dq_timing_check(124); + always @(dq_in[125]) dq_timing_check(125); + always @(dq_in[126]) dq_timing_check(126); + always @(dq_in[127]) dq_timing_check(127); + + task dqs_pos_timing_check; + input i; + reg [5:0] i; + reg [4:0] j; + begin + if (write_levelization && i<32) begin + if (ck_cntr - ck_load_mode < TWLMRD) + $display ("%m: at time %t ERROR: tWLMRD violation on DQS bit %d positive edge.", $time, i); + if (($time - tm_ck_pos < TWLS) || ($time - tm_ck_neg < TWLS)) + $display ("%m: at time %t WARNING: tWLS violation on DQS bit %d positive edge. Indeterminate CK capture is possible.", $time, i); + if (DEBUG) + $display ("%m: at time %t Write Leveling @ DQS ck = %b", $time, diff_ck); + dq_out_en_dly[i*`DQ_PER_DQS] <= #(TWLO) 1'b1; + dq_out_dly[i*`DQ_PER_DQS] <= #(TWLO) diff_ck; +`ifdef WL_ALLDQ + for (j=1; j<`DQ_PER_DQS; j=j+1) begin + dq_out_en_dly[i*`DQ_PER_DQS+j] <= #(TWLO) 1'b1; + dq_out_dly[i*`DQ_PER_DQS+j] <= #(TWLO) diff_ck; + end +`else + for (j=1; j<`DQ_PER_DQS; j=j+1) begin + dq_out_en_dly[i*`DQ_PER_DQS+j] <= #(TWLO + TWLOE) 1'b1; + dq_out_dly[i*`DQ_PER_DQS+j] <= #(TWLO + TWLOE) 1'b0; + end +`endif + end + if (dqs_in_valid && ((wdqs_pos_cntr[i] < wr_burst_length/2) || b2b_write)) begin + if (dqs_in[i] ^ prev_dqs_in[i]) begin + if (dll_locked) begin + if (check_write_preamble[i]) begin + if ($time - tm_dqs_pos[i] < $rtoi(TWPRE*tck_avg)) + $display ("%m: at time %t ERROR: tWPRE violation on %s bit %d", $time, dqs_string[i/32], i%32); + end else if (check_write_postamble[i]) begin + if ($time - tm_dqs_neg[i] < $rtoi(TWPST*tck_avg)) + $display ("%m: at time %t ERROR: tWPST violation on %s bit %d", $time, dqs_string[i/32], i%32); + end else begin + if ($time - tm_dqs_neg[i] < $rtoi(TDQSL*tck_avg)) + $display ("%m: at time %t ERROR: tDQSL violation on %s bit %d", $time, dqs_string[i/32], i%32); + end + end + if ($time - tm_dm[i%32] < TDS) + $display ("%m: at time %t ERROR: tDS violation on DM bit %d by %t", $time, i, tm_dm[i%32] + TDS - $time); + if (!dq_out_en) begin + for (j=0; j<`DQ_PER_DQS; j=j+1) begin + if ($time - tm_dq[(i%32)*`DQ_PER_DQS+j] < TDS) + $display ("%m: at time %t ERROR: tDS violation on DQ bit %d by %t", $time, i*`DQ_PER_DQS+j, tm_dq[(i%32)*`DQ_PER_DQS+j] + TDS - $time); + check_dq_tdipw[(i%32)*`DQ_PER_DQS+j] <= 1'b1; + end + end + if ((wdqs_pos_cntr[i] < wr_burst_length/2) && !b2b_write) begin + wdqs_pos_cntr[i] <= wdqs_pos_cntr[i] + 1; + end else begin + wdqs_pos_cntr[i] <= 1; + end + check_dm_tdipw[i%32] <= 1'b1; + check_write_preamble[i] <= 1'b0; + check_write_postamble[i] <= 1'b0; + check_write_dqs_low[i] <= 1'b0; + tm_dqs[i%32] <= $time; + end else begin + $display ("%m: at time %t ERROR: Invalid latching edge on %s bit %d", $time, dqs_string[i/32], i%32); + end + end + tm_dqss_pos[i] <= $time; + tm_dqs_pos[i] = $time; + prev_dqs_in[i] <= dqs_in[i]; + end + endtask + + always @(posedge dqs_in[ 0]) if ( dqs_in[ 0]) dqs_pos_timing_check( 0); + always @(posedge dqs_in[ 1]) if ( dqs_in[ 1]) dqs_pos_timing_check( 1); + always @(posedge dqs_in[ 2]) if ( dqs_in[ 2]) dqs_pos_timing_check( 2); + always @(posedge dqs_in[ 3]) if ( dqs_in[ 3]) dqs_pos_timing_check( 3); + always @(posedge dqs_in[ 4]) if ( dqs_in[ 4]) dqs_pos_timing_check( 4); + always @(posedge dqs_in[ 5]) if ( dqs_in[ 5]) dqs_pos_timing_check( 5); + always @(posedge dqs_in[ 6]) if ( dqs_in[ 6]) dqs_pos_timing_check( 6); + always @(posedge dqs_in[ 7]) if ( dqs_in[ 7]) dqs_pos_timing_check( 7); + always @(posedge dqs_in[ 8]) if ( dqs_in[ 8]) dqs_pos_timing_check( 8); + always @(posedge dqs_in[ 9]) if ( dqs_in[ 9]) dqs_pos_timing_check( 9); + always @(posedge dqs_in[10]) if ( dqs_in[10]) dqs_pos_timing_check(10); + always @(posedge dqs_in[11]) if ( dqs_in[11]) dqs_pos_timing_check(11); + always @(posedge dqs_in[12]) if ( dqs_in[12]) dqs_pos_timing_check(12); + always @(posedge dqs_in[13]) if ( dqs_in[13]) dqs_pos_timing_check(13); + always @(posedge dqs_in[14]) if ( dqs_in[14]) dqs_pos_timing_check(14); + always @(posedge dqs_in[15]) if ( dqs_in[15]) dqs_pos_timing_check(15); + always @(posedge dqs_in[16]) if ( dqs_in[16]) dqs_pos_timing_check(16); + always @(posedge dqs_in[17]) if ( dqs_in[17]) dqs_pos_timing_check(17); + always @(posedge dqs_in[18]) if ( dqs_in[18]) dqs_pos_timing_check(18); + always @(posedge dqs_in[19]) if ( dqs_in[19]) dqs_pos_timing_check(19); + always @(posedge dqs_in[20]) if ( dqs_in[20]) dqs_pos_timing_check(20); + always @(posedge dqs_in[21]) if ( dqs_in[21]) dqs_pos_timing_check(21); + always @(posedge dqs_in[22]) if ( dqs_in[22]) dqs_pos_timing_check(22); + always @(posedge dqs_in[23]) if ( dqs_in[23]) dqs_pos_timing_check(23); + always @(posedge dqs_in[24]) if ( dqs_in[24]) dqs_pos_timing_check(24); + always @(posedge dqs_in[25]) if ( dqs_in[25]) dqs_pos_timing_check(25); + always @(posedge dqs_in[26]) if ( dqs_in[26]) dqs_pos_timing_check(26); + always @(posedge dqs_in[27]) if ( dqs_in[27]) dqs_pos_timing_check(27); + always @(posedge dqs_in[28]) if ( dqs_in[28]) dqs_pos_timing_check(28); + always @(posedge dqs_in[29]) if ( dqs_in[29]) dqs_pos_timing_check(29); + always @(posedge dqs_in[30]) if ( dqs_in[30]) dqs_pos_timing_check(30); + always @(posedge dqs_in[31]) if ( dqs_in[31]) dqs_pos_timing_check(31); + + always @(negedge dqs_in[32]) if (!dqs_in[32]) dqs_pos_timing_check(32); + always @(negedge dqs_in[33]) if (!dqs_in[33]) dqs_pos_timing_check(33); + always @(negedge dqs_in[34]) if (!dqs_in[34]) dqs_pos_timing_check(34); + always @(negedge dqs_in[35]) if (!dqs_in[35]) dqs_pos_timing_check(35); + always @(negedge dqs_in[36]) if (!dqs_in[36]) dqs_pos_timing_check(36); + always @(negedge dqs_in[37]) if (!dqs_in[37]) dqs_pos_timing_check(37); + always @(negedge dqs_in[38]) if (!dqs_in[38]) dqs_pos_timing_check(38); + always @(negedge dqs_in[39]) if (!dqs_in[39]) dqs_pos_timing_check(39); + always @(negedge dqs_in[40]) if (!dqs_in[40]) dqs_pos_timing_check(40); + always @(negedge dqs_in[41]) if (!dqs_in[41]) dqs_pos_timing_check(41); + always @(negedge dqs_in[42]) if (!dqs_in[42]) dqs_pos_timing_check(42); + always @(negedge dqs_in[43]) if (!dqs_in[43]) dqs_pos_timing_check(43); + always @(negedge dqs_in[44]) if (!dqs_in[44]) dqs_pos_timing_check(44); + always @(negedge dqs_in[45]) if (!dqs_in[45]) dqs_pos_timing_check(45); + always @(negedge dqs_in[46]) if (!dqs_in[46]) dqs_pos_timing_check(46); + always @(negedge dqs_in[47]) if (!dqs_in[47]) dqs_pos_timing_check(47); + always @(negedge dqs_in[48]) if (!dqs_in[48]) dqs_pos_timing_check(48); + always @(negedge dqs_in[49]) if (!dqs_in[49]) dqs_pos_timing_check(49); + always @(negedge dqs_in[50]) if (!dqs_in[50]) dqs_pos_timing_check(50); + always @(negedge dqs_in[51]) if (!dqs_in[51]) dqs_pos_timing_check(51); + always @(negedge dqs_in[52]) if (!dqs_in[52]) dqs_pos_timing_check(52); + always @(negedge dqs_in[53]) if (!dqs_in[53]) dqs_pos_timing_check(53); + always @(negedge dqs_in[54]) if (!dqs_in[54]) dqs_pos_timing_check(54); + always @(negedge dqs_in[55]) if (!dqs_in[55]) dqs_pos_timing_check(55); + always @(negedge dqs_in[56]) if (!dqs_in[56]) dqs_pos_timing_check(56); + always @(negedge dqs_in[57]) if (!dqs_in[57]) dqs_pos_timing_check(57); + always @(negedge dqs_in[58]) if (!dqs_in[58]) dqs_pos_timing_check(58); + always @(negedge dqs_in[59]) if (!dqs_in[59]) dqs_pos_timing_check(59); + always @(negedge dqs_in[60]) if (!dqs_in[60]) dqs_pos_timing_check(60); + always @(negedge dqs_in[61]) if (!dqs_in[61]) dqs_pos_timing_check(61); + always @(negedge dqs_in[62]) if (!dqs_in[62]) dqs_pos_timing_check(62); + always @(negedge dqs_in[63]) if (!dqs_in[63]) dqs_pos_timing_check(63); + + task dqs_neg_timing_check; + input i; + reg [5:0] i; + reg [4:0] j; + begin + if (write_levelization && i<32) begin + if (ck_cntr - ck_load_mode < TWLDQSEN) + $display ("%m: at time %t ERROR: tWLDQSEN violation on DQS bit %d.", $time, i); + if ($time - tm_dqs_pos[i] < $rtoi(TDQSH*tck_avg)) + $display ("%m: at time %t ERROR: tDQSH violation on DQS bit %d by %t", $time, i, tm_dqs_pos[i] + TDQSH*tck_avg - $time); + end + if (dqs_in_valid && (wdqs_pos_cntr[i] > 0) && check_write_dqs_high[i]) begin + if (dqs_in[i] ^ prev_dqs_in[i]) begin + if (dll_locked) begin + if ($time - tm_dqs_pos[i] < $rtoi(TDQSH*tck_avg)) + $display ("%m: at time %t ERROR: tDQSH violation on %s bit %d", $time, dqs_string[i/32], i%32); + if ($time - tm_ck_pos < $rtoi(TDSH*tck_avg)) + $display ("%m: at time %t ERROR: tDSH violation on %s bit %d", $time, dqs_string[i/32], i%32); + end + if ($time - tm_dm[i%32] < TDS) + $display ("%m: at time %t ERROR: tDS violation on DM bit %d by %t", $time, i, tm_dm[i%32] + TDS - $time); + if (!dq_out_en) begin + for (j=0; j<`DQ_PER_DQS; j=j+1) begin + if ($time - tm_dq[(i%32)*`DQ_PER_DQS+j] < TDS) + $display ("%m: at time %t ERROR: tDS violation on DQ bit %d by %t", $time, i*`DQ_PER_DQS+j, tm_dq[(i%32)*`DQ_PER_DQS+j] + TDS - $time); + check_dq_tdipw[(i%32)*`DQ_PER_DQS+j] <= 1'b1; + end + end + check_dm_tdipw[i%32] <= 1'b1; + tm_dqs[i%32] <= $time; + end else begin + $display ("%m: at time %t ERROR: Invalid latching edge on %s bit %d", $time, dqs_string[i/32], i%32); + end + end + check_write_dqs_high[i] <= 1'b0; + tm_dqs_neg[i] = $time; + prev_dqs_in[i] <= dqs_in[i]; + end + endtask + + always @(negedge dqs_in[ 0]) if (!dqs_in[ 0]) dqs_neg_timing_check( 0); + always @(negedge dqs_in[ 1]) if (!dqs_in[ 1]) dqs_neg_timing_check( 1); + always @(negedge dqs_in[ 2]) if (!dqs_in[ 2]) dqs_neg_timing_check( 2); + always @(negedge dqs_in[ 3]) if (!dqs_in[ 3]) dqs_neg_timing_check( 3); + always @(negedge dqs_in[ 4]) if (!dqs_in[ 4]) dqs_neg_timing_check( 4); + always @(negedge dqs_in[ 5]) if (!dqs_in[ 5]) dqs_neg_timing_check( 5); + always @(negedge dqs_in[ 6]) if (!dqs_in[ 6]) dqs_neg_timing_check( 6); + always @(negedge dqs_in[ 7]) if (!dqs_in[ 7]) dqs_neg_timing_check( 7); + always @(negedge dqs_in[ 8]) if (!dqs_in[ 8]) dqs_neg_timing_check( 8); + always @(negedge dqs_in[ 9]) if (!dqs_in[ 9]) dqs_neg_timing_check( 9); + always @(negedge dqs_in[10]) if (!dqs_in[10]) dqs_neg_timing_check(10); + always @(negedge dqs_in[11]) if (!dqs_in[11]) dqs_neg_timing_check(11); + always @(negedge dqs_in[12]) if (!dqs_in[12]) dqs_neg_timing_check(12); + always @(negedge dqs_in[13]) if (!dqs_in[13]) dqs_neg_timing_check(13); + always @(negedge dqs_in[14]) if (!dqs_in[14]) dqs_neg_timing_check(14); + always @(negedge dqs_in[15]) if (!dqs_in[15]) dqs_neg_timing_check(15); + always @(negedge dqs_in[16]) if (!dqs_in[16]) dqs_neg_timing_check(16); + always @(negedge dqs_in[17]) if (!dqs_in[17]) dqs_neg_timing_check(17); + always @(negedge dqs_in[18]) if (!dqs_in[18]) dqs_neg_timing_check(18); + always @(negedge dqs_in[19]) if (!dqs_in[19]) dqs_neg_timing_check(19); + always @(negedge dqs_in[20]) if (!dqs_in[20]) dqs_neg_timing_check(20); + always @(negedge dqs_in[21]) if (!dqs_in[21]) dqs_neg_timing_check(21); + always @(negedge dqs_in[22]) if (!dqs_in[22]) dqs_neg_timing_check(22); + always @(negedge dqs_in[23]) if (!dqs_in[23]) dqs_neg_timing_check(23); + always @(negedge dqs_in[24]) if (!dqs_in[24]) dqs_neg_timing_check(24); + always @(negedge dqs_in[25]) if (!dqs_in[25]) dqs_neg_timing_check(25); + always @(negedge dqs_in[26]) if (!dqs_in[26]) dqs_neg_timing_check(26); + always @(negedge dqs_in[27]) if (!dqs_in[27]) dqs_neg_timing_check(27); + always @(negedge dqs_in[28]) if (!dqs_in[28]) dqs_neg_timing_check(28); + always @(negedge dqs_in[29]) if (!dqs_in[29]) dqs_neg_timing_check(29); + always @(negedge dqs_in[30]) if (!dqs_in[30]) dqs_neg_timing_check(30); + always @(negedge dqs_in[31]) if (!dqs_in[31]) dqs_neg_timing_check(31); + + always @(posedge dqs_in[32]) if ( dqs_in[32]) dqs_neg_timing_check(32); + always @(posedge dqs_in[33]) if ( dqs_in[33]) dqs_neg_timing_check(33); + always @(posedge dqs_in[34]) if ( dqs_in[34]) dqs_neg_timing_check(34); + always @(posedge dqs_in[35]) if ( dqs_in[35]) dqs_neg_timing_check(35); + always @(posedge dqs_in[36]) if ( dqs_in[36]) dqs_neg_timing_check(36); + always @(posedge dqs_in[37]) if ( dqs_in[37]) dqs_neg_timing_check(37); + always @(posedge dqs_in[38]) if ( dqs_in[38]) dqs_neg_timing_check(38); + always @(posedge dqs_in[39]) if ( dqs_in[39]) dqs_neg_timing_check(39); + always @(posedge dqs_in[40]) if ( dqs_in[40]) dqs_neg_timing_check(40); + always @(posedge dqs_in[41]) if ( dqs_in[41]) dqs_neg_timing_check(41); + always @(posedge dqs_in[42]) if ( dqs_in[42]) dqs_neg_timing_check(42); + always @(posedge dqs_in[43]) if ( dqs_in[43]) dqs_neg_timing_check(43); + always @(posedge dqs_in[44]) if ( dqs_in[44]) dqs_neg_timing_check(44); + always @(posedge dqs_in[45]) if ( dqs_in[45]) dqs_neg_timing_check(45); + always @(posedge dqs_in[46]) if ( dqs_in[46]) dqs_neg_timing_check(46); + always @(posedge dqs_in[47]) if ( dqs_in[47]) dqs_neg_timing_check(47); + always @(posedge dqs_in[48]) if ( dqs_in[48]) dqs_neg_timing_check(48); + always @(posedge dqs_in[49]) if ( dqs_in[49]) dqs_neg_timing_check(49); + always @(posedge dqs_in[50]) if ( dqs_in[50]) dqs_neg_timing_check(50); + always @(posedge dqs_in[51]) if ( dqs_in[51]) dqs_neg_timing_check(51); + always @(posedge dqs_in[52]) if ( dqs_in[52]) dqs_neg_timing_check(52); + always @(posedge dqs_in[53]) if ( dqs_in[53]) dqs_neg_timing_check(53); + always @(posedge dqs_in[54]) if ( dqs_in[54]) dqs_neg_timing_check(54); + always @(posedge dqs_in[55]) if ( dqs_in[55]) dqs_neg_timing_check(55); + always @(posedge dqs_in[56]) if ( dqs_in[56]) dqs_neg_timing_check(56); + always @(posedge dqs_in[57]) if ( dqs_in[57]) dqs_neg_timing_check(57); + always @(posedge dqs_in[58]) if ( dqs_in[58]) dqs_neg_timing_check(58); + always @(posedge dqs_in[59]) if ( dqs_in[59]) dqs_neg_timing_check(59); + always @(posedge dqs_in[60]) if ( dqs_in[60]) dqs_neg_timing_check(60); + always @(posedge dqs_in[61]) if ( dqs_in[61]) dqs_neg_timing_check(61); + always @(posedge dqs_in[62]) if ( dqs_in[62]) dqs_neg_timing_check(62); + always @(posedge dqs_in[63]) if ( dqs_in[63]) dqs_neg_timing_check(63); + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ddr3_model_parameters.vh b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ddr3_model_parameters.vh new file mode 100644 index 0000000..44238fe --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ddr3_model_parameters.vh @@ -0,0 +1,3412 @@ +/**************************************************************************************** +* +* Disclaimer This software code and all associated documentation, comments or other +* of Warranty: information (collectively "Software") is provided "AS IS" without +* warranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLY +* DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +* TO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIES +* OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOT +* WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE +* OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE. +* FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE OR +* THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, +* ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USE +* OR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU. IN NO EVENT SHALL MTI, +* ITS AFFILIATED COMPANIES OR THEIR SUPPLIERS BE LIABLE FOR ANY DIRECT, +* INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES (INCLUDING, +* WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, +* OR LOSS OF INFORMATION) ARISING OUT OF YOUR USE OF OR INABILITY TO USE +* THE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +* DAMAGES. Because some jurisdictions prohibit the exclusion or +* limitation of liability for consequential or incidental damages, the +* above limitation may not apply to you. +* +* Copyright 2003 Micron Technology, Inc. All rights reserved. +* +****************************************************************************************/ + + // Parameters current with 1Gb, 2Gb, 4Gb and 8Gb datasheet + + // Timing parameters based on Speed Grade + +`ifdef x8Gb // 8Gb parameters + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 938; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46090; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1071; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48750; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13750; // tRCD ps Active to Read/Write command time + parameter TRP = 13750; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13750; // TAA ps Internal READ command to first data + parameter CL_TIME = 13750; // CL ps Minimum CAS Latency + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333 (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13500; // tRCD ps Active to Read/Write command time + parameter TRP = 13500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13500; // TAA ps Internal READ command to first data + parameter CL_TIME = 13500; // CL ps Minimum CAS Latency + `else + `define sg187E // sg187E is equivalent to the JEDEC DDR3-1066 (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `endif + + parameter TDQSCK_DLLDIS = TDQSCK; // tDQSCK ps for DLLDIS mode, timing not guaranteed + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg187E, sg187, sg25, sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25, sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 14; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + integer TZQCS; // tZQCS tCK ZQ Cal (Short) time + integer TZQINIT = max(512, ceil(640000/TCK_MIN)); // tZQinit tCK ZQ Cal (Long) time + integer TZQOPER = max(256, ceil(320000/TCK_MIN)); // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 4Gb + parameter TRFC_MIN = 260000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70200000; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 270000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 270000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 14; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `define CA14PLUS + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else + `define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 1; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 31913; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5 , 4'd5 }, + {4'd5 , 4'd6 }, + {4'd6 , 4'd7 }, + {4'd6 , 4'd8 }, + {4'd7 , 4'd9 }, + {4'd7 , 4'd10}, + {4'd8 , 4'd11}, + {4'd9 , 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1071.0) ? 9: + 10; // (period >= 938) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + +`elsif x4Gb // 4Gb parameters + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 938; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46130; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1071; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48750; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13750; // tRCD ps Active to Read/Write command time + parameter TRP = 13750; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13750; // TAA ps Internal READ command to first data + parameter CL_TIME = 13750; // CL ps Minimum CAS Latency + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13500; // tRCD ps Active to Read/Write command time + parameter TRP = 13500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13500; // TAA ps Internal READ command to first data + parameter CL_TIME = 13500; // CL ps Minimum CAS Latency + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800D (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else //`define sg25 // sg25 is equivalent to the JEDEC DDR3-800E (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + parameter TDQSCK_DLLDIS = TDQSCK; // tDQSCK ps for DLLDIS mode, timing not guaranteed + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg187E, sg187, sg25, sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25, sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 14; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + integer TZQCS; // tZQCS tCK ZQ Cal (Short) time + integer TZQINIT = max(512, ceil(640000/TCK_MIN)); // tZQinit tCK ZQ Cal (Long) time + integer TZQOPER = max(256, ceil(320000/TCK_MIN)); // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 4Gb + parameter TRFC_MIN = 260000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70200000; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 270000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 270000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else //`define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 1; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 31913; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1071.0) ? 9: + 10; // (period >= 938) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + +`elsif x2Gb // 2Gb parameters + + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 938; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46130; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1071; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48750; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13750; // tRCD ps Active to Read/Write command time + parameter TRP = 13750; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13750; // TAA ps Internal READ command to first data + parameter CL_TIME = 13750; // CL ps Minimum CAS Latency + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13500; // tRCD ps Active to Read/Write command time + parameter TRP = 13500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13500; // TAA ps Internal READ command to first data + parameter CL_TIME = 13500; // CL ps Minimum CAS Latency + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800D (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else //`define sg25 // sg25 is equivalent to the JEDEC DDR3-800E (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + parameter TDQSCK_DLLDIS = TDQSCK; // tDQSCK ps for DLLDIS mode, timing not guaranteed + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg187E, sg187, sg25, sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25, sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 14; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + integer TZQCS; // tZQCS tCK ZQ Cal (Short) time + integer TZQINIT = max(512, ceil(640000/TCK_MIN)); // tZQinit tCK ZQ Cal (Long) time + integer TZQOPER = max(256, ceil(320000/TCK_MIN)); // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 2Gb + parameter TRFC_MIN = 160000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70200000; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 170000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 170000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else //`define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + `define DUAL_RANK // also define DUAL_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 1; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 31913; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5 , 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1071.0) ? 9: + 10; // (period >= 938) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + + +`else //`define x1Gb // 1Gb parts + + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 938; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46130; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1071; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48750; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13750; // tRCD ps Active to Read/Write command time + parameter TRP = 13750; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13750; // TAA ps Internal READ command to first data + parameter CL_TIME = 13750; // CL ps Minimum CAS Latency + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13500; // tRCD ps Active to Read/Write command time + parameter TRP = 13500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13500; // TAA ps Internal READ command to first data + parameter CL_TIME = 13500; // CL ps Minimum CAS Latency + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800E (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else //`define sg25 // sg25 is equivalent to the JEDEC DDR3-800 (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + parameter TDQSCK_DLLDIS = TDQSCK; // tDQSCK ps for DLLDIS mode, timing not guaranteed + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg25 + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25 + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 14; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + integer TZQCS; // tZQCS tCK ZQ Cal (Short) time + integer TZQINIT = max(512, ceil(640000/TCK_MIN)); // tZQinit tCK ZQ Cal (Long) time + integer TZQOPER = max(256, ceil(320000/TCK_MIN)); // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 1Gb + parameter TRFC_MIN = 110000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70200000; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 120000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 120000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else //`define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 13; // MAX Address Bits + parameter ROW_BITS = 13; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + `define DUAL_RANK // also define DUAL_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 1; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 31913; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1071.0) ? 9: + 10; // (period >= 938) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + +`endif diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ies_run.sh b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ies_run.sh new file mode 100755 index 0000000..5e6926d --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/ies_run.sh @@ -0,0 +1,102 @@ +############################################################################### +## (c) Copyright 2008 2009 Xilinx, Inc. All rights reserved. +## +## This file contains confidential and proprietary information +## of Xilinx, Inc. and is protected under U.S. and +## international copyright and other intellectual property +## laws. +## +## DISCLAIMER +## This disclaimer is not a license and does not grant any +## rights to the materials distributed herewith. Except as +## otherwise provided in a valid license issued to you by +## Xilinx, and to the maximum extent permitted by applicable +## law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +## WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +## AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +## BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +## INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +## (2) Xilinx shall not be liable (whether in contract or tort, +## including negligence, or under any other theory of +## liability) for any loss or damage of any kind or nature +## related to, arising under or in connection with these +## materials, including for any direct, or any indirect, +## special, incidental, or consequential loss or damage +## (including loss of data, profits, goodwill, or any type of +## loss or damage suffered as a result of any action brought +## by a third party) even if such damage or loss was +## reasonably foreseeable or Xilinx had been advised of the +## possibility of the same. +## +## CRITICAL APPLICATIONS +## Xilinx products are not designed or intended to be fail- +## safe, or for use in any application requiring fail-safe +## performance, such as life-support or safety devices or +## systems, Class III medical devices, nuclear facilities, +## applications related to the deployment of airbags, or any +## other applications that could lead to death, personal +## injury, or severe property or environmental damage +## (individually and collectively, "Critical +## Applications"). Customer assumes the sole risk and +## liability of any use of Xilinx products in Critical +## Applications, subject only to applicable laws and +## regulations governing limitations on product liability. +## +## THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +## PART OF THIS FILE AT ALL TIMES. +## +############################################################################### +## ____ ____ +## / /\/ / +## /___/ \ / Vendor : Xilinx +## \ \ \/ Version : 4.0 +## \ \ Application : MIG +## / / Filename : ies_run.sh +## /___/ /\ Date Last Modified : $Date: 2011/06/02 08:31:17 $ +## \ \ / \ Date Created : Tue Oct 29 2013 +## \___\/\___\ +## +## Device : 7 Series +## Purpose : +## Sample ies_run.sh file to compile and simulate memory interface +## design and run the simulation for specified period of time. +## Display the waveforms that are listed with "add wave" command. +## Assumptions : +## Simulation takes place in \sim folder of MIG output directory. +## Reference : +## Revision History : +############################################################################### + +#echo Simulation Tool: IES + +#Compile the required libraries here# +#libraries path# + +#Compile all modules# +ncvlog -work worklib -sv -messages mig_7series*.v > ies_sim.log +ncvlog -sv -work worklib -messages ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0.v >> ies_sim.log +ncvlog -sv -work worklib -messages ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v >> ies_sim.log +ncvlog -work worklib -messages -sv ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/*.v >> ies_sim.log +ncvlog -work worklib -messages -sv ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/*.v >> ies_sim.log +ncvlog -work worklib -messages -sv ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/*.v >> ies_sim.log +ncvlog -work worklib -messages -sv ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ip_top/*.v >> ies_sim.log +ncvlog -work worklib -messages -sv ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/*.v >> ies_sim.log +ncvlog -work worklib -messages -sv ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/*.v >> ies_sim.log + + + +ncvlog -sv -work worklib -messages example_top.v >> ies_sim.log + +#Compile files in sim folder (excluding model parameter file)# +#$XILINX variable must be set +ncvlog -work worklib -messages $XILINX_VIVADO/data/verilog/src/glbl.v >> ies_sim.log +ncvlog -work worklib -messages wiredly.v >> ies_sim.log +ncvlog -work worklib -messages sim_tb_top.v >> ies_sim.log + +#Pass the parameters for memory model parameter file# +ncvlog -work worklib -messages -sv +define+x1Gb +define+sg125 +define+x8 ddr3_model.sv >> ies_sim.log + +#Simulate the design with sim_tb_top as the top module +ncelab -namemap_mixgen -timescale '1ps/1ps' -vhdlsync -v93 -messages -nettype_port_relax -access +rwc sim_tb_top glbl >> ies_sim.log +ncsim sim_tb_top >> ies_sim.log +#echo done diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/readme.txt b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/readme.txt new file mode 100644 index 0000000..9ec617e --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/readme.txt @@ -0,0 +1,229 @@ +############################################################################### +## (c) Copyright 2009 - 2012 Xilinx, Inc. All rights reserved. +## +## This file contains confidential and proprietary information +## of Xilinx, Inc. and is protected under U.S. and +## international copyright and other intellectual property +## laws. +## +## DISCLAIMER +## This disclaimer is not a license and does not grant any +## rights to the materials distributed herewith. Except as +## otherwise provided in a valid license issued to you by +## Xilinx, and to the maximum extent permitted by applicable +## law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +## WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +## AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +## BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +## INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +## (2) Xilinx shall not be liable (whether in contract or tort, +## including negligence, or under any other theory of +## liability) for any loss or damage of any kind or nature +## related to, arising under or in connection with these +## materials, including for any direct, or any indirect, +## special, incidental, or consequential loss or damage +## (including loss of data, profits, goodwill, or any type of +## loss or damage suffered as a result of any action brought +## by a third party) even if such damage or loss was +## reasonably foreseeable or Xilinx had been advised of the +## possibility of the same. +## +## CRITICAL APPLICATIONS +## Xilinx products are not designed or intended to be fail- +## safe, or for use in any application requiring fail-safe +## performance, such as life-support or safety devices or +## systems, Class III medical devices, nuclear facilities, +## applications related to the deployment of airbags, or any +## other applications that could lead to death, personal +## injury, or severe property or environmental damage +## (individually and collectively, "Critical +## Applications"). Customer assumes the sole risk and +## liability of any use of Xilinx products in Critical +## Applications, subject only to applicable laws and +## regulations governing limitations on product liability. +## +## THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +## PART OF THIS FILE AT ALL TIMES. +## +############################################################################### +## ____ ____ +## / /\/ / +## /___/ \ / Vendor : Xilinx +## \ \ \/ Version : 4.0 +## \ \ Application : MIG +## / / Filename : readme.txt +## /___/ /\ Date Last Modified : $Date: 2011/06/02 08:31:16 $ +## \ \ / \ Date Created : Tue Sept 21 2010 +## \___\/\___\ +## +## Device : 7 Series +## Design Name : DDR3 SDRAM +## Purpose : Steps to run simulations using Modelsim/QuestaSim, +## Cadence IES, and Synopsys VCS +## Assumptions : Simulations are run in \sim folder of MIG output "Open IP +## Example Design" directory +## Reference : +## Revision History: +############################################################################### + +MIG outputs script files required to run the simulations for Modelsim/QuestaSim, +Vivado Simulator, IES and VCS. These scripts are valid only for running +simulations for "Open IP Example Design" + +1. How to run simulations in Modelsim/QuestaSim simulator + + A) sim.do File : + + a) The 'sim.do' file has commands to compile and simulate memory + interface design and run the simulation for specified period of time. + + b) It has the syntax to Map the required libraries (unisims_ver, + unisim and secureip). The libraries should be mapped using + the following command + vmap unisims_ver + vmap unisim + vmap secureip + + Also, $XILINX_VIVADO environment variable must be set in order to compile glbl.v file + + c) Displays the waveforms that are listed with "add wave" command. + + B) Steps to run the Modelsim/QuestaSim simulation: + + a) The user should invoke the Modelsim/QuestaSim simulator GUI. + + b) Change the present working directory path to the sim folder. + In Transcript window, at Modelsim/QuestaSim prompt, type the following + command to change directory path. + cd + + c) Run the simulation using sim.do file. + At Modelsim/QuestaSim prompt, type the following command: + do sim.do + + d) To exit simulation, type the following command at Modelsim/QuestaSim + prompt: + quit -f + + e) Verify the transcript file for the memory transactions. + +2. How to run simulations in Vivado simulator + + A) Following files are provided : + + a) The 'xsim_run.bat' is the executable file for Vivado simulator under + MicroSoft Windows environment. + + b) The 'xsim_run.sh' is the executable file for Vivado simulator under + Linux environment. + + c) The 'xsim_run.bat'/'xsim_run.sh' file has commands to compile and + simulate memory interface design and run the simulation for specified + period of time. + + d) xsim_options.tcl file has commands to add waveforms and simulation + period. + + e) xsim_files.prj file has list of rtl files for simulating the design. + + f) $XILINX_VIVADO environment variable must be set in order to compile + glbl.v file + + B) Steps to run the Vivado Simulator simulation: + + a) Change the present working directory path to the sim folder of "Open + IP Example Design" path in the OS terminal. + + b) Run the simulation using xsim_run.sh file under Linux environment and + xsim_run.bat under MicroSoft Windows environment. + + c) Verify the transcript file for the memory transactions. + +3. How to run Cadence IES Simulations + + A) ies_run.sh File : + + a) The "ies_run.sh" file contains the commands for simulation of the + hdl files. + + b) Libraries must be mapped before running simulations. Following + procedure must be followed to before running simulations + + 1. Create two files named cds.lib and hdl.var in this directory + 2. Create a directory 'worklib' in same directory. + mkdir worklib + 3. Add following lines in the cds.lib file to map Xilinx libraries + + DEFINE unisim /proj/xbuilds/2014.4_daily_latest/clibs/ius/13.20.005/lin64/lib/./unisim + DEFINE unisims_ver /proj/xbuilds/2014.4_daily_latest/clibs/ius/13.20.005/lin64/lib/./unisims_ver + DEFINE secureip /proj/xbuilds/2014.4_daily_latest/clibs/ius/13.20.005/lin64/lib/./secureip + DEFINE worklib ./worklib + + 4. ATTENTION: In above lines replace the path for libraries as per your + compiled Xilinx libraries directory + 5. ATTENTION: Add the lines in the same order given above + 6. Please make sure you need to map all Xilinx libraries mentioned above + 7. Save and close the cds.lib file + + Also, $XILINX_VIVADO environment variable must be set in order to + compile glbl.v file and the above mentioned library files + + B) Steps to run the IES simulation: + + a) Change the present working directory path to the sim folder of "Open + IP Example Design" path in the OS terminal. + + b) Run the simulation using ies_run.sh file. Type the following command: + ./ies_run.sh + + c) Verify the ies_sim.log file for the memory transactions. + +4. How to run Synopsys VCS Simulations + + A) vcs_run.sh File : + + a) The "vcs_run.sh" file contains the commands for simulation of hdl files. + + b) Libraries must be mapped before running simulations. Following + procedure must be followed to before running simulations + + 1. Create a file named synopsys_sim.setup in this directory + 2. Add following lines in the synopsys_sim.setup file to map Xilinx + libraries + + unisim : /proj/xbuilds/2014.4_daily_latest/clibs/vcs/I-2014.03/lin64/lib/unisim + secureip : /proj/xbuilds/2014.4_daily_latest/clibs/vcs/I-2014.03/lin64/lib/secureip + unisims_ver : /proj/xbuilds/2014.4_daily_latest/clibs/vcs/I-2014.03/lin64/lib/unisims_ver + + 3. ATTENTION: In above lines replace the path for libraries as per your + Compiled Xilinx libraries directory + 4. Please make sure you need to map all Xilinx libraries mentioned above + + Also, $XILINX_VIVADO environment variable must be set in order to + compile glbl.v file and the above mentioned library files + + B) Steps to run the VCS simulation: + + a) Change the present working directory path to the sim folder of "Open + IP Example Design" path in the OS terminal. + + b) Run the simulation using vcs_run.sh file. Type the following command: + ./vcs_run.sh + + c) Verify the vcs_sim.log file for the memory transactions. + +5. SIM_BYPASS_INIT_CAL parameter value of SKIP, skips memory initialization sequence + and calibration sequence. This could lead to simulation errors since design is not + calibrated at all. Preferred values for parameter SIM_BYPASS_INIT_CAL to run + simulations are FAST and OFF. + +6. Simulations running with parameter MAX_MEM defined uses a temporary directory for model data. + The default temporary directory specified in model file is /tmp which doesn't exist for Windows OS. + Therfore users running on Windows OS should change the ddr3_model.v file as below + + tmp_model_dir = "/tmp"; + to + tmp_model_dir = "."; + + This change works for All OS. + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/sim.do b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/sim.do new file mode 100644 index 0000000..7754b8c --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/sim.do @@ -0,0 +1,154 @@ +############################################################################### +## (c) Copyright 2008 2009 Xilinx, Inc. All rights reserved. +## +## This file contains confidential and proprietary information +## of Xilinx, Inc. and is protected under U.S. and +## international copyright and other intellectual property +## laws. +## +## DISCLAIMER +## This disclaimer is not a license and does not grant any +## rights to the materials distributed herewith. Except as +## otherwise provided in a valid license issued to you by +## Xilinx, and to the maximum extent permitted by applicable +## law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +## WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +## AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +## BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +## INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +## (2) Xilinx shall not be liable (whether in contract or tort, +## including negligence, or under any other theory of +## liability) for any loss or damage of any kind or nature +## related to, arising under or in connection with these +## materials, including for any direct, or any indirect, +## special, incidental, or consequential loss or damage +## (including loss of data, profits, goodwill, or any type of +## loss or damage suffered as a result of any action brought +## by a third party) even if such damage or loss was +## reasonably foreseeable or Xilinx had been advised of the +## possibility of the same. +## +## CRITICAL APPLICATIONS +## Xilinx products are not designed or intended to be fail- +## safe, or for use in any application requiring fail-safe +## performance, such as life-support or safety devices or +## systems, Class III medical devices, nuclear facilities, +## applications related to the deployment of airbags, or any +## other applications that could lead to death, personal +## injury, or severe property or environmental damage +## (individually and collectively, "Critical +## Applications"). Customer assumes the sole risk and +## liability of any use of Xilinx products in Critical +## Applications, subject only to applicable laws and +## regulations governing limitations on product liability. +## +## THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +## PART OF THIS FILE AT ALL TIMES. +## +############################################################################### +## ____ ____ +## / /\/ / +## /___/ \ / Vendor : Xilinx +## \ \ \/ Version : 4.0 +## \ \ Application : MIG +## / / Filename : sim.do +## /___/ /\ Date Last Modified : $Date: 2011/06/02 08:31:17 $ +## \ \ / \ Date Created : Tue Sept 21 2010 +## \___\/\___\ +## +## Device : 7 Series +## Purpose : +## Sample sim .do file to compile and simulate memory interface +## design and run the simulation for specified period of time. +## Display the waveforms that are listed with "add wave" command. +## Assumptions : +## Simulation takes place in \sim folder of MIG output directory. +## Reference : +## Revision History : +############################################################################### + +vlib work + +#Map the required libraries here# +#vmap unisims_ver +#vmap unisim +#vmap secureip + +#Compile all modules# +vlog -incr mig_7series*.v +vlog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0.v +vlog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v +vlog -incr ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/*.v +vlog -incr ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/*.v +vlog -incr ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/*.v +vlog -incr ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ip_top/*.v +vlog -incr ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/*.v +vlog -incr ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/*.v + + + +vlog example_top.v + +#Compile files in sim folder (excluding model parameter file)# +#$XILINX variable must be set +vlog -incr $env(XILINX_VIVADO)/data/verilog/src/glbl.v +vlog wiredly.v +vlog sim_tb_top.v + +#Pass the parameters for memory model parameter file# +vlog -sv +define+x1Gb +define+sg125 +define+x8 ddr3_model.sv + +#Load the design. Use required libraries.# +vsim -t fs -novopt +notimingchecks -L unisims_ver -L secureip work.sim_tb_top glbl + +onerror {resume} +#Log all the objects in design. These will appear in .wlf file# +#This helps in viewing all signals of the design instead of +#re-running the simulation for viewing the signals. +#Uncomment below line to log all objects in the design. +#log -r /* + +#View sim_tb_top signals in waveform# +add wave sim:/sim_tb_top/* +#Change radix to Hexadecimal# +radix hex +#Supress Numeric Std package and Arith package warnings.# +#For VHDL designs we get some warnings due to unknown values on some signals at startup# +# ** Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0# +#We may also get some Arithmetic packeage warnings because of unknown values on# +#some of the signals that are used in an Arithmetic operation.# +#In order to suppress these warnings, we use following two commands# +set NumericStdNoWarnings 1 +set StdArithNoWarnings 1 + +# Choose simulation run time by inserting a breakpoint and then run for specified # +# period. For more details, refer to user guide (UG586).# +# Status reporting logic exists both in simulation test bench (sim_tb_top) +# and sim.do file for ModelSim. Any update in simulation run time or time out +# in this file need to be updated in sim_tb_top file as well. +when {/sim_tb_top/init_calib_complete = 1} { +if {[when -label a_100] == ""} { +when -label a_100 { $now = 50 us } { +nowhen a_100 +report simulator control +report simulator state +if {[examine /sim_tb_top/tg_compare_error] == 0} { +echo "TEST PASSED" +stop +} +if {[examine /sim_tb_top/tg_compare_error] != 0} { +echo "TEST FAILED: DATA ERROR" +stop +} +} +} +} + +#In case calibration fails to complete, choose the run time and then stop# +when {$now = @1000 us and /sim_tb_top/init_calib_complete != 1} { +echo "TEST FAILED: CALIBRATION DID NOT COMPLETE" +stop +} + +run -all +stop diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/sim_tb_top.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/sim_tb_top.v new file mode 100644 index 0000000..1aea86b --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/sim_tb_top.v @@ -0,0 +1,577 @@ +//***************************************************************************** +// (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor : Xilinx +// \ \ \/ Version : 4.0 +// \ \ Application : MIG +// / / Filename : sim_tb_top.v +// /___/ /\ Date Last Modified : $Date: 2011/06/07 13:45:16 $ +// \ \ / \ Date Created : Tue Sept 21 2010 +// \___\/\___\ +// +// Device : 7 Series +// Design Name : DDR3 SDRAM +// Purpose : +// Top-level testbench for testing DDR3. +// Instantiates: +// 1. IP_TOP (top-level representing FPGA, contains core, +// clocking, built-in testbench/memory checker and other +// support structures) +// 2. DDR3 Memory +// 3. Miscellaneous clock generation and reset logic +// 4. For ECC ON case inserts error on LSB bit +// of data from DRAM to FPGA. +// Reference : +// Revision History : +//***************************************************************************** + +`timescale 1ps/100fs + +module sim_tb_top; + + + //*************************************************************************** + // Traffic Gen related parameters + //*************************************************************************** + parameter SIMULATION = "TRUE"; + parameter PORT_MODE = "BI_MODE"; + parameter DATA_MODE = 4'b0010; + parameter TST_MEM_INSTR_MODE = "R_W_INSTR_MODE"; + parameter EYE_TEST = "FALSE"; + // set EYE_TEST = "TRUE" to probe memory + // signals. Traffic Generator will only + // write to one single location and no + // read transactions will be generated. + parameter DATA_PATTERN = "DGEN_ALL"; + // For small devices, choose one only. + // For large device, choose "DGEN_ALL" + // "DGEN_HAMMER", "DGEN_WALKING1", + // "DGEN_WALKING0","DGEN_ADDR"," + // "DGEN_NEIGHBOR","DGEN_PRBS","DGEN_ALL" + parameter CMD_PATTERN = "CGEN_ALL"; + // "CGEN_PRBS","CGEN_FIXED","CGEN_BRAM", + // "CGEN_SEQUENTIAL", "CGEN_ALL" + parameter BEGIN_ADDRESS = 32'h00000000; + parameter END_ADDRESS = 32'h00000fff; + parameter PRBS_EADDR_MASK_POS = 32'hff000000; + + //*************************************************************************** + // The following parameters refer to width of various ports + //*************************************************************************** + parameter COL_WIDTH = 10; + // # of memory Column Address bits. + parameter CS_WIDTH = 1; + // # of unique CS outputs to memory. + parameter DM_WIDTH = 8; + // # of DM (data mask) + parameter DQ_WIDTH = 64; + // # of DQ (data) + parameter DQS_WIDTH = 8; + parameter DQS_CNT_WIDTH = 3; + // = ceil(log2(DQS_WIDTH)) + parameter DRAM_WIDTH = 8; + // # of DQ per DQS + parameter ECC = "OFF"; + parameter RANKS = 1; + // # of Ranks. + parameter ODT_WIDTH = 1; + // # of ODT outputs to memory. + parameter ROW_WIDTH = 14; + // # of memory Row Address bits. + parameter ADDR_WIDTH = 28; + // # = RANK_WIDTH + BANK_WIDTH + // + ROW_WIDTH + COL_WIDTH; + // Chip Select is always tied to low for + // single rank devices + //*************************************************************************** + // The following parameters are mode register settings + //*************************************************************************** + parameter BURST_MODE = "8"; + // DDR3 SDRAM: + // Burst Length (Mode Register 0). + // # = "8", "4", "OTF". + // DDR2 SDRAM: + // Burst Length (Mode Register). + // # = "8", "4". + parameter CA_MIRROR = "OFF"; + // C/A mirror opt for DDR3 dual rank + + //*************************************************************************** + // The following parameters are multiplier and divisor factors for PLLE2. + // Based on the selected design frequency these parameters vary. + //*************************************************************************** + parameter CLKIN_PERIOD = 5000; + // Input Clock Period + + + //*************************************************************************** + // Simulation parameters + //*************************************************************************** + parameter SIM_BYPASS_INIT_CAL = "FAST"; + // # = "SIM_INIT_CAL_FULL" - Complete + // memory init & + // calibration sequence + // # = "SKIP" - Not supported + // # = "FAST" - Complete memory init & use + // abbreviated calib sequence + + //*************************************************************************** + // IODELAY and PHY related parameters + //*************************************************************************** + parameter TCQ = 100; + //*************************************************************************** + // IODELAY and PHY related parameters + //*************************************************************************** + parameter RST_ACT_LOW = 1; + // =1 for active low reset, + // =0 for active high. + + //*************************************************************************** + // Referece clock frequency parameters + //*************************************************************************** + parameter REFCLK_FREQ = 200.0; + // IODELAYCTRL reference clock frequency + //*************************************************************************** + // System clock frequency parameters + //*************************************************************************** + parameter tCK = 1250; + // memory tCK paramter. + // # = Clock Period in pS. + parameter nCK_PER_CLK = 4; + // # of memory CKs per fabric CLK + + + + //*************************************************************************** + // Debug and Internal parameters + //*************************************************************************** + parameter DEBUG_PORT = "OFF"; + // # = "ON" Enable debug signals/controls. + // = "OFF" Disable debug signals/controls. + //*************************************************************************** + // Debug and Internal parameters + //*************************************************************************** + parameter DRAM_TYPE = "DDR3"; + + + + //**************************************************************************// + // Local parameters Declarations + //**************************************************************************// + + localparam real TPROP_DQS = 0.00; + // Delay for DQS signal during Write Operation + localparam real TPROP_DQS_RD = 0.00; + // Delay for DQS signal during Read Operation + localparam real TPROP_PCB_CTRL = 0.00; + // Delay for Address and Ctrl signals + localparam real TPROP_PCB_DATA = 0.00; + // Delay for data signal during Write operation + localparam real TPROP_PCB_DATA_RD = 0.00; + // Delay for data signal during Read operation + + localparam MEMORY_WIDTH = 8; + localparam NUM_COMP = DQ_WIDTH/MEMORY_WIDTH; + localparam ECC_TEST = "OFF" ; + localparam ERR_INSERT = (ECC_TEST == "ON") ? "OFF" : ECC ; + + + localparam real REFCLK_PERIOD = (1000000.0/(2*REFCLK_FREQ)); + localparam RESET_PERIOD = 200000; //in pSec + localparam real SYSCLK_PERIOD = tCK; + + + + //**************************************************************************// + // Wire Declarations + //**************************************************************************// + reg sys_rst_n; + wire sys_rst; + + + reg sys_clk_i; + + reg clk_ref_i; + + + wire ddr3_reset_n; + wire [DQ_WIDTH-1:0] ddr3_dq_fpga; + wire [DQS_WIDTH-1:0] ddr3_dqs_p_fpga; + wire [DQS_WIDTH-1:0] ddr3_dqs_n_fpga; + wire [ROW_WIDTH-1:0] ddr3_addr_fpga; + wire [3-1:0] ddr3_ba_fpga; + wire ddr3_ras_n_fpga; + wire ddr3_cas_n_fpga; + wire ddr3_we_n_fpga; + wire [1-1:0] ddr3_cke_fpga; + wire [1-1:0] ddr3_ck_p_fpga; + wire [1-1:0] ddr3_ck_n_fpga; + + + wire init_calib_complete; + wire tg_compare_error; + wire [(CS_WIDTH*1)-1:0] ddr3_cs_n_fpga; + + wire [DM_WIDTH-1:0] ddr3_dm_fpga; + + wire [ODT_WIDTH-1:0] ddr3_odt_fpga; + + + reg [(CS_WIDTH*1)-1:0] ddr3_cs_n_sdram_tmp; + + reg [DM_WIDTH-1:0] ddr3_dm_sdram_tmp; + + reg [ODT_WIDTH-1:0] ddr3_odt_sdram_tmp; + + + + wire [DQ_WIDTH-1:0] ddr3_dq_sdram; + reg [ROW_WIDTH-1:0] ddr3_addr_sdram [0:1]; + reg [3-1:0] ddr3_ba_sdram [0:1]; + reg ddr3_ras_n_sdram; + reg ddr3_cas_n_sdram; + reg ddr3_we_n_sdram; + wire [(CS_WIDTH*1)-1:0] ddr3_cs_n_sdram; + wire [ODT_WIDTH-1:0] ddr3_odt_sdram; + reg [1-1:0] ddr3_cke_sdram; + wire [DM_WIDTH-1:0] ddr3_dm_sdram; + wire [DQS_WIDTH-1:0] ddr3_dqs_p_sdram; + wire [DQS_WIDTH-1:0] ddr3_dqs_n_sdram; + reg [1-1:0] ddr3_ck_p_sdram; + reg [1-1:0] ddr3_ck_n_sdram; + + + +//**************************************************************************// + + //**************************************************************************// + // Reset Generation + //**************************************************************************// + initial begin + sys_rst_n = 1'b0; + #RESET_PERIOD + sys_rst_n = 1'b1; + end + + assign sys_rst = RST_ACT_LOW ? sys_rst_n : ~sys_rst_n; + + //**************************************************************************// + // Clock Generation + //**************************************************************************// + + initial + sys_clk_i = 1'b0; + always + sys_clk_i = #(CLKIN_PERIOD/2.0) ~sys_clk_i; + + + initial + clk_ref_i = 1'b0; + always + clk_ref_i = #REFCLK_PERIOD ~clk_ref_i; + + + + + always @( * ) begin + ddr3_ck_p_sdram <= #(TPROP_PCB_CTRL) ddr3_ck_p_fpga; + ddr3_ck_n_sdram <= #(TPROP_PCB_CTRL) ddr3_ck_n_fpga; + ddr3_addr_sdram[0] <= #(TPROP_PCB_CTRL) ddr3_addr_fpga; + ddr3_addr_sdram[1] <= #(TPROP_PCB_CTRL) (CA_MIRROR == "ON") ? + {ddr3_addr_fpga[ROW_WIDTH-1:9], + ddr3_addr_fpga[7], ddr3_addr_fpga[8], + ddr3_addr_fpga[5], ddr3_addr_fpga[6], + ddr3_addr_fpga[3], ddr3_addr_fpga[4], + ddr3_addr_fpga[2:0]} : + ddr3_addr_fpga; + ddr3_ba_sdram[0] <= #(TPROP_PCB_CTRL) ddr3_ba_fpga; + ddr3_ba_sdram[1] <= #(TPROP_PCB_CTRL) (CA_MIRROR == "ON") ? + {ddr3_ba_fpga[3-1:2], + ddr3_ba_fpga[0], + ddr3_ba_fpga[1]} : + ddr3_ba_fpga; + ddr3_ras_n_sdram <= #(TPROP_PCB_CTRL) ddr3_ras_n_fpga; + ddr3_cas_n_sdram <= #(TPROP_PCB_CTRL) ddr3_cas_n_fpga; + ddr3_we_n_sdram <= #(TPROP_PCB_CTRL) ddr3_we_n_fpga; + ddr3_cke_sdram <= #(TPROP_PCB_CTRL) ddr3_cke_fpga; + end + + + always @( * ) + ddr3_cs_n_sdram_tmp <= #(TPROP_PCB_CTRL) ddr3_cs_n_fpga; + assign ddr3_cs_n_sdram = ddr3_cs_n_sdram_tmp; + + + always @( * ) + ddr3_dm_sdram_tmp <= #(TPROP_PCB_DATA) ddr3_dm_fpga;//DM signal generation + assign ddr3_dm_sdram = ddr3_dm_sdram_tmp; + + + always @( * ) + ddr3_odt_sdram_tmp <= #(TPROP_PCB_CTRL) ddr3_odt_fpga; + assign ddr3_odt_sdram = ddr3_odt_sdram_tmp; + + +// Controlling the bi-directional BUS + + genvar dqwd; + generate + for (dqwd = 1;dqwd < DQ_WIDTH;dqwd = dqwd+1) begin : dq_delay + WireDelay # + ( + .Delay_g (TPROP_PCB_DATA), + .Delay_rd (TPROP_PCB_DATA_RD), + .ERR_INSERT ("OFF") + ) + u_delay_dq + ( + .A (ddr3_dq_fpga[dqwd]), + .B (ddr3_dq_sdram[dqwd]), + .reset (sys_rst_n), + .phy_init_done (init_calib_complete) + ); + end + // For ECC ON case error is inserted on LSB bit from DRAM to FPGA + WireDelay # + ( + .Delay_g (TPROP_PCB_DATA), + .Delay_rd (TPROP_PCB_DATA_RD), + .ERR_INSERT (ERR_INSERT) + ) + u_delay_dq_0 + ( + .A (ddr3_dq_fpga[0]), + .B (ddr3_dq_sdram[0]), + .reset (sys_rst_n), + .phy_init_done (init_calib_complete) + ); + endgenerate + + genvar dqswd; + generate + for (dqswd = 0;dqswd < DQS_WIDTH;dqswd = dqswd+1) begin : dqs_delay + WireDelay # + ( + .Delay_g (TPROP_DQS), + .Delay_rd (TPROP_DQS_RD), + .ERR_INSERT ("OFF") + ) + u_delay_dqs_p + ( + .A (ddr3_dqs_p_fpga[dqswd]), + .B (ddr3_dqs_p_sdram[dqswd]), + .reset (sys_rst_n), + .phy_init_done (init_calib_complete) + ); + + WireDelay # + ( + .Delay_g (TPROP_DQS), + .Delay_rd (TPROP_DQS_RD), + .ERR_INSERT ("OFF") + ) + u_delay_dqs_n + ( + .A (ddr3_dqs_n_fpga[dqswd]), + .B (ddr3_dqs_n_sdram[dqswd]), + .reset (sys_rst_n), + .phy_init_done (init_calib_complete) + ); + end + endgenerate + + + + + //=========================================================================== + // FPGA Memory Controller + //=========================================================================== + + example_top # + ( + + .SIMULATION (SIMULATION), + .PORT_MODE (PORT_MODE), + .DATA_MODE (DATA_MODE), + .TST_MEM_INSTR_MODE (TST_MEM_INSTR_MODE), + .EYE_TEST (EYE_TEST), + .DATA_PATTERN (DATA_PATTERN), + .CMD_PATTERN (CMD_PATTERN), + .BEGIN_ADDRESS (BEGIN_ADDRESS), + .END_ADDRESS (END_ADDRESS), + .PRBS_EADDR_MASK_POS (PRBS_EADDR_MASK_POS), + + .COL_WIDTH (COL_WIDTH), + .CS_WIDTH (CS_WIDTH), + .DM_WIDTH (DM_WIDTH), + + .DQ_WIDTH (DQ_WIDTH), + .DQS_CNT_WIDTH (DQS_CNT_WIDTH), + .DRAM_WIDTH (DRAM_WIDTH), + .ECC_TEST (ECC_TEST), + .RANKS (RANKS), + .ROW_WIDTH (ROW_WIDTH), + .ADDR_WIDTH (ADDR_WIDTH), + .BURST_MODE (BURST_MODE), + .TCQ (TCQ), + + + .DRAM_TYPE (DRAM_TYPE), + + + .nCK_PER_CLK (nCK_PER_CLK), + + + .DEBUG_PORT (DEBUG_PORT), + + .RST_ACT_LOW (RST_ACT_LOW) + ) + u_ip_top + ( + + .ddr3_dq (ddr3_dq_fpga), + .ddr3_dqs_n (ddr3_dqs_n_fpga), + .ddr3_dqs_p (ddr3_dqs_p_fpga), + + .ddr3_addr (ddr3_addr_fpga), + .ddr3_ba (ddr3_ba_fpga), + .ddr3_ras_n (ddr3_ras_n_fpga), + .ddr3_cas_n (ddr3_cas_n_fpga), + .ddr3_we_n (ddr3_we_n_fpga), + .ddr3_reset_n (ddr3_reset_n), + .ddr3_ck_p (ddr3_ck_p_fpga), + .ddr3_ck_n (ddr3_ck_n_fpga), + .ddr3_cke (ddr3_cke_fpga), + .ddr3_cs_n (ddr3_cs_n_fpga), + + .ddr3_dm (ddr3_dm_fpga), + + .ddr3_odt (ddr3_odt_fpga), + + + .sys_clk_i (sys_clk_i), + + .init_calib_complete (init_calib_complete), + .tg_compare_error (tg_compare_error), + .sys_rst (sys_rst) + ); + + //**************************************************************************// + // Memory Models instantiations + //**************************************************************************// + + genvar r,i; + generate + for (r = 0; r < CS_WIDTH; r = r + 1) begin: mem_rnk + for (i = 0; i < NUM_COMP; i = i + 1) begin: gen_mem + ddr3_model u_comp_ddr3 + ( + .rst_n (ddr3_reset_n), + .ck (ddr3_ck_p_sdram[(i*MEMORY_WIDTH)/72]), + .ck_n (ddr3_ck_n_sdram[(i*MEMORY_WIDTH)/72]), + .cke (ddr3_cke_sdram[((i*MEMORY_WIDTH)/72)+(1*r)]), + .cs_n (ddr3_cs_n_sdram[((i*MEMORY_WIDTH)/72)+(1*r)]), + .ras_n (ddr3_ras_n_sdram), + .cas_n (ddr3_cas_n_sdram), + .we_n (ddr3_we_n_sdram), + .dm_tdqs (ddr3_dm_sdram[i]), + .ba (ddr3_ba_sdram[r]), + .addr (ddr3_addr_sdram[r]), + .dq (ddr3_dq_sdram[MEMORY_WIDTH*(i+1)-1:MEMORY_WIDTH*(i)]), + .dqs (ddr3_dqs_p_sdram[i]), + .dqs_n (ddr3_dqs_n_sdram[i]), + .tdqs_n (), + .odt (ddr3_odt_sdram[((i*MEMORY_WIDTH)/72)+(1*r)]) + ); + end + end + endgenerate + + + + + //*************************************************************************** + // Reporting the test case status + // Status reporting logic exists both in simulation test bench (sim_tb_top) + // and sim.do file for ModelSim. Any update in simulation run time or time out + // in this file need to be updated in sim.do file as well. + //*************************************************************************** + initial + begin : Logging + fork + begin : calibration_done + wait (init_calib_complete); + $display("Calibration Done"); + #50000000.0; + if (!tg_compare_error) begin + $display("TEST PASSED"); + end + else begin + $display("TEST FAILED: DATA ERROR"); + end + disable calib_not_done; + $finish; + end + + begin : calib_not_done + if (SIM_BYPASS_INIT_CAL == "SIM_INIT_CAL_FULL") + #2500000000.0; + else + #1000000000.0; + if (!init_calib_complete) begin + $display("TEST FAILED: INITIALIZATION DID NOT COMPLETE"); + end + disable calibration_done; + $finish; + end + join + end + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/vcs_run.sh b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/vcs_run.sh new file mode 100755 index 0000000..e1fac16 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/vcs_run.sh @@ -0,0 +1,102 @@ +############################################################################### +## (c) Copyright 2008 2009 Xilinx, Inc. All rights reserved. +## +## This file contains confidential and proprietary information +## of Xilinx, Inc. and is protected under U.S. and +## international copyright and other intellectual property +## laws. +## +## DISCLAIMER +## This disclaimer is not a license and does not grant any +## rights to the materials distributed herewith. Except as +## otherwise provided in a valid license issued to you by +## Xilinx, and to the maximum extent permitted by applicable +## law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +## WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +## AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +## BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +## INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +## (2) Xilinx shall not be liable (whether in contract or tort, +## including negligence, or under any other theory of +## liability) for any loss or damage of any kind or nature +## related to, arising under or in connection with these +## materials, including for any direct, or any indirect, +## special, incidental, or consequential loss or damage +## (including loss of data, profits, goodwill, or any type of +## loss or damage suffered as a result of any action brought +## by a third party) even if such damage or loss was +## reasonably foreseeable or Xilinx had been advised of the +## possibility of the same. +## +## CRITICAL APPLICATIONS +## Xilinx products are not designed or intended to be fail- +## safe, or for use in any application requiring fail-safe +## performance, such as life-support or safety devices or +## systems, Class III medical devices, nuclear facilities, +## applications related to the deployment of airbags, or any +## other applications that could lead to death, personal +## injury, or severe property or environmental damage +## (individually and collectively, "Critical +## Applications"). Customer assumes the sole risk and +## liability of any use of Xilinx products in Critical +## Applications, subject only to applicable laws and +## regulations governing limitations on product liability. +## +## THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +## PART OF THIS FILE AT ALL TIMES. +## +############################################################################### +## ____ ____ +## / /\/ / +## /___/ \ / Vendor : Xilinx +## \ \ \/ Version : 4.0 +## \ \ Application : MIG +## / / Filename : vcs_run.sh +## /___/ /\ Date Last Modified : $Date: 2011/06/02 08:31:17 $ +## \ \ / \ Date Created : Tue Oct 29 2013 +## \___\/\___\ +## +## Device : 7 Series +## Purpose : +## Sample vcs_run.sh file to compile and simulate memory interface +## design and run the simulation for specified period of time. +## Display the waveforms that are listed with "add wave" command. +## Assumptions : +## Simulation takes place in \sim folder of MIG output directory. +## Reference : +## Revision History : +############################################################################### + +#echo Simulation Tool: VCS + +#Compile the required libraries here# +#libraries path# + +#Compile all modules# +vlogan -sverilog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0.v > vcs_sim.log +vlogan -sverilog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v >> vcs_sim.log +vlogan -sverilog mig_7series*.v >> vcs_sim.log +vlogan -sverilog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/*.v >> vcs_sim.log +vlogan -sverilog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/*.v >> vcs_sim.log +vlogan -sverilog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/*.v >> vcs_sim.log +vlogan -sverilog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ip_top/*.v >> vcs_sim.log +vlogan -sverilog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/*.v >> vcs_sim.log +vlogan -sverilog ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/*.v >> vcs_sim.log + + + + +vlogan -sverilog example_top.v >> vcs_sim.log + +#Compile files in sim folder (excluding model parameter file)# +#$XILINX variable must be set +vlogan $XILINX_VIVADO/data/verilog/src/glbl.v >> vcs_sim.log +vlogan -sverilog wiredly.v >> vcs_sim.log +vlogan -sverilog sim_tb_top.v >> vcs_sim.log + +#Pass the parameters for memory model parameter file# +vlogan -Xcheck_p1800_2009=char -sverilog +define+x1Gb +define+sg125 +define+x8 ddr3_model.sv >> vcs_sim.log + +#Simulate the design with sim_tb_top as the top module +vcs -R -debug_pp -lca sim_tb_top glbl >> vcs_sim.log +#echo done diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/wiredly.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/wiredly.v new file mode 100644 index 0000000..215a4ad --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/wiredly.v @@ -0,0 +1,159 @@ +//***************************************************************************** +// (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor : Xilinx +// \ \ \/ Version : 4.0 +// \ \ Application : MIG +// / / Filename : wiredly.v +// /___/ /\ Date Last Modified : $Date: 2011/06/23 08:25:20 $ +// \ \ / \ Date Created : Tue Sept 21 2010 +// \___\/\___\ +// +// Device : 7Series +// Design Name : DDR3 SDRAM +// Purpose : +// This module provide the definition of a zero ohm component (A, B). +// +// The applications of this component include: +// . Normal operation of a jumper wire (data flowing in both directions) +// This can corrupt data from DRAM to FPGA useful for verifying ECC function. +// +// The component consists of 2 ports: +// . Port A: One side of the pass-through switch +// . Port B: The other side of the pass-through switch + +// The model is sensitive to transactions on all ports. Once a transaction +// is detected, all other transactions are ignored for that simulation time +// (i.e. further transactions in that delta time are ignored). + +// Model Limitations and Restrictions: +// Signals asserted on the ports of the error injector should not have +// transactions occuring in multiple delta times because the model +// is sensitive to transactions on port A, B ONLY ONCE during +// a simulation time. Thus, once fired, a process will +// not refire if there are multiple transactions occuring in delta times. +// This condition may occur in gate level simulations with +// ZERO delays because transactions may occur in multiple delta times. +// +// Reference : +// Revision History : +//***************************************************************************** + +`timescale 1ns / 1ps + +module WireDelay # ( + parameter Delay_g = 0, + parameter Delay_rd = 0, + parameter ERR_INSERT = "OFF" +) +( + inout A, + inout B, + input reset, + input phy_init_done +); + + reg A_r; + reg B_r; + reg B_inv ; + reg line_en; + + reg B_nonX; + + assign A = A_r; + assign B = B_r; + + always @ (*) + begin + if (B === 1'bx) + B_nonX <= $random; + else + B_nonX <= B; + end + + always@(*) + begin + if((B_nonX == 'b1) || (B_nonX == 'b0)) + B_inv <= #0 ~B_nonX ; + else + B_inv <= #0 'bz ; + end + + always @(*) begin + if (!reset) begin + A_r <= 1'bz; + B_r <= 1'bz; + line_en <= 1'b0; + end else begin + if (line_en) begin + B_r <= 1'bz; + if ((ERR_INSERT == "ON") & (phy_init_done)) + A_r <= #Delay_rd B_inv; + else + A_r <= #Delay_rd B_nonX; + end else begin + B_r <= #Delay_g A; + A_r <= 1'bz; + end + end + end + + always @(A or B) begin + if (!reset) begin + line_en <= 1'b0; + end else if (A !== A_r) begin + line_en <= 1'b0; + end else if (B_r !== B) begin + line_en <= 1'b1; + end else begin + line_en <= line_en; + end + end +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_files.prj b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_files.prj new file mode 100644 index 0000000..a1cfdb8 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_files.prj @@ -0,0 +1,156 @@ +------------------------------------------------------------------------------- +-- (c) Copyright 2012 Xilinx, Inc. All rights reserved. +-- +-- This file contains confidential and proprietary information +-- of Xilinx, Inc. and is protected under U.S. and +-- international copyright and other intellectual property +-- laws. +-- +-- DISCLAIMER +-- This disclaimer is not a license and does not grant any +-- rights to the materials distributed herewith. Except as +-- otherwise provided in a valid license issued to you by +-- Xilinx, and to the maximum extent permitted by applicable +-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +-- (2) Xilinx shall not be liable (whether in contract or tort, +-- including negligence, or under any other theory of +-- liability) for any loss or damage of any kind or nature +-- related to, arising under or in connection with these +-- materials, including for any direct, or any indirect, +-- special, incidental, or consequential loss or damage +-- (including loss of data, profits, goodwill, or any type of +-- loss or damage suffered as a result of any action brought +-- by a third party) even if such damage or loss was +-- reasonably foreseeable or Xilinx had been advised of the +-- possibility of the same. +-- +-- CRITICAL APPLICATIONS +-- Xilinx products are not designed or intended to be fail- +-- safe, or for use in any application requiring fail-safe +-- performance, such as life-support or safety devices or +-- systems, Class III medical devices, nuclear facilities, +-- applications related to the deployment of airbags, or any +-- other applications that could lead to death, personal +-- injury, or severe property or environmental damage +-- (individually and collectively, "Critical +-- Applications"). Customer assumes the sole risk and +-- liability of any use of Xilinx products in Critical +-- Applications, subject only to applicable laws and +-- regulations governing limitations on product liability. +-- +-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +-- PART OF THIS FILE AT ALL TIMES. +-- +------------------------------------------------------------------------------- +-- ____ ____ +-- / /\/ / +-- /___/ \ / Vendor : Xilinx +-- \ \ \/ Version : 4.0 +-- \ \ Application : MIG +-- / / Filename : xsim_files.prj +-- /___/ /\ Date Last Modified : $Date: 2011/06/02 08:31:16 $ +-- \ \ / \ Date Created : Tue Jun 05 2012 +-- \___\/\___\ +-- +-- Device : 7 Series +-- Design Name : DDR3 SDRAM +-- Purpose : Contains a list of all the files associated with a design +-- Assumptions: +-- - Simulation takes place in \sim folder of MIG output directory +-- Reference : +-- Revision History: +------------------------------------------------------------------------------- + +verilog work mig_7series_v4_0_afifo.v +verilog work mig_7series_v4_0_cmd_gen.v +verilog work mig_7series_v4_0_cmd_prbs_gen.v +verilog work mig_7series_v4_0_data_prbs_gen.v +verilog work mig_7series_v4_0_init_mem_pattern_ctr.v +verilog work mig_7series_v4_0_memc_flow_vcontrol.v +verilog work mig_7series_v4_0_memc_traffic_gen.v +verilog work mig_7series_v4_0_rd_data_gen.v +verilog work mig_7series_v4_0_read_data_path.v +verilog work mig_7series_v4_0_read_posted_fifo.v +verilog work mig_7series_v4_0_s7ven_data_gen.v +verilog work mig_7series_v4_0_tg_prbs_gen.v +verilog work mig_7series_v4_0_tg_status.v +verilog work mig_7series_v4_0_traffic_gen_top.v +verilog work mig_7series_v4_0_vio_init_pattern_bram.v +verilog work mig_7series_v4_0_wr_data_gen.v +verilog work mig_7series_v4_0_write_data_path.v +verilog work example_top.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_clk_ibuf.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_infrastructure.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_iodelay_ctrl.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_tempmon.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_mux.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_row_col.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_select.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_cntrl.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_common.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_compare.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_mach.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_queue.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_state.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_col_mach.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_mc.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_cntrl.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_common.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_mach.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_round_robin_arb.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_buf.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_dec_fix.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_gen.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_merge_enc.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_fi_xor.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ip_top/mig_7series_v4_0_mem_intfc.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ip_top/mig_7series_v4_0_memc_ui_top_std.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_byte_group_io.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_byte_lane.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_calib_top.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_if_post_fifo.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_mc_phy.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_mc_phy_wrapper.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_of_pre_fifo.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_4lanes.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ck_addr_cmd_delay.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_dqs_found_cal.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_dqs_found_cal_hr.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_init.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_cntlr.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_data.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_edge.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_lim.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_mux.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_po_cntlr.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_samp.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_oclkdelay_cal.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_prbs_rdlvl.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_rdlvl.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_tempmon.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_top.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrcal.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrlvl.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrlvl_off_delay.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_prbs_gen.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_skip_calib_tap.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_cc.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_edge_store.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_meta.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_pd.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_tap_base.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_top.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_cmd.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_rd_data.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_top.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_wr_data.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0.v +verilog work ../mig_7series_0_ex.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v +verilog work $XILINX_VIVADO/data/verilog/src/glbl.v +sv work ddr3_model.sv -d x1Gb -d sg125 -d x8 +verilog work wiredly.v +verilog work sim_tb_top.v diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_options.tcl b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_options.tcl new file mode 100644 index 0000000..8ae8254 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_options.tcl @@ -0,0 +1,70 @@ +############################################################################### +## (c) Copyright 2012 Xilinx, Inc. All rights reserved. +## +## This file contains confidential and proprietary information +## of Xilinx, Inc. and is protected under U.S. and +## international copyright and other intellectual property +## laws. +## +## DISCLAIMER +## This disclaimer is not a license and does not grant any +## rights to the materials distributed herewith. Except as +## otherwise provided in a valid license issued to you by +## Xilinx, and to the maximum extent permitted by applicable +## law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +## WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +## AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +## BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +## INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +## (2) Xilinx shall not be liable (whether in contract or tort, +## including negligence, or under any other theory of +## liability) for any loss or damage of any kind or nature +## related to, arising under or in connection with these +## materials, including for any direct, or any indirect, +## special, incidental, or consequential loss or damage +## (including loss of data, profits, goodwill, or any type of +## loss or damage suffered as a result of any action brought +## by a third party) even if such damage or loss was +## reasonably foreseeable or Xilinx had been advised of the +## possibility of the same. +## +## CRITICAL APPLICATIONS +## Xilinx products are not designed or intended to be fail- +## safe, or for use in any application requiring fail-safe +## performance, such as life-support or safety devices or +## systems, Class III medical devices, nuclear facilities, +## applications related to the deployment of airbags, or any +## other applications that could lead to death, personal +## injury, or severe property or environmental damage +## (individually and collectively, "Critical +## Applications"). Customer assumes the sole risk and +## liability of any use of Xilinx products in Critical +## Applications, subject only to applicable laws and +## regulations governing limitations on product liability. +## +## THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +## PART OF THIS FILE AT ALL TIMES. +## +############################################################################### +## ____ ____ +## / /\/ / +## /___/ \ / Vendor : Xilinx +## \ \ \/ Version : 4.0 +## \ \ Application : MIG +## / / Filename : xsim_options.tcl +## /___/ /\ Date Last Modified : $Date: 2011/06/02 08:31:16 $ +## \ \ / \ Date Created : Tue Jun 05 2012 +## \___\/\___\ +## +## Device : 7 Series +## Design Name : DDR3 SDRAM +## Purpose : To give commands to XSIM Simulator through batch mode +## Assumptions: +## - Simulation takes place in \sim folder of MIG output directory +## Reference : +## Revision History: +############################################################################### + + +add_wave -radix hex /sim_tb_top +run 1000 us diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_run.sh b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_run.sh new file mode 100755 index 0000000..7220442 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/example_design/sim/xsim_run.sh @@ -0,0 +1,71 @@ +#!/bin/csh -f +#***************************************************************************** +# (c) Copyright 2012 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# +# **************************************************************************** +# ____ ____ +# / /\/ / +# /___/ \ / Vendor : Xilinx +# \ \ \/ Version : 4.0 +# \ \ Application : MIG +# / / Filename : xsim_run.bat +# /___/ /\ Date Last Modified : $Date: 2011/06/02 08:31:16 $ +# \ \ / \ Date Created : Tue Jun 05 2012 +# \___\/\___\ +# +# Device : 7 Series +# Design Name : DDR3 SDRAM +# Purpose : Batch file to run Simulation through Vivado Simulator +# Reference : +# Revision History : +# **************************************************************************** + + +echo Simulation Tool: Viavdo Simulator + xelab work.sim_tb_top work.glbl -prj xsim_files.prj -L unisims_ver -L secureip -s xsim_test -debug typical +xsim -g -t xsim_options.tcl -wdb xsim_database.wdb xsim_test +echo done diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/mig.prj b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/mig.prj new file mode 100644 index 0000000..5b467d2 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/mig.prj @@ -0,0 +1,193 @@ + + + + mig_7series_0 + 1 + 1 + OFF + 1024 + ON + Enabled + xc7z045-ffg900/-2 + 4.0 + No Buffer + Use System Clock + ACTIVE LOW + FALSE + 0 + 50 Ohms + 1 + + DDR3_SDRAM/SODIMMs/MT8JTF12864HZ-1G6 + 1250 + 2.0V + 4:1 + 200 + 0 + 800 + 1.000 + 1 + 1 + 1 + 1 + 64 + 1 + 1 + Disabled + Normal + 4 + FALSE + + 14 + 10 + 3 + 1.5V + BANK_ROW_COLUMN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8 - Fixed + Sequential + 11 + Normal + No + Slow Exit + Enable + RZQ/7 + Disable + Enable + RZQ/6 + 0 + Disabled + Enabled + Output Buffer Enabled + Full Array + 8 + Enabled + Normal + Dynamic ODT off + NATIVE + + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/log.txt b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/log.txt new file mode 100644 index 0000000..48abee2 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/log.txt @@ -0,0 +1,139 @@ + Log file + +Generated by MIG MIG Version 4.0 +Coregen 14.7 - Build Number P_INT.20170217 on ?? 7? 22 00:20:45 2017 + + +Creating the directory /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_designCreated the SDC file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/constraints/mig_7series_0.xdc Successfully +Created the OOC XDC file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/constraints/mig_7series_0_ooc.xdc SuccessfullyCreated the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_clk_ibuf.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_infrastructure.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_iodelay_ctrl.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_tempmon.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_mux.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_row_col.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_select.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_cntrl.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_common.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_compare.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_mach.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_queue.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_state.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_col_mach.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_mc.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_cntrl.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_common.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_mach.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_round_robin_arb.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_buf.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_dec_fix.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_gen.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_merge_enc.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_fi_xor.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ip_top/mig_7series_v4_0_mem_intfc.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ip_top/mig_7series_v4_0_memc_ui_top_std.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_byte_group_io.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_byte_lane.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_tempmon.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_calib_top.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_skip_calib_tap.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_if_post_fifo.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_mc_phy.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_mc_phy_wrapper.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_of_pre_fifo.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_4lanes.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ck_addr_cmd_delay.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_init.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_dqs_found_cal.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_dqs_found_cal_hr.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_oclkdelay_cal.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_prbs_rdlvl.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_rdlvl.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_top.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrcal.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrlvl.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrlvl_off_delay.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_prbs_gen.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_lim.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_top.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_mux.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_data.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_samp.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_edge.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_cntlr.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_po_cntlr.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_pd.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_tap_base.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_meta.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_edge_store.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_cc.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_cmd.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_rd_data.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_top.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_wr_data.v Successfully + ..Successful +Created the file - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/../docs/phy_only_support_readme.txt Successfully + ..SuccessfulCreated the Top Level File - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/mig_7series_0_temp.vCreated the Top Level File - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl/mig_7series_0_temp.vCreated the Top Level File - /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0_temp.veoThe design output files are located in /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/mig_7series_0/user_design/rtl and ..user_design/constraints for rtl & ucf files respectively. \ No newline at end of file diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v new file mode 100644 index 0000000..abaef2c --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v @@ -0,0 +1,1180 @@ +//***************************************************************************** +// (c) Copyright 2009 - 2013 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//***************************************************************************** +// ____ ____ +// / /\/ / +// /___/ \ / Vendor : Xilinx +// \ \ \/ Version : 4.0 +// \ \ Application : MIG +// / / Filename : mig_7series_0_mig.v +// /___/ /\ Date Last Modified : $Date: 2011/06/02 08:35:03 $ +// \ \ / \ Date Created : Tue Sept 21 2010 +// \___\/\___\ +// +// Device : 7 Series +// Design Name : DDR3 SDRAM +// Purpose : +// Top-level module. This module can be instantiated in the +// system and interconnect as shown in user design wrapper file (user top module). +// In addition to the memory controller, the module instantiates: +// 1. Clock generation/distribution, reset logic +// 2. IDELAY control block +// 3. Debug logic +// Reference : +// Revision History : +//***************************************************************************** + +//`define SKIP_CALIB +`timescale 1ps/1ps + +module mig_7series_0_mig # + ( + + //*************************************************************************** + // The following parameters refer to width of various ports + //*************************************************************************** + parameter BANK_WIDTH = 3, + // # of memory Bank Address bits. + parameter CK_WIDTH = 1, + // # of CK/CK# outputs to memory. + parameter COL_WIDTH = 10, + // # of memory Column Address bits. + parameter CS_WIDTH = 1, + // # of unique CS outputs to memory. + parameter nCS_PER_RANK = 1, + // # of unique CS outputs per rank for phy + parameter CKE_WIDTH = 1, + // # of CKE outputs to memory. + parameter DATA_BUF_ADDR_WIDTH = 5, + parameter DQ_CNT_WIDTH = 6, + // = ceil(log2(DQ_WIDTH)) + parameter DQ_PER_DM = 8, + parameter DM_WIDTH = 8, + // # of DM (data mask) + parameter DQ_WIDTH = 64, + // # of DQ (data) + parameter DQS_WIDTH = 8, + parameter DQS_CNT_WIDTH = 3, + // = ceil(log2(DQS_WIDTH)) + parameter DRAM_WIDTH = 8, + // # of DQ per DQS + parameter ECC = "OFF", + parameter DATA_WIDTH = 64, + parameter ECC_TEST = "OFF", + parameter PAYLOAD_WIDTH = (ECC_TEST == "OFF") ? DATA_WIDTH : DQ_WIDTH, + parameter MEM_ADDR_ORDER = "BANK_ROW_COLUMN", + //Possible Parameters + //1.BANK_ROW_COLUMN : Address mapping is + // in form of Bank Row Column. + //2.ROW_BANK_COLUMN : Address mapping is + // in the form of Row Bank Column. + //3.TG_TEST : Scrambles Address bits + // for distributed Addressing. + + //parameter nBANK_MACHS = 4, + parameter nBANK_MACHS = 4, + parameter RANKS = 1, + // # of Ranks. + parameter ODT_WIDTH = 1, + // # of ODT outputs to memory. + parameter ROW_WIDTH = 14, + // # of memory Row Address bits. + parameter ADDR_WIDTH = 28, + // # = RANK_WIDTH + BANK_WIDTH + // + ROW_WIDTH + COL_WIDTH; + // Chip Select is always tied to low for + // single rank devices + parameter USE_CS_PORT = 1, + // # = 1, When Chip Select (CS#) output is enabled + // = 0, When Chip Select (CS#) output is disabled + // If CS_N disabled, user must connect + // DRAM CS_N input(s) to ground + parameter USE_DM_PORT = 1, + // # = 1, When Data Mask option is enabled + // = 0, When Data Mask option is disbaled + // When Data Mask option is disabled in + // MIG Controller Options page, the logic + // related to Data Mask should not get + // synthesized + parameter USE_ODT_PORT = 1, + // # = 1, When ODT output is enabled + // = 0, When ODT output is disabled + // Parameter configuration for Dynamic ODT support: + // USE_ODT_PORT = 0, RTT_NOM = "DISABLED", RTT_WR = "60/120". + // This configuration allows to save ODT pin mapping from FPGA. + // The user can tie the ODT input of DRAM to HIGH. + parameter IS_CLK_SHARED = "FALSE", + // # = "true" when clock is shared + // = "false" when clock is not shared + + parameter PHY_CONTROL_MASTER_BANK = 1, + // The bank index where master PHY_CONTROL resides, + // equal to the PLL residing bank + parameter MEM_DENSITY = "1Gb", + // Indicates the density of the Memory part + // Added for the sake of Vivado simulations + parameter MEM_SPEEDGRADE = "125", + // Indicates the Speed grade of Memory Part + // Added for the sake of Vivado simulations + parameter MEM_DEVICE_WIDTH = 8, + // Indicates the device width of the Memory Part + // Added for the sake of Vivado simulations + + //*************************************************************************** + // The following parameters are mode register settings + //*************************************************************************** + parameter AL = "0", + // DDR3 SDRAM: + // Additive Latency (Mode Register 1). + // # = "0", "CL-1", "CL-2". + // DDR2 SDRAM: + // Additive Latency (Extended Mode Register). + parameter nAL = 0, + // # Additive Latency in number of clock + // cycles. + parameter BURST_MODE = "8", + // DDR3 SDRAM: + // Burst Length (Mode Register 0). + // # = "8", "4", "OTF". + // DDR2 SDRAM: + // Burst Length (Mode Register). + // # = "8", "4". + parameter BURST_TYPE = "SEQ", + // DDR3 SDRAM: Burst Type (Mode Register 0). + // DDR2 SDRAM: Burst Type (Mode Register). + // # = "SEQ" - (Sequential), + // = "INT" - (Interleaved). + parameter CL = 11, + // in number of clock cycles + // DDR3 SDRAM: CAS Latency (Mode Register 0). + // DDR2 SDRAM: CAS Latency (Mode Register). + parameter CWL = 8, + // in number of clock cycles + // DDR3 SDRAM: CAS Write Latency (Mode Register 2). + // DDR2 SDRAM: Can be ignored + parameter OUTPUT_DRV = "HIGH", + // Output Driver Impedance Control (Mode Register 1). + // # = "HIGH" - RZQ/7, + // = "LOW" - RZQ/6. + parameter RTT_NOM = "40", + // RTT_NOM (ODT) (Mode Register 1). + // = "120" - RZQ/2, + // = "60" - RZQ/4, + // = "40" - RZQ/6. + parameter RTT_WR = "OFF", + // RTT_WR (ODT) (Mode Register 2). + // # = "OFF" - Dynamic ODT off, + // = "120" - RZQ/2, + // = "60" - RZQ/4, + parameter ADDR_CMD_MODE = "1T" , + // # = "1T", "2T". + parameter REG_CTRL = "OFF", + // # = "ON" - RDIMMs, + // = "OFF" - Components, SODIMMs, UDIMMs. + parameter CA_MIRROR = "OFF", + // C/A mirror opt for DDR3 dual rank + + parameter VDD_OP_VOLT = "150", + // # = "150" - 1.5V Vdd Memory part + // = "135" - 1.35V Vdd Memory part + + + //*************************************************************************** + // The following parameters are multiplier and divisor factors for PLLE2. + // Based on the selected design frequency these parameters vary. + //*************************************************************************** + parameter CLKIN_PERIOD = 5000, + // Input Clock Period + parameter CLKFBOUT_MULT = 8, + // write PLL VCO multiplier + parameter DIVCLK_DIVIDE = 1, + // write PLL VCO divisor + parameter CLKOUT0_PHASE = 337.5, + // Phase for PLL output clock (CLKOUT0) + parameter CLKOUT0_DIVIDE = 2, + // VCO output divisor for PLL output clock (CLKOUT0) + parameter CLKOUT1_DIVIDE = 2, + // VCO output divisor for PLL output clock (CLKOUT1) + parameter CLKOUT2_DIVIDE = 32, + // VCO output divisor for PLL output clock (CLKOUT2) + parameter CLKOUT3_DIVIDE = 8, + // VCO output divisor for PLL output clock (CLKOUT3) + parameter MMCM_VCO = 800, + // Max Freq (MHz) of MMCM VCO + parameter MMCM_MULT_F = 4, + // write MMCM VCO multiplier + parameter MMCM_DIVCLK_DIVIDE = 1, + // write MMCM VCO divisor + + //*************************************************************************** + // Memory Timing Parameters. These parameters varies based on the selected + // memory part. + //*************************************************************************** + parameter tCKE = 5000, + // memory tCKE paramter in pS + parameter tFAW = 30000, + // memory tRAW paramter in pS. + parameter tPRDI = 1_000_000, + // memory tPRDI paramter in pS. + parameter tRAS = 35000, + // memory tRAS paramter in pS. + parameter tRCD = 13750, + // memory tRCD paramter in pS. + parameter tREFI = 7800000, + // memory tREFI paramter in pS. + parameter tRFC = 110000, + // memory tRFC paramter in pS. + parameter tRP = 13750, + // memory tRP paramter in pS. + parameter tRRD = 6000, + // memory tRRD paramter in pS. + parameter tRTP = 7500, + // memory tRTP paramter in pS. + parameter tWTR = 7500, + // memory tWTR paramter in pS. + parameter tZQI = 128_000_000, + // memory tZQI paramter in nS. + parameter tZQCS = 64,//64, + // memory tZQCS paramter in clock cycles. + + //*************************************************************************** + // Simulation parameters + //*************************************************************************** + parameter SIM_BYPASS_INIT_CAL = "FAST", + // # = "OFF" - Complete memory init & + // calibration sequence + // # = "SKIP" - Not supported + // # = "FAST" - Complete memory init & use + // abbreviated calib sequence + + parameter SIMULATION = "TRUE", + // Should be TRUE during design simulations and + // FALSE during implementations + + //*************************************************************************** + // The following parameters varies based on the pin out entered in MIG GUI. + // Do not change any of these parameters directly by editing the RTL. + // Any changes required should be done through GUI and the design regenerated. + //*************************************************************************** + parameter BYTE_LANES_B0 = 4'b0111, + // Byte lanes used in an IO column. + parameter BYTE_LANES_B1 = 4'b1111, + // Byte lanes used in an IO column. + parameter BYTE_LANES_B2 = 4'b1111, + // Byte lanes used in an IO column. + parameter BYTE_LANES_B3 = 4'b0000, + // Byte lanes used in an IO column. + parameter BYTE_LANES_B4 = 4'b0000, + // Byte lanes used in an IO column. + parameter DATA_CTL_B0 = 4'b0111, + // Indicates Byte lane is data byte lane + // or control Byte lane. '1' in a bit + // position indicates a data byte lane and + // a '0' indicates a control byte lane + parameter DATA_CTL_B1 = 4'b0001, + // Indicates Byte lane is data byte lane + // or control Byte lane. '1' in a bit + // position indicates a data byte lane and + // a '0' indicates a control byte lane + parameter DATA_CTL_B2 = 4'b1111, + // Indicates Byte lane is data byte lane + // or control Byte lane. '1' in a bit + // position indicates a data byte lane and + // a '0' indicates a control byte lane + parameter DATA_CTL_B3 = 4'b0000, + // Indicates Byte lane is data byte lane + // or control Byte lane. '1' in a bit + // position indicates a data byte lane and + // a '0' indicates a control byte lane + parameter DATA_CTL_B4 = 4'b0000, + // Indicates Byte lane is data byte lane + // or control Byte lane. '1' in a bit + // position indicates a data byte lane and + // a '0' indicates a control byte lane + parameter PHY_0_BITLANES = 48'h000_1FF_3FE_2FF, + parameter PHY_1_BITLANES = 48'h7D4_BF0_8FF_2FF, + parameter PHY_2_BITLANES = 48'h3FE_1FF_1FF_2FF, + + // control/address/data pin mapping parameters + parameter CK_BYTE_MAP + = 144'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12, + parameter ADDR_MAP + = 192'h000_000_138_12B_134_112_11B_139_116_117_132_126_136_127_137_125, + parameter BANK_MAP = 36'h13A_111_115, + parameter CAS_MAP = 12'h113, + parameter CKE_ODT_BYTE_MAP = 8'h00, + parameter CKE_MAP = 96'h000_000_000_000_000_000_000_124, + parameter ODT_MAP = 96'h000_000_000_000_000_000_000_110, + parameter CS_MAP = 120'h000_000_000_000_000_000_000_000_000_129, + parameter PARITY_MAP = 12'h000, + parameter RAS_MAP = 12'h128, + parameter WE_MAP = 12'h114, + parameter DQS_BYTE_MAP + = 144'h00_00_00_00_00_00_00_00_00_00_00_01_02_10_20_21_22_23, + parameter DATA0_MAP = 96'h231_232_235_236_239_233_234_237, + parameter DATA1_MAP = 96'h220_221_225_224_222_227_223_226, + parameter DATA2_MAP = 96'h214_210_216_217_218_215_213_212, + parameter DATA3_MAP = 96'h209_204_202_201_207_206_203_200, + parameter DATA4_MAP = 96'h109_107_103_105_106_100_102_104, + parameter DATA5_MAP = 96'h023_022_024_027_028_025_021_020, + parameter DATA6_MAP = 96'h011_016_012_013_019_015_018_017, + parameter DATA7_MAP = 96'h003_009_004_001_002_000_007_006, + parameter DATA8_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA9_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA10_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA11_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA12_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA13_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA14_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA15_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA16_MAP = 96'h000_000_000_000_000_000_000_000, + parameter DATA17_MAP = 96'h000_000_000_000_000_000_000_000, + parameter MASK0_MAP = 108'h000_005_014_026_101_205_211_228_238, + parameter MASK1_MAP = 108'h000_000_000_000_000_000_000_000_000, + + parameter SLOT_0_CONFIG = 8'b0000_0001, + // Mapping of Ranks. + parameter SLOT_1_CONFIG = 8'b0000_0000, + // Mapping of Ranks. + + //*************************************************************************** + // IODELAY and PHY related parameters + //*************************************************************************** + parameter IBUF_LPWR_MODE = "OFF", + // to phy_top + parameter DATA_IO_IDLE_PWRDWN = "ON", + // # = "ON", "OFF" + parameter BANK_TYPE = "HP_IO", + // # = "HP_IO", "HPL_IO", "HR_IO", "HRL_IO" + parameter DATA_IO_PRIM_TYPE = "HP_LP", + // # = "HP_LP", "HR_LP", "DEFAULT" + parameter CKE_ODT_AUX = "FALSE", + parameter USER_REFRESH = "OFF", + parameter WRLVL = "ON", + // # = "ON" - DDR3 SDRAM + // = "OFF" - DDR2 SDRAM. + parameter ORDERING = "NORM", + // # = "NORM", "STRICT", "RELAXED". + parameter CALIB_ROW_ADD = 16'h0000, + // Calibration row address will be used for + // calibration read and write operations + parameter CALIB_COL_ADD = 12'h000, + // Calibration column address will be used for + // calibration read and write operations + parameter CALIB_BA_ADD = 3'h0, + // Calibration bank address will be used for + // calibration read and write operations + parameter TCQ = 100, + parameter IDELAY_ADJ = "ON", + parameter FINE_PER_BIT = "ON", + parameter CENTER_COMP_MODE = "ON", + parameter PI_VAL_ADJ = "ON", + parameter IODELAY_GRP0 = "MIG_7SERIES_0_IODELAY_MIG0", + // It is associated to a set of IODELAYs with + // an IDELAYCTRL that have same IODELAY CONTROLLER + // clock frequency (200MHz). + parameter IODELAY_GRP1 = "MIG_7SERIES_0_IODELAY_MIG1", + // It is associated to a set of IODELAYs with + // an IDELAYCTRL that have same IODELAY CONTROLLER + // clock frequency (300MHz/400MHz). + parameter SYSCLK_TYPE = "NO_BUFFER", + // System clock type DIFFERENTIAL, SINGLE_ENDED, + // NO_BUFFER + parameter REFCLK_TYPE = "USE_SYSTEM_CLOCK", + // Reference clock type DIFFERENTIAL, SINGLE_ENDED, + // NO_BUFFER, USE_SYSTEM_CLOCK + parameter SYS_RST_PORT = "FALSE", + // "TRUE" - if pin is selected for sys_rst + // and IBUF will be instantiated. + // "FALSE" - if pin is not selected for sys_rst + parameter FPGA_SPEED_GRADE = 2, + // FPGA speed grade + + parameter CMD_PIPE_PLUS1 = "ON", + // add pipeline stage between MC and PHY + parameter DRAM_TYPE = "DDR3", + parameter CAL_WIDTH = "HALF", + parameter STARVE_LIMIT = 2, + // # = 2,3,4. + parameter REF_CLK_MMCM_IODELAY_CTRL = "TRUE", + + + //*************************************************************************** + // Referece clock frequency parameters + //*************************************************************************** + parameter REFCLK_FREQ = 200.0, + // IODELAYCTRL reference clock frequency + parameter DIFF_TERM_REFCLK = "TRUE", + // Differential Termination for idelay + // reference clock input pins + //*************************************************************************** + // System clock frequency parameters + //*************************************************************************** + parameter tCK = 1250, + // memory tCK paramter. + // # = Clock Period in pS. + parameter nCK_PER_CLK = 4, + // # of memory CKs per fabric CLK + + parameter DIFF_TERM_SYSCLK = "TRUE", + // Differential Termination for System + // clock input pins + + + + + //*************************************************************************** + // Debug parameters + //*************************************************************************** + parameter DEBUG_PORT = "OFF", + // # = "ON" Enable debug signals/controls. + // = "OFF" Disable debug signals/controls. + + //*************************************************************************** + // Temparature monitor parameter + //*************************************************************************** + parameter TEMP_MON_CONTROL = "INTERNAL", + // # = "INTERNAL", "EXTERNAL" + //*************************************************************************** + // FPGA Voltage Type parameter + //*************************************************************************** + parameter FPGA_VOLT_TYPE = "N", + // # = "L", "N". When FPGA VccINT is 0.9v, + // the value is "L", else it is "N" + + parameter RST_ACT_LOW = 1 + // =1 for active low reset, + // =0 for active high. + ) + ( + + // Inouts + inout [DQ_WIDTH-1:0] ddr3_dq, + inout [DQS_WIDTH-1:0] ddr3_dqs_n, + inout [DQS_WIDTH-1:0] ddr3_dqs_p, + + // Outputs + output [ROW_WIDTH-1:0] ddr3_addr, + output [BANK_WIDTH-1:0] ddr3_ba, + output ddr3_ras_n, + output ddr3_cas_n, + output ddr3_we_n, + output ddr3_reset_n, + output [CK_WIDTH-1:0] ddr3_ck_p, + output [CK_WIDTH-1:0] ddr3_ck_n, + output [CKE_WIDTH-1:0] ddr3_cke, + + output [(CS_WIDTH*nCS_PER_RANK)-1:0] ddr3_cs_n, + + output [DM_WIDTH-1:0] ddr3_dm, + + output [ODT_WIDTH-1:0] ddr3_odt, + + + // Inputs + + // Single-ended system clock + input sys_clk_i, + + + // user interface signals + input [ADDR_WIDTH-1:0] app_addr, + input [2:0] app_cmd, + input app_en, + input [(nCK_PER_CLK*2*PAYLOAD_WIDTH)-1:0] app_wdf_data, + input app_wdf_end, + input [((nCK_PER_CLK*2*PAYLOAD_WIDTH)/8)-1:0] app_wdf_mask, + input app_wdf_wren, + output [(nCK_PER_CLK*2*PAYLOAD_WIDTH)-1:0] app_rd_data, + output app_rd_data_end, + output app_rd_data_valid, + output app_rdy, + output app_wdf_rdy, + input app_sr_req, + input app_ref_req, + input app_zq_req, + output app_sr_active, + output app_ref_ack, + output app_zq_ack, + output ui_clk, + output ui_clk_sync_rst, + + + + + output init_calib_complete, + + output [11:0] device_temp, +`ifdef SKIP_CALIB + output calib_tap_req, + input calib_tap_load, + input [6:0] calib_tap_addr, + input [7:0] calib_tap_val, + input calib_tap_load_done, +`endif + + + // System reset - Default polarity of sys_rst pin is Active Low. + // System reset polarity will change based on the option + // selected in GUI. + input sys_rst + ); + + function integer clogb2 (input integer size); + begin + size = size - 1; + for (clogb2=1; size>1; clogb2=clogb2+1) + size = size >> 1; + end + endfunction // clogb2 + + + localparam BM_CNT_WIDTH = clogb2(nBANK_MACHS); + localparam RANK_WIDTH = clogb2(RANKS); + + localparam ECC_WIDTH = (ECC == "OFF")? + 0 : (DATA_WIDTH <= 4)? + 4 : (DATA_WIDTH <= 10)? + 5 : (DATA_WIDTH <= 26)? + 6 : (DATA_WIDTH <= 57)? + 7 : (DATA_WIDTH <= 120)? + 8 : (DATA_WIDTH <= 247)? + 9 : 10; + localparam DATA_BUF_OFFSET_WIDTH = 1; + localparam MC_ERR_ADDR_WIDTH = ((CS_WIDTH == 1) ? 0 : RANK_WIDTH) + + BANK_WIDTH + ROW_WIDTH + COL_WIDTH + + DATA_BUF_OFFSET_WIDTH; + + localparam APP_DATA_WIDTH = 2 * nCK_PER_CLK * PAYLOAD_WIDTH; + localparam APP_MASK_WIDTH = APP_DATA_WIDTH / 8; + localparam TEMP_MON_EN = (SIMULATION == "TRUE") ? "ON" : "OFF"; + // Enable or disable the temp monitor module + localparam tTEMPSAMPLE = 10000000; // sample every 10 us + localparam XADC_CLK_PERIOD = 5000; // Use 200 MHz IODELAYCTRL clock + `ifdef SKIP_CALIB + localparam SKIP_CALIB = "TRUE"; + `else + localparam SKIP_CALIB = "FALSE"; + `endif + + + localparam TAPSPERKCLK = (56*MMCM_MULT_F)/nCK_PER_CLK; + + + // Wire declarations + + wire [BM_CNT_WIDTH-1:0] bank_mach_next; + wire clk; + wire [1:0] clk_ref; + wire [1:0] iodelay_ctrl_rdy; + wire clk_ref_in; + wire sys_rst_o; + wire clk_div2; + wire rst_div2; + wire freq_refclk ; + wire mem_refclk ; + wire pll_lock ; + wire sync_pulse; + wire mmcm_ps_clk; + wire poc_sample_pd; + wire psen; + wire psincdec; + wire psdone; + wire iddr_rst; + wire ref_dll_lock; + wire rst_phaser_ref; + wire pll_locked; + + wire rst; + + wire [(2*nCK_PER_CLK)-1:0] app_ecc_multiple_err; + wire [(2*nCK_PER_CLK)-1:0] app_ecc_single_err; + wire ddr3_parity; + + + wire sys_clk_p; + wire sys_clk_n; + wire mmcm_clk; + wire clk_ref_p; + wire clk_ref_n; + wire clk_ref_i; + wire [11:0] device_temp_i; + + // Debug port signals + wire dbg_idel_down_all; + wire dbg_idel_down_cpt; + wire dbg_idel_up_all; + wire dbg_idel_up_cpt; + wire dbg_sel_all_idel_cpt; + wire [DQS_CNT_WIDTH-1:0] dbg_sel_idel_cpt; + wire dbg_sel_pi_incdec; + wire [DQS_CNT_WIDTH:0] dbg_byte_sel; + wire dbg_pi_f_inc; + wire dbg_pi_f_dec; + wire [5:0] dbg_pi_counter_read_val; + wire [8:0] dbg_po_counter_read_val; + + wire [(6*DQS_WIDTH*RANKS)-1:0] dbg_cpt_tap_cnt; + wire [(5*DQS_WIDTH*RANKS)-1:0] dbg_dq_idelay_tap_cnt; + wire [255:0] dbg_calib_top; + wire [(6*DQS_WIDTH*RANKS)-1:0] dbg_cpt_first_edge_cnt; + wire [(6*DQS_WIDTH*RANKS)-1:0] dbg_cpt_second_edge_cnt; + wire [(6*RANKS)-1:0] dbg_rd_data_offset; + wire [255:0] dbg_phy_rdlvl; + wire [99:0] dbg_phy_wrcal; + wire [(6*DQS_WIDTH)-1:0] dbg_final_po_fine_tap_cnt; + wire [(3*DQS_WIDTH)-1:0] dbg_final_po_coarse_tap_cnt; + wire [255:0] dbg_phy_wrlvl; + wire [255:0] dbg_phy_init; + wire [255:0] dbg_prbs_rdlvl; + wire [255:0] dbg_dqs_found_cal; + wire dbg_pi_phaselock_start; + wire dbg_pi_phaselocked_done; + wire dbg_pi_phaselock_err; + wire dbg_pi_dqsfound_start; + wire dbg_pi_dqsfound_done; + wire dbg_pi_dqsfound_err; + wire dbg_wrcal_start; + wire dbg_wrcal_done; + wire dbg_wrcal_err; + wire [11:0] dbg_pi_dqs_found_lanes_phy4lanes; + wire [11:0] dbg_pi_phase_locked_phy4lanes; + wire dbg_oclkdelay_calib_start; + wire dbg_oclkdelay_calib_done; + wire [255:0] dbg_phy_oclkdelay_cal; + wire [(DRAM_WIDTH*16)-1:0] dbg_oclkdelay_rd_data; + wire [DQS_WIDTH-1:0] dbg_rd_data_edge_detect; + wire [(2*nCK_PER_CLK*DQ_WIDTH)-1:0] dbg_rddata; + wire dbg_rddata_valid; + wire [1:0] dbg_rdlvl_done; + wire [1:0] dbg_rdlvl_err; + wire [1:0] dbg_rdlvl_start; + wire [(6*DQS_WIDTH)-1:0] dbg_wrlvl_fine_tap_cnt; + wire [(3*DQS_WIDTH)-1:0] dbg_wrlvl_coarse_tap_cnt; + wire [5:0] dbg_tap_cnt_during_wrlvl; + wire dbg_wl_edge_detect_valid; + wire dbg_wrlvl_done; + wire dbg_wrlvl_err; + wire dbg_wrlvl_start; + reg [63:0] dbg_rddata_r; + reg dbg_rddata_valid_r; + wire [53:0] ocal_tap_cnt; + wire [4:0] dbg_dqs; + wire [8:0] dbg_bit; + wire [8:0] rd_data_edge_detect_r; + wire [53:0] wl_po_fine_cnt; + wire [26:0] wl_po_coarse_cnt; + wire [(6*RANKS)-1:0] dbg_calib_rd_data_offset_1; + wire [(6*RANKS)-1:0] dbg_calib_rd_data_offset_2; + wire [5:0] dbg_data_offset; + wire [5:0] dbg_data_offset_1; + wire [5:0] dbg_data_offset_2; + + wire [390:0] ddr3_ila_wrpath_int; + wire [1023:0] ddr3_ila_rdpath_int; + wire [119:0] ddr3_ila_basic_int; + wire [(6*DQS_WIDTH*RANKS)-1:0] dbg_prbs_final_dqs_tap_cnt_r_int; + wire [(6*DQS_WIDTH*RANKS)-1:0] dbg_prbs_first_edge_taps_int; + wire [(6*DQS_WIDTH*RANKS)-1:0] dbg_prbs_second_edge_taps_int; + + +//*************************************************************************** + + + + assign ui_clk = clk; + assign ui_clk_sync_rst = rst; + + assign sys_clk_p = 1'b0; + assign sys_clk_n = 1'b0; + assign clk_ref_i = 1'b0; + + + generate + if (REFCLK_TYPE == "USE_SYSTEM_CLOCK") + assign clk_ref_in = mmcm_clk; + else + assign clk_ref_in = clk_ref_i; + endgenerate + + mig_7series_v4_0_iodelay_ctrl # + ( + .TCQ (TCQ), + .IODELAY_GRP0 (IODELAY_GRP0), + .IODELAY_GRP1 (IODELAY_GRP1), + .REFCLK_TYPE (REFCLK_TYPE), + .SYSCLK_TYPE (SYSCLK_TYPE), + .SYS_RST_PORT (SYS_RST_PORT), + .RST_ACT_LOW (RST_ACT_LOW), + .DIFF_TERM_REFCLK (DIFF_TERM_REFCLK), + .FPGA_SPEED_GRADE (FPGA_SPEED_GRADE), + .REF_CLK_MMCM_IODELAY_CTRL (REF_CLK_MMCM_IODELAY_CTRL) + ) + u_iodelay_ctrl + ( + // Outputs + .iodelay_ctrl_rdy (iodelay_ctrl_rdy), + .sys_rst_o (sys_rst_o), + .clk_ref (clk_ref), + // Inputs + .clk_ref_p (clk_ref_p), + .clk_ref_n (clk_ref_n), + .clk_ref_i (clk_ref_in), + .sys_rst (sys_rst) + ); + mig_7series_v4_0_clk_ibuf # + ( + .SYSCLK_TYPE (SYSCLK_TYPE), + .DIFF_TERM_SYSCLK (DIFF_TERM_SYSCLK) + ) + u_ddr3_clk_ibuf + ( + .sys_clk_p (sys_clk_p), + .sys_clk_n (sys_clk_n), + .sys_clk_i (sys_clk_i), + .mmcm_clk (mmcm_clk) + ); + // Temperature monitoring logic + + generate + if (TEMP_MON_EN == "ON") begin: temp_mon_enabled + + mig_7series_v4_0_tempmon # + ( + .TCQ (TCQ), + .TEMP_MON_CONTROL (TEMP_MON_CONTROL), + .XADC_CLK_PERIOD (XADC_CLK_PERIOD), + .tTEMPSAMPLE (tTEMPSAMPLE) + ) + u_tempmon + ( + .clk (clk), + .xadc_clk (clk_ref[0]), + .rst (rst), + .device_temp_i (device_temp_i), + .device_temp (device_temp) + ); + end else begin: temp_mon_disabled + + assign device_temp = 'b0; + + end + endgenerate + + mig_7series_v4_0_infrastructure # + ( + .TCQ (TCQ), + .nCK_PER_CLK (nCK_PER_CLK), + .CLKIN_PERIOD (CLKIN_PERIOD), + .SYSCLK_TYPE (SYSCLK_TYPE), + .CLKFBOUT_MULT (CLKFBOUT_MULT), + .DIVCLK_DIVIDE (DIVCLK_DIVIDE), + .CLKOUT0_PHASE (CLKOUT0_PHASE), + .CLKOUT0_DIVIDE (CLKOUT0_DIVIDE), + .CLKOUT1_DIVIDE (CLKOUT1_DIVIDE), + .CLKOUT2_DIVIDE (CLKOUT2_DIVIDE), + .CLKOUT3_DIVIDE (CLKOUT3_DIVIDE), + .MMCM_VCO (MMCM_VCO), + .MMCM_MULT_F (MMCM_MULT_F), + .MMCM_DIVCLK_DIVIDE (MMCM_DIVCLK_DIVIDE), + .RST_ACT_LOW (RST_ACT_LOW), + .tCK (tCK), + .MEM_TYPE (DRAM_TYPE) + ) + u_ddr3_infrastructure + ( + // Outputs + .rstdiv0 (rst), + .clk (clk), + .clk_div2 (clk_div2), + .rst_div2 (rst_div2), + .mem_refclk (mem_refclk), + .freq_refclk (freq_refclk), + .sync_pulse (sync_pulse), + .mmcm_ps_clk (mmcm_ps_clk), + .poc_sample_pd (poc_sample_pd), + .psdone (psdone), + .iddr_rst (iddr_rst), +// .auxout_clk (), + .ui_addn_clk_0 (), + .ui_addn_clk_1 (), + .ui_addn_clk_2 (), + .ui_addn_clk_3 (), + .ui_addn_clk_4 (), + .pll_locked (pll_locked), + .mmcm_locked (), + .rst_phaser_ref (rst_phaser_ref), + // Inputs + .psen (psen), + .psincdec (psincdec), + .mmcm_clk (mmcm_clk), + .sys_rst (sys_rst_o), + .iodelay_ctrl_rdy (iodelay_ctrl_rdy), + .ref_dll_lock (ref_dll_lock) + ); + + + mig_7series_v4_0_memc_ui_top_std # + ( + .TCQ (TCQ), + .ADDR_CMD_MODE (ADDR_CMD_MODE), + .AL (AL), + .PAYLOAD_WIDTH (PAYLOAD_WIDTH), + .BANK_WIDTH (BANK_WIDTH), + .BM_CNT_WIDTH (BM_CNT_WIDTH), + .BURST_MODE (BURST_MODE), + .BURST_TYPE (BURST_TYPE), + .CA_MIRROR (CA_MIRROR), + .DDR3_VDD_OP_VOLT (VDD_OP_VOLT), + .CK_WIDTH (CK_WIDTH), + .COL_WIDTH (COL_WIDTH), + .CMD_PIPE_PLUS1 (CMD_PIPE_PLUS1), + .CS_WIDTH (CS_WIDTH), + .nCS_PER_RANK (nCS_PER_RANK), + .CKE_WIDTH (CKE_WIDTH), + .DATA_WIDTH (DATA_WIDTH), + .DATA_BUF_ADDR_WIDTH (DATA_BUF_ADDR_WIDTH), + .DM_WIDTH (DM_WIDTH), + .DQ_CNT_WIDTH (DQ_CNT_WIDTH), + .DQ_WIDTH (DQ_WIDTH), + .DQS_CNT_WIDTH (DQS_CNT_WIDTH), + .DQS_WIDTH (DQS_WIDTH), + .DRAM_TYPE (DRAM_TYPE), + .DRAM_WIDTH (DRAM_WIDTH), + .ECC (ECC), + .ECC_WIDTH (ECC_WIDTH), + .ECC_TEST (ECC_TEST), + .MC_ERR_ADDR_WIDTH (MC_ERR_ADDR_WIDTH), + .REFCLK_FREQ (REFCLK_FREQ), + .nAL (nAL), + .nBANK_MACHS (nBANK_MACHS), + .CKE_ODT_AUX (CKE_ODT_AUX), + .nCK_PER_CLK (nCK_PER_CLK), + .ORDERING (ORDERING), + .OUTPUT_DRV (OUTPUT_DRV), + .IBUF_LPWR_MODE (IBUF_LPWR_MODE), + .DATA_IO_IDLE_PWRDWN (DATA_IO_IDLE_PWRDWN), + .BANK_TYPE (BANK_TYPE), + .DATA_IO_PRIM_TYPE (DATA_IO_PRIM_TYPE), + .IODELAY_GRP0 (IODELAY_GRP0), + .IODELAY_GRP1 (IODELAY_GRP1), + .FPGA_SPEED_GRADE (FPGA_SPEED_GRADE), + .REG_CTRL (REG_CTRL), + .RTT_NOM (RTT_NOM), + .RTT_WR (RTT_WR), + .CL (CL), + .CWL (CWL), + .tCK (tCK), + .tCKE (tCKE), + .tFAW (tFAW), + .tPRDI (tPRDI), + .tRAS (tRAS), + .tRCD (tRCD), + .tREFI (tREFI), + .tRFC (tRFC), + .tRP (tRP), + .tRRD (tRRD), + .tRTP (tRTP), + .tWTR (tWTR), + .tZQI (tZQI), + .tZQCS (tZQCS), + .USER_REFRESH (USER_REFRESH), + .TEMP_MON_EN (TEMP_MON_EN), + .WRLVL (WRLVL), + .DEBUG_PORT (DEBUG_PORT), + .CAL_WIDTH (CAL_WIDTH), + .RANK_WIDTH (RANK_WIDTH), + .RANKS (RANKS), + .ODT_WIDTH (ODT_WIDTH), + .ROW_WIDTH (ROW_WIDTH), + .ADDR_WIDTH (ADDR_WIDTH), + .APP_DATA_WIDTH (APP_DATA_WIDTH), + .APP_MASK_WIDTH (APP_MASK_WIDTH), + .SIM_BYPASS_INIT_CAL (SIM_BYPASS_INIT_CAL), + .BYTE_LANES_B0 (BYTE_LANES_B0), + .BYTE_LANES_B1 (BYTE_LANES_B1), + .BYTE_LANES_B2 (BYTE_LANES_B2), + .BYTE_LANES_B3 (BYTE_LANES_B3), + .BYTE_LANES_B4 (BYTE_LANES_B4), + .DATA_CTL_B0 (DATA_CTL_B0), + .DATA_CTL_B1 (DATA_CTL_B1), + .DATA_CTL_B2 (DATA_CTL_B2), + .DATA_CTL_B3 (DATA_CTL_B3), + .DATA_CTL_B4 (DATA_CTL_B4), + .PHY_0_BITLANES (PHY_0_BITLANES), + .PHY_1_BITLANES (PHY_1_BITLANES), + .PHY_2_BITLANES (PHY_2_BITLANES), + .CK_BYTE_MAP (CK_BYTE_MAP), + .ADDR_MAP (ADDR_MAP), + .BANK_MAP (BANK_MAP), + .CAS_MAP (CAS_MAP), + .CKE_ODT_BYTE_MAP (CKE_ODT_BYTE_MAP), + .CKE_MAP (CKE_MAP), + .ODT_MAP (ODT_MAP), + .CS_MAP (CS_MAP), + .PARITY_MAP (PARITY_MAP), + .RAS_MAP (RAS_MAP), + .WE_MAP (WE_MAP), + .DQS_BYTE_MAP (DQS_BYTE_MAP), + .DATA0_MAP (DATA0_MAP), + .DATA1_MAP (DATA1_MAP), + .DATA2_MAP (DATA2_MAP), + .DATA3_MAP (DATA3_MAP), + .DATA4_MAP (DATA4_MAP), + .DATA5_MAP (DATA5_MAP), + .DATA6_MAP (DATA6_MAP), + .DATA7_MAP (DATA7_MAP), + .DATA8_MAP (DATA8_MAP), + .DATA9_MAP (DATA9_MAP), + .DATA10_MAP (DATA10_MAP), + .DATA11_MAP (DATA11_MAP), + .DATA12_MAP (DATA12_MAP), + .DATA13_MAP (DATA13_MAP), + .DATA14_MAP (DATA14_MAP), + .DATA15_MAP (DATA15_MAP), + .DATA16_MAP (DATA16_MAP), + .DATA17_MAP (DATA17_MAP), + .MASK0_MAP (MASK0_MAP), + .MASK1_MAP (MASK1_MAP), + .CALIB_ROW_ADD (CALIB_ROW_ADD), + .CALIB_COL_ADD (CALIB_COL_ADD), + .CALIB_BA_ADD (CALIB_BA_ADD), + .IDELAY_ADJ (IDELAY_ADJ), + .FINE_PER_BIT (FINE_PER_BIT), + .CENTER_COMP_MODE (CENTER_COMP_MODE), + .PI_VAL_ADJ (PI_VAL_ADJ), + .SLOT_0_CONFIG (SLOT_0_CONFIG), + .SLOT_1_CONFIG (SLOT_1_CONFIG), + .MEM_ADDR_ORDER (MEM_ADDR_ORDER), + .STARVE_LIMIT (STARVE_LIMIT), + .USE_CS_PORT (USE_CS_PORT), + .USE_DM_PORT (USE_DM_PORT), + .USE_ODT_PORT (USE_ODT_PORT), + .MASTER_PHY_CTL (PHY_CONTROL_MASTER_BANK), + .TAPSPERKCLK (TAPSPERKCLK), + .SKIP_CALIB (SKIP_CALIB), + .FPGA_VOLT_TYPE (FPGA_VOLT_TYPE) + ) + u_memc_ui_top_std + ( + .clk (clk), + .clk_div2 (clk_div2), + .rst_div2 (rst_div2), + .clk_ref (clk_ref), + .mem_refclk (mem_refclk), //memory clock + .freq_refclk (freq_refclk), + .pll_lock (pll_locked), + .sync_pulse (sync_pulse), + .mmcm_ps_clk (mmcm_ps_clk), + .poc_sample_pd (poc_sample_pd), + .psdone (psdone), + .iddr_rst (iddr_rst), + .psen (psen), + .psincdec (psincdec), + .rst (rst), + .rst_phaser_ref (rst_phaser_ref), + .ref_dll_lock (ref_dll_lock), + +// Memory interface ports + .ddr_dq (ddr3_dq), + .ddr_dqs_n (ddr3_dqs_n), + .ddr_dqs (ddr3_dqs_p), + .ddr_addr (ddr3_addr), + .ddr_ba (ddr3_ba), + .ddr_cas_n (ddr3_cas_n), + .ddr_ck_n (ddr3_ck_n), + .ddr_ck (ddr3_ck_p), + .ddr_cke (ddr3_cke), + .ddr_cs_n (ddr3_cs_n), + .ddr_dm (ddr3_dm), + .ddr_odt (ddr3_odt), + .ddr_ras_n (ddr3_ras_n), + .ddr_reset_n (ddr3_reset_n), + .ddr_parity (ddr3_parity), + .ddr_we_n (ddr3_we_n), + .bank_mach_next (bank_mach_next), + +// Application interface ports + .app_addr (app_addr), + .app_cmd (app_cmd), + .app_en (app_en), + .app_hi_pri (1'b0), + .app_wdf_data (app_wdf_data), + .app_wdf_end (app_wdf_end), + .app_wdf_mask (app_wdf_mask), + .app_wdf_wren (app_wdf_wren), + .app_ecc_multiple_err (app_ecc_multiple_err), + .app_ecc_single_err (app_ecc_single_err), + .app_rd_data (app_rd_data), + .app_rd_data_end (app_rd_data_end), + .app_rd_data_valid (app_rd_data_valid), + .app_rdy (app_rdy), + .app_wdf_rdy (app_wdf_rdy), + .app_sr_req (app_sr_req), + .app_sr_active (app_sr_active), + .app_ref_req (app_ref_req), + .app_ref_ack (app_ref_ack), + .app_zq_req (app_zq_req), + .app_zq_ack (app_zq_ack), + .app_raw_not_ecc ({2*nCK_PER_CLK{1'b0}}), + .app_correct_en_i (1'b1), + + .device_temp (device_temp), + + // skip calibration ports + `ifdef SKIP_CALIB + .calib_tap_req (calib_tap_req), + .calib_tap_load (calib_tap_load), + .calib_tap_addr (calib_tap_addr), + .calib_tap_val (calib_tap_val), + .calib_tap_load_done (calib_tap_load_done), + `else + .calib_tap_req (), + .calib_tap_load (1'b0), + .calib_tap_addr (7'b0), + .calib_tap_val (8'b0), + .calib_tap_load_done (1'b0), + `endif + +// Debug logic ports + .dbg_idel_up_all (dbg_idel_up_all), + .dbg_idel_down_all (dbg_idel_down_all), + .dbg_idel_up_cpt (dbg_idel_up_cpt), + .dbg_idel_down_cpt (dbg_idel_down_cpt), + .dbg_sel_idel_cpt (dbg_sel_idel_cpt), + .dbg_sel_all_idel_cpt (dbg_sel_all_idel_cpt), + .dbg_sel_pi_incdec (dbg_sel_pi_incdec), + .dbg_sel_po_incdec (dbg_sel_po_incdec), + .dbg_byte_sel (dbg_byte_sel), + .dbg_pi_f_inc (dbg_pi_f_inc), + .dbg_pi_f_dec (dbg_pi_f_dec), + .dbg_po_f_inc (dbg_po_f_inc), + .dbg_po_f_stg23_sel (dbg_po_f_stg23_sel), + .dbg_po_f_dec (dbg_po_f_dec), + .dbg_cpt_tap_cnt (dbg_cpt_tap_cnt), + .dbg_dq_idelay_tap_cnt (dbg_dq_idelay_tap_cnt), + .dbg_calib_top (dbg_calib_top), + .dbg_cpt_first_edge_cnt (dbg_cpt_first_edge_cnt), + .dbg_cpt_second_edge_cnt (dbg_cpt_second_edge_cnt), + .dbg_rd_data_offset (dbg_rd_data_offset), + .dbg_phy_rdlvl (dbg_phy_rdlvl), + .dbg_phy_wrcal (dbg_phy_wrcal), + .dbg_final_po_fine_tap_cnt (dbg_final_po_fine_tap_cnt), + .dbg_final_po_coarse_tap_cnt (dbg_final_po_coarse_tap_cnt), + .dbg_rd_data_edge_detect (dbg_rd_data_edge_detect), + .dbg_rddata (dbg_rddata), + .dbg_rddata_valid (dbg_rddata_valid), + .dbg_rdlvl_done (dbg_rdlvl_done), + .dbg_rdlvl_err (dbg_rdlvl_err), + .dbg_rdlvl_start (dbg_rdlvl_start), + .dbg_wrlvl_fine_tap_cnt (dbg_wrlvl_fine_tap_cnt), + .dbg_wrlvl_coarse_tap_cnt (dbg_wrlvl_coarse_tap_cnt), + .dbg_tap_cnt_during_wrlvl (dbg_tap_cnt_during_wrlvl), + .dbg_wl_edge_detect_valid (dbg_wl_edge_detect_valid), + .dbg_wrlvl_done (dbg_wrlvl_done), + .dbg_wrlvl_err (dbg_wrlvl_err), + .dbg_wrlvl_start (dbg_wrlvl_start), + .dbg_phy_wrlvl (dbg_phy_wrlvl), + .dbg_phy_init (dbg_phy_init), + .dbg_prbs_rdlvl (dbg_prbs_rdlvl), + .dbg_pi_counter_read_val (dbg_pi_counter_read_val), + .dbg_po_counter_read_val (dbg_po_counter_read_val), + .dbg_prbs_final_dqs_tap_cnt_r (dbg_prbs_final_dqs_tap_cnt_r_int), + .dbg_prbs_first_edge_taps (dbg_prbs_first_edge_taps_int), + .dbg_prbs_second_edge_taps (dbg_prbs_second_edge_taps_int), + .dbg_pi_phaselock_start (dbg_pi_phaselock_start), + .dbg_pi_phaselocked_done (dbg_pi_phaselocked_done), + .dbg_pi_phaselock_err (dbg_pi_phaselock_err), + .dbg_pi_phase_locked_phy4lanes (dbg_pi_phase_locked_phy4lanes), + .dbg_pi_dqsfound_start (dbg_pi_dqsfound_start), + .dbg_pi_dqsfound_done (dbg_pi_dqsfound_done), + .dbg_pi_dqsfound_err (dbg_pi_dqsfound_err), + .dbg_pi_dqs_found_lanes_phy4lanes (dbg_pi_dqs_found_lanes_phy4lanes), + .dbg_calib_rd_data_offset_1 (dbg_calib_rd_data_offset_1), + .dbg_calib_rd_data_offset_2 (dbg_calib_rd_data_offset_2), + .dbg_data_offset (dbg_data_offset), + .dbg_data_offset_1 (dbg_data_offset_1), + .dbg_data_offset_2 (dbg_data_offset_2), + .dbg_wrcal_start (dbg_wrcal_start), + .dbg_wrcal_done (dbg_wrcal_done), + .dbg_wrcal_err (dbg_wrcal_err), + .dbg_phy_oclkdelay_cal (dbg_phy_oclkdelay_cal), + .dbg_oclkdelay_rd_data (dbg_oclkdelay_rd_data), + .dbg_oclkdelay_calib_start (dbg_oclkdelay_calib_start), + .dbg_oclkdelay_calib_done (dbg_oclkdelay_calib_done), + .dbg_dqs_found_cal (dbg_dqs_found_cal), + .init_calib_complete (init_calib_complete), + .dbg_poc () + ); + + + + + + + //********************************************************************* + // Resetting all RTL debug inputs as the debug ports are not enabled + //********************************************************************* + assign dbg_idel_down_all = 1'b0; + assign dbg_idel_down_cpt = 1'b0; + assign dbg_idel_up_all = 1'b0; + assign dbg_idel_up_cpt = 1'b0; + assign dbg_sel_all_idel_cpt = 1'b0; + assign dbg_sel_idel_cpt = 'b0; + assign dbg_byte_sel = 'd0; + assign dbg_sel_pi_incdec = 1'b0; + assign dbg_pi_f_inc = 1'b0; + assign dbg_pi_f_dec = 1'b0; + assign dbg_po_f_inc = 'b0; + assign dbg_po_f_dec = 'b0; + assign dbg_po_f_stg23_sel = 'b0; + assign dbg_sel_po_incdec = 'b0; + + + +endmodule diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0_xmdf.tcl b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0_xmdf.tcl new file mode 100644 index 0000000..dfd8aea --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0_xmdf.tcl @@ -0,0 +1,319 @@ +# The package naming convention is _xmdf +package provide mig_7series_0_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is _xmdf +namespace eval ::mig_7series_0_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::mig_7series_0_xmdf::xmdfInit { instance } { + # Variable containing name of library into which module is compiled + # Recommendation: + # Required + utilities_xmdf::xmdfSetData $instance Module Attributes Name mig_7series_0 +} +# ::mig_7series_0_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::mig_7series_0_xmdf::xmdfApplyParams { instance } { + +set fcount 0 + # Array containing libraries that are assumed to exist + # Examples include unisim and xilinxcorelib + # Optional + # In this example, we assume that the unisim library will + # be magically + # available to the simulation and synthesis tool + utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library + utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim + incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_clk_ibuf.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_infrastructure.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_iodelay_ctrl.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/clocking/mig_7series_v4_0_tempmon.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_mux.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_row_col.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_arb_select.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_cntrl.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_common.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_compare.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_mach.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_queue.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_bank_state.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_col_mach.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_mc.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_cntrl.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_common.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_rank_mach.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/controller/mig_7series_v4_0_round_robin_arb.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_buf.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_dec_fix.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_gen.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_ecc_merge_enc.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ecc/mig_7series_v4_0_fi_xor.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ip_top/mig_7series_v4_0_mem_intfc.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ip_top/mig_7series_v4_0_memc_ui_top_std.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/mig_7series_0.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/mig_7series_0_mig.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_byte_group_io.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_byte_lane.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_calib_top.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_if_post_fifo.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_mc_phy.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_mc_phy_wrapper.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_of_pre_fifo.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_4lanes.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ck_addr_cmd_delay.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_dqs_found_cal.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_dqs_found_cal_hr.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_init.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_cntlr.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_data.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_edge.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_lim.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_mux.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_po_cntlr.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_ocd_samp.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_oclkdelay_cal.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_prbs_rdlvl.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_rdlvl.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_tempmon.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_top.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrcal.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrlvl.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_phy_wrlvl_off_delay.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_prbs_gen.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_ddr_skip_calib_tap.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_cc.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_edge_store.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_meta.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_pd.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_tap_base.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/phy/mig_7series_v4_0_poc_top.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_cmd.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_rd_data.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_top.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/rtl/ui/mig_7series_v4_0_ui_wr_data.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/constraints/mig_7series_0.ucf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ucf +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module mig_7series_0 +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path mig_7series_0/user_design/constraints/mig_7series_0.xdc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type xdc +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module mig_7series_0 +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj new file mode 100755 index 0000000..5b467d2 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj @@ -0,0 +1,193 @@ + + + + mig_7series_0 + 1 + 1 + OFF + 1024 + ON + Enabled + xc7z045-ffg900/-2 + 4.0 + No Buffer + Use System Clock + ACTIVE LOW + FALSE + 0 + 50 Ohms + 1 + + DDR3_SDRAM/SODIMMs/MT8JTF12864HZ-1G6 + 1250 + 2.0V + 4:1 + 200 + 0 + 800 + 1.000 + 1 + 1 + 1 + 1 + 64 + 1 + 1 + Disabled + Normal + 4 + FALSE + + 14 + 10 + 3 + 1.5V + BANK_ROW_COLUMN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8 - Fixed + Sequential + 11 + Normal + No + Slow Exit + Enable + RZQ/7 + Disable + Enable + RZQ/6 + 0 + Disabled + Enabled + Output Buffer Enabled + Full Array + 8 + Enabled + Normal + Dynamic ODT off + NATIVE + + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_b.prj b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_b.prj new file mode 100755 index 0000000..78c5a19 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_b.prj @@ -0,0 +1,193 @@ + + + + mig_7series_0 + 1 + 1 + ON + 1024 + ON + Enabled + xc7z045-ffg900/-2 + 4.0 + No Buffer + Use System Clock + ACTIVE LOW + FALSE + 0 + 50 Ohms + 1 + + DDR3_SDRAM/SODIMMs/MT8JTF12864HZ-1G6 + 1250 + 2.0V + 4:1 + 200 + 0 + 800 + 1.000 + 1 + 1 + 1 + 1 + 64 + 1 + 1 + Disabled + Normal + 4 + FALSE + + 14 + 10 + 3 + 1.5V + BANK_ROW_COLUMN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8 - Fixed + Sequential + 11 + Normal + No + Slow Exit + Enable + RZQ/7 + Disable + Enable + RZQ/6 + 0 + Disabled + Enabled + Output Buffer Enabled + Full Array + 8 + Enabled + Normal + Dynamic ODT off + NATIVE + + + diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/tcl.log b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/tcl.log new file mode 100755 index 0000000..60dbad7 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/tcl.log @@ -0,0 +1,1640 @@ +MIG: 15:34:58 : Running customizer.xit +MIG: 15:34:59 : ################# RUNNING MIG INTERACTIVE ################### +MIG: 15:34:59 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/.Xil/Vivado-28592-SPX-Workstation/coregen/mig_7series_0 +MIG: 15:34:59 : synp_flow: -- synthesis_mode: Other +MIG: 15:34:59 : outputDirectory: /home/spartan/.Xil/Vivado-28592-SPX-Workstation/coregen/mig_7series_0/_tmp/ +MIG: 15:34:59 : vivado_mode: xpg_pa +MIG: 15:34:59 : locked false +MIG: 15:34:59 : HDL Language: Verilog +MIG: 15:34:59 : compInfo: true +MIG: 15:34:59 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 15:34:59 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 15:34:59 : I am in catch area +MIG: 15:34:59 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/.Xil/Vivado-28592-SPX-Workstation/coregen/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/.Xil/Vivado-28592-SPX-Workstation/coregen/mig_7series_0/xil_txt.out ... +MIG: 15:43:32 : Prasad before: xmlPropertyPrj -- .prj +MIG: 15:43:32 : Prasad After: xmlPropertyPrj -- mig_a.prj +MIG: 15:43:32 : XML_INPUT_FILE: /home/spartan/.Xil/Vivado-28592-SPX-Workstation/coregen/mig_7series_0/mig_a.prj +MIG: 15:43:32 : Component_Name: mig_7series_0 +MIG: 15:43:32 : Moving mig_7series_0_xmdf.tcl ... +MIG: 15:43:32 : Moving mig_7series_0 ... +MIG: 15:43:32 : Moving mig_7series_0.veo ... +MIG: 15:43:32 : Sending back 0 +MIG: 15:43:33 : xml_input_file: mig_a.prj +MIG: 15:43:33 : Absolute path of xml_input_file: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/build/zc706_mig_conf/zc706_mig_conf.srcs/sources_1/ip/mig_7series_0/mig_a.prj +MIG: 15:43:33 : xml_input_file: mig_a.prj +MIG: 15:43:33 : Absolute path of xml_input_file: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/build/zc706_mig_conf/zc706_mig_conf.srcs/sources_1/ip/mig_7series_0/mig_a.prj +MIG: 15:43:33 : In updateAllModelParams +MIG: 15:43:33 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:43:33 : IGN: 200 <==> 200 +MIG: 15:43:33 : XGUI hdlLanguage: Verilog +MIG: 15:43:33 : xgui vivado_mode: xpg_pa +MIG: 15:43:33 : xgui hdlLanguage: Verilog -- hdlExt: v +MIG: 15:43:33 : Reading /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/build/zc706_mig_conf/zc706_mig_conf.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig.v ... +MIG: 15:43:34 : 1 +MIG: 15:43:34 : Inside fn mem: DDR3 +MIG: 15:43:34 : detect_uiclk: 200000000 +MIG: 15:43:34 : cntrl: memtype: DDR3 +MIG: 15:43:34 : 800 +MIG: 15:43:34 : MMCM_VCO single ctrl param_name: MMCM_VCO -- possibleMaxVcoVal: 800 +MIG: 15:43:34 : +MIG: 15:43:34 : +MIG: 15:43:34 : 200000000 +MIG: 15:43:34 : +MIG: 15:43:34 : polarity_value: 1 +MIG: 15:43:34 : +MIG: 15:43:34 : +MIG: 15:43:34 : cntrl: memtype: DDR3 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_BANK_WIDTH ==> 3 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_CK_WIDTH ==> 1 +MIG: 15:43:34 : Invalid Param: DDR3_COL_WIDTH ==> 10 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_CS_WIDTH ==> 1 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_nCS_PER_RANK ==> 1 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_CKE_WIDTH ==> 1 +MIG: 15:43:34 : Invalid Param: DDR3_DATA_BUF_ADDR_WIDTH ==> 5 +MIG: 15:43:34 : Invalid Param: DDR3_DQ_CNT_WIDTH ==> 6 +MIG: 15:43:34 : Invalid Param: DDR3_DQ_PER_DM ==> 8 +MIG: 15:43:34 : 8 +MIG: 15:43:34 : Valid Param: DDR3_DM_WIDTH ==> 8 +MIG: 15:43:34 : 64 +MIG: 15:43:34 : Valid Param: DDR3_DQ_WIDTH ==> 64 +MIG: 15:43:34 : 8 +MIG: 15:43:34 : Valid Param: DDR3_DQS_WIDTH ==> 8 +MIG: 15:43:34 : 3 +MIG: 15:43:34 : Valid Param: DDR3_DQS_CNT_WIDTH ==> 3 +MIG: 15:43:34 : Invalid Param: DDR3_DRAM_WIDTH ==> 8 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: ECC ==> OFF +MIG: 15:43:34 : 64 +MIG: 15:43:34 : Valid Param: DDR3_DATA_WIDTH ==> 64 +MIG: 15:43:34 : Invalid Param: ECC_TEST ==> "OFF" +MIG: 15:43:34 : Invalid Param: DDR3_PAYLOAD_WIDTH ==> (ECC_TEST == "OFF") ? DATA_WIDTH : DQ_WIDTH +MIG: 15:43:34 : Invalid Param: DDR3_MEM_ADDR_ORDER ==> "BANK_ROW_COLUMN" +MIG: 15:43:34 : Invalid Param: DDR3_nBANK_MACHS ==> 4 +MIG: 15:43:34 : Invalid Param: DDR3_RANKS ==> 1 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_ODT_WIDTH ==> 1 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_ROW_WIDTH ==> 14 +MIG: 15:43:34 : 28 +MIG: 15:43:34 : Valid Param: DDR3_ADDR_WIDTH ==> 28 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_USE_CS_PORT ==> 1 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_USE_DM_PORT ==> 1 +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_USE_ODT_PORT ==> 1 +MIG: 15:43:34 : Invalid Param: DDR3_IS_CLK_SHARED ==> "FALSE" +MIG: 15:43:34 : Invalid Param: DDR3_PHY_CONTROL_MASTER_BANK ==> 1 +MIG: 15:43:34 : Invalid Param: DDR3_MEM_DENSITY ==> "1Gb" +MIG: 15:43:34 : Invalid Param: DDR3_MEM_SPEEDGRADE ==> "125" +MIG: 15:43:34 : Invalid Param: DDR3_MEM_DEVICE_WIDTH ==> 8 +MIG: 15:43:34 : Invalid Param: DDR3_AL ==> "0" +MIG: 15:43:34 : Invalid Param: DDR3_nAL ==> 0 +MIG: 15:43:34 : Invalid Param: DDR3_BURST_MODE ==> "8" +MIG: 15:43:34 : Invalid Param: DDR3_BURST_TYPE ==> "SEQ" +MIG: 15:43:34 : Invalid Param: DDR3_CL ==> 11 +MIG: 15:43:34 : Invalid Param: DDR3_CWL ==> 8 +MIG: 15:43:34 : Invalid Param: DDR3_OUTPUT_DRV ==> "HIGH" +MIG: 15:43:34 : Invalid Param: DDR3_RTT_NOM ==> "40" +MIG: 15:43:34 : Invalid Param: DDR3_RTT_WR ==> "OFF" +MIG: 15:43:34 : Invalid Param: DDR3_ADDR_CMD_MODE ==> "1T" +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_REG_CTRL ==> OFF +MIG: 15:43:34 : Invalid Param: DDR3_CA_MIRROR ==> "OFF" +MIG: 15:43:34 : Invalid Param: DDR3_VDD_OP_VOLT ==> "150" +MIG: 15:43:34 : Invalid Param: DDR3_CLKIN_PERIOD ==> 5000 +MIG: 15:43:34 : Invalid Param: DDR3_CLKFBOUT_MULT ==> 8 +MIG: 15:43:34 : Invalid Param: DDR3_DIVCLK_DIVIDE ==> 1 +MIG: 15:43:34 : Invalid Param: DDR3_CLKOUT0_PHASE ==> 337.5 +MIG: 15:43:34 : Invalid Param: DDR3_CLKOUT0_DIVIDE ==> 2 +MIG: 15:43:34 : Invalid Param: DDR3_CLKOUT1_DIVIDE ==> 2 +MIG: 15:43:34 : Invalid Param: DDR3_CLKOUT2_DIVIDE ==> 32 +MIG: 15:43:34 : Invalid Param: DDR3_CLKOUT3_DIVIDE ==> 8 +MIG: 15:43:34 : Invalid Param: DDR3_MMCM_VCO ==> 800 +MIG: 15:43:34 : Invalid Param: DDR3_MMCM_MULT_F ==> 4 +MIG: 15:43:34 : Invalid Param: DDR3_MMCM_DIVCLK_DIVIDE ==> 1 +MIG: 15:43:34 : Invalid Param: DDR3_tCKE ==> 5000 +MIG: 15:43:34 : Invalid Param: DDR3_tFAW ==> 30000 +MIG: 15:43:34 : Invalid Param: DDR3_tPRDI ==> 1_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_tRAS ==> 35000 +MIG: 15:43:34 : Invalid Param: DDR3_tRCD ==> 13750 +MIG: 15:43:34 : Invalid Param: DDR3_tREFI ==> 7800000 +MIG: 15:43:34 : Invalid Param: DDR3_tRFC ==> 110000 +MIG: 15:43:34 : Invalid Param: DDR3_tRP ==> 13750 +MIG: 15:43:34 : Invalid Param: DDR3_tRRD ==> 6000 +MIG: 15:43:34 : Invalid Param: DDR3_tRTP ==> 7500 +MIG: 15:43:34 : Invalid Param: DDR3_tWTR ==> 7500 +MIG: 15:43:34 : Invalid Param: DDR3_tZQI ==> 128_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_tZQCS ==> 64 +MIG: 15:43:34 : Invalid Param: DDR3_SIM_BYPASS_INIT_CAL ==> "OFF" +MIG: 15:43:34 : Invalid Param: DDR3_SIMULATION ==> "FALSE" +MIG: 15:43:34 : Invalid Param: DDR3_BYTE_LANES_B0 ==> 4'b0111 +MIG: 15:43:34 : Invalid Param: DDR3_BYTE_LANES_B1 ==> 4'b1111 +MIG: 15:43:34 : Invalid Param: DDR3_BYTE_LANES_B2 ==> 4'b1111 +MIG: 15:43:34 : Invalid Param: DDR3_BYTE_LANES_B3 ==> 4'b0000 +MIG: 15:43:34 : Invalid Param: DDR3_BYTE_LANES_B4 ==> 4'b0000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA_CTL_B0 ==> 4'b0111 +MIG: 15:43:34 : Invalid Param: DDR3_DATA_CTL_B1 ==> 4'b0001 +MIG: 15:43:34 : Invalid Param: DDR3_DATA_CTL_B2 ==> 4'b1111 +MIG: 15:43:34 : Invalid Param: DDR3_DATA_CTL_B3 ==> 4'b0000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA_CTL_B4 ==> 4'b0000 +MIG: 15:43:34 : Invalid Param: DDR3_PHY_0_BITLANES ==> 48'h000_1FF_3FE_2FF +MIG: 15:43:34 : Invalid Param: DDR3_PHY_1_BITLANES ==> 48'h7D4_BF0_8FF_2FF +MIG: 15:43:34 : Invalid Param: DDR3_PHY_2_BITLANES ==> 48'h3FE_1FF_1FF_2FF +MIG: 15:43:34 : Invalid Param: DDR3_CK_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12 +MIG: 15:43:34 : Invalid Param: DDR3_ADDR_MAP ==> 192'h000_000_138_12B_134_112_11B_139_116_117_132_126_136_127_137_125 +MIG: 15:43:34 : Invalid Param: DDR3_BANK_MAP ==> 36'h13A_111_115 +MIG: 15:43:34 : Invalid Param: DDR3_CAS_MAP ==> 12'h113 +MIG: 15:43:34 : Invalid Param: DDR3_CKE_ODT_BYTE_MAP ==> 8'h00 +MIG: 15:43:34 : Invalid Param: DDR3_CKE_MAP ==> 96'h000_000_000_000_000_000_000_124 +MIG: 15:43:34 : Invalid Param: DDR3_ODT_MAP ==> 96'h000_000_000_000_000_000_000_110 +MIG: 15:43:34 : Invalid Param: DDR3_CS_MAP ==> 120'h000_000_000_000_000_000_000_000_000_129 +MIG: 15:43:34 : Invalid Param: DDR3_PARITY_MAP ==> 12'h000 +MIG: 15:43:34 : Invalid Param: DDR3_RAS_MAP ==> 12'h128 +MIG: 15:43:34 : Invalid Param: DDR3_WE_MAP ==> 12'h114 +MIG: 15:43:34 : Invalid Param: DDR3_DQS_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_01_02_10_20_21_22_23 +MIG: 15:43:34 : Invalid Param: DDR3_DATA0_MAP ==> 96'h231_232_235_236_239_233_234_237 +MIG: 15:43:34 : Invalid Param: DDR3_DATA1_MAP ==> 96'h220_221_225_224_222_227_223_226 +MIG: 15:43:34 : Invalid Param: DDR3_DATA2_MAP ==> 96'h214_210_216_217_218_215_213_212 +MIG: 15:43:34 : Invalid Param: DDR3_DATA3_MAP ==> 96'h209_204_202_201_207_206_203_200 +MIG: 15:43:34 : Invalid Param: DDR3_DATA4_MAP ==> 96'h109_107_103_105_106_100_102_104 +MIG: 15:43:34 : Invalid Param: DDR3_DATA5_MAP ==> 96'h023_022_024_027_028_025_021_020 +MIG: 15:43:34 : Invalid Param: DDR3_DATA6_MAP ==> 96'h011_016_012_013_019_015_018_017 +MIG: 15:43:34 : Invalid Param: DDR3_DATA7_MAP ==> 96'h003_009_004_001_002_000_007_006 +MIG: 15:43:34 : Invalid Param: DDR3_DATA8_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA9_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA10_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA11_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA12_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA13_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA14_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA15_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA16_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_DATA17_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_MASK0_MAP ==> 108'h000_005_014_026_101_205_211_228_238 +MIG: 15:43:34 : Invalid Param: DDR3_MASK1_MAP ==> 108'h000_000_000_000_000_000_000_000_000 +MIG: 15:43:34 : Invalid Param: DDR3_SLOT_0_CONFIG ==> 8'b0000_0001 +MIG: 15:43:34 : Invalid Param: DDR3_SLOT_1_CONFIG ==> 8'b0000_0000 +MIG: 15:43:34 : Invalid Param: DDR3_IBUF_LPWR_MODE ==> "OFF" +MIG: 15:43:34 : Invalid Param: DDR3_DATA_IO_IDLE_PWRDWN ==> "ON" +MIG: 15:43:34 : Invalid Param: DDR3_BANK_TYPE ==> "HP_IO" +MIG: 15:43:34 : Invalid Param: DDR3_DATA_IO_PRIM_TYPE ==> "HP_LP" +MIG: 15:43:34 : Invalid Param: DDR3_CKE_ODT_AUX ==> "FALSE" +MIG: 15:43:34 : Invalid Param: DDR3_USER_REFRESH ==> "OFF" +MIG: 15:43:34 : Invalid Param: DDR3_WRLVL ==> "ON" +MIG: 15:43:34 : Invalid Param: DDR3_ORDERING ==> "NORM" +MIG: 15:43:34 : Invalid Param: DDR3_CALIB_ROW_ADD ==> 16'h0000 +MIG: 15:43:34 : Invalid Param: DDR3_CALIB_COL_ADD ==> 12'h000 +MIG: 15:43:34 : Invalid Param: DDR3_CALIB_BA_ADD ==> 3'h0 +MIG: 15:43:34 : Invalid Param: DDR3_TCQ ==> 100 +MIG: 15:43:34 : Invalid Param: DDR3_IDELAY_ADJ ==> "ON" +MIG: 15:43:34 : Invalid Param: DDR3_FINE_PER_BIT ==> "ON" +MIG: 15:43:34 : Invalid Param: DDR3_CENTER_COMP_MODE ==> "ON" +MIG: 15:43:34 : Invalid Param: DDR3_PI_VAL_ADJ ==> "ON" +MIG: 15:43:34 : Invalid Param: DDR3_IODELAY_GRP0 ==> "MIG_7SERIES_0_IODELAY_MIG0" +MIG: 15:43:34 : Invalid Param: DDR3_IODELAY_GRP1 ==> "MIG_7SERIES_0_IODELAY_MIG1" +MIG: 15:43:34 : Invalid Param: DDR3_SYSCLK_TYPE ==> "NO_BUFFER" +MIG: 15:43:34 : Invalid Param: DDR3_REFCLK_TYPE ==> "USE_SYSTEM_CLOCK" +MIG: 15:43:34 : Invalid Param: DDR3_SYS_RST_PORT ==> "FALSE" +MIG: 15:43:34 : Invalid Param: DDR3_FPGA_SPEED_GRADE ==> 2 +MIG: 15:43:34 : Invalid Param: DDR3_CMD_PIPE_PLUS1 ==> "ON" +MIG: 15:43:34 : Invalid Param: DDR3_DRAM_TYPE ==> "DDR3" +MIG: 15:43:34 : Invalid Param: DDR3_CAL_WIDTH ==> "HALF" +MIG: 15:43:34 : Invalid Param: DDR3_STARVE_LIMIT ==> 2 +MIG: 15:43:34 : Invalid Param: DDR3_REF_CLK_MMCM_IODELAY_CTRL ==> "TRUE" +MIG: 15:43:34 : Invalid Param: DDR3_REFCLK_FREQ ==> 200.0 +MIG: 15:43:34 : Invalid Param: DDR3_DIFF_TERM_REFCLK ==> "TRUE" +MIG: 15:43:34 : Invalid Param: DDR3_tCK ==> 1250 +MIG: 15:43:34 : 4 +MIG: 15:43:34 : Valid Param: DDR3_nCK_PER_CLK ==> 4 +MIG: 15:43:34 : Invalid Param: DDR3_DIFF_TERM_SYSCLK ==> "TRUE" +MIG: 15:43:34 : +MIG: 15:43:34 : Valid Param: DDR3_DEBUG_PORT ==> OFF +MIG: 15:43:34 : +MIG: 15:43:34 : Invalid Param: DDR3_TEMP_MON_CONTROL ==> "INTERNAL" +MIG: 15:43:34 : Invalid Param: DDR3_FPGA_VOLT_TYPE ==> "N" +MIG: 15:43:34 : Invalid Param: DDR3_RST_ACT_LOW ==> 1 +MIG: 15:43:34 : NOBUF +MIG: 15:43:34 : NONE +MIG: 15:43:34 : +MIG: 15:43:34 : Same Interface +MIG: 15:43:35 : Running synthesis.xit +MIG: 15:43:35 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:43:35 : IGN: 200 <==> 200 +MIG: 15:43:35 : Running vlog_synth_rpr.xit +MIG: 15:43:35 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:43:35 : IGN: 200 <==> 200 +MIG: 15:43:35 : Running simulation.xit +MIG: 15:43:36 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:43:36 : IGN: 200 <==> 200 +MIG: 15:43:36 : Running vlog_sim_rpr.xit .. PRASAD DBG1 +MIG: 15:43:36 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:43:36 : IGN: 200 <==> 200 +MIG: 15:43:36 : Running implementation.xit +MIG: 15:43:36 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:43:36 : IGN: 200 <==> 200 +MIG: 15:53:36 : ################# RUNNING MIG BATCH ################### +MIG: 15:53:36 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 15:53:36 : synp_flow: -- synthesis_mode: Other +MIG: 15:53:36 : outputDirectory: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 15:53:36 : vivado_mode: xpg_pa +MIG: 15:53:36 : locked false +MIG: 15:53:36 : HDL Language: Verilog +MIG: 15:53:36 : compInfo: false +MIG: 15:53:36 : Vivado Options xc7z045 ffg900 -2 +MIG: 15:53:36 : 1: xc7z045 2: ffg900 3: -2 +MIG: 15:53:36 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 15:53:36 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 15:53:36 : I am in catch area +MIG: 15:53:36 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 15:53:44 : XML_INPUT_FILE: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 15:53:44 : Component_Name: mig_7series_0 +MIG: 15:53:44 : Moving mig_7series_0_xmdf.tcl ... +MIG: 15:53:44 : Moving mig_7series_0 ... +MIG: 15:53:44 : Moving mig_7series_0.veo ... +MIG: 15:54:07 : Running synthesis.xit +MIG: 15:54:07 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:54:07 : IGN: 200 <==> 200 +MIG: 15:54:07 : Running vlog_synth_rpr.xit +MIG: 15:54:07 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:54:07 : IGN: 200 <==> 200 +MIG: 15:54:07 : Running implementation.xit +MIG: 15:54:07 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 15:54:07 : IGN: 200 <==> 200 +MIG: 12:36:11 : xml_input_file: mig_a.prj +MIG: 12:36:11 : Absolute path of xml_input_file: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 12:36:11 : xml_input_file: mig_a.prj +MIG: 12:36:11 : Absolute path of xml_input_file: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 14:00:47 : Running synthesis.xit +MIG: 14:00:47 : ################# RUNNING MIG BATCH ################### +MIG: 14:00:47 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 14:00:47 : synp_flow: -- synthesis_mode: Other +MIG: 14:00:47 : outputDirectory: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 14:00:47 : vivado_mode: xpg_pa +MIG: 14:00:47 : locked false +MIG: 14:00:47 : HDL Language: Verilog +MIG: 14:00:47 : compInfo: false +MIG: 14:00:47 : Vivado Options xc7z045 ffg900 -2 +MIG: 14:00:47 : 1: xc7z045 2: ffg900 3: -2 +MIG: 14:00:47 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 14:00:47 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 14:00:47 : I am in catch area +MIG: 14:00:47 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 14:00:55 : XML_INPUT_FILE: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 14:00:55 : Component_Name: mig_7series_0 +MIG: 14:00:55 : Moving mig_7series_0_xmdf.tcl ... +MIG: 14:00:55 : Moving mig_7series_0 ... +MIG: 14:00:55 : Moving mig_7series_0.veo ... +MIG: 14:00:55 : Running vlog_synth_rpr.xit +MIG: 14:00:55 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 14:00:55 : IGN: 200 <==> 200 +MIG: 14:00:56 : Running implementation.xit +MIG: 14:00:56 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 14:00:56 : IGN: 200 <==> 200 +MIG: 16:12:12 : Running synthesis.xit +MIG: 16:12:12 : ################# RUNNING MIG BATCH ################### +MIG: 16:12:12 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 16:12:12 : synp_flow: -- synthesis_mode: Other +MIG: 16:12:12 : outputDirectory: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 16:12:12 : vivado_mode: xpg_pa +MIG: 16:12:12 : locked false +MIG: 16:12:12 : HDL Language: Verilog +MIG: 16:12:12 : compInfo: false +MIG: 16:12:12 : Vivado Options xc7z045 ffg900 -2 +MIG: 16:12:12 : 1: xc7z045 2: ffg900 3: -2 +MIG: 16:12:12 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 16:12:12 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 16:12:12 : I am in catch area +MIG: 16:12:12 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 16:12:20 : XML_INPUT_FILE: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 16:12:20 : Component_Name: mig_7series_0 +MIG: 16:12:20 : Moving mig_7series_0_xmdf.tcl ... +MIG: 16:12:20 : Moving mig_7series_0 ... +MIG: 16:12:20 : Moving mig_7series_0.veo ... +MIG: 16:12:20 : Running vlog_synth_rpr.xit +MIG: 16:12:20 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 16:12:20 : IGN: 200 <==> 200 +MIG: 16:12:20 : Running implementation.xit +MIG: 16:12:20 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 16:12:20 : IGN: 200 <==> 200 +MIG: 17:32:18 : xml_input_file: mig_a.prj +MIG: 17:32:18 : Absolute path of xml_input_file: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 17:32:18 : xml_input_file: mig_a.prj +MIG: 17:32:18 : Absolute path of xml_input_file: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 18:07:05 : Running synthesis.xit +MIG: 18:07:05 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 18:07:05 : IGN: 200 <==> 200 +MIG: 18:07:05 : Running vlog_synth_rpr.xit +MIG: 18:07:05 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 18:07:05 : IGN: 200 <==> 200 +MIG: 18:07:05 : Running implementation.xit +MIG: 18:07:05 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 18:07:05 : IGN: 200 <==> 200 +MIG: 21:19:36 : Running synthesis.xit +MIG: 21:19:36 : ################# RUNNING MIG BATCH ################### +MIG: 21:19:36 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 21:19:36 : synp_flow: -- synthesis_mode: Other +MIG: 21:19:36 : outputDirectory: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 21:19:36 : vivado_mode: xpg_pa +MIG: 21:19:36 : locked false +MIG: 21:19:36 : HDL Language: Verilog +MIG: 21:19:36 : compInfo: false +MIG: 21:19:36 : Vivado Options xc7z045 ffg900 -2 +MIG: 21:19:36 : 1: xc7z045 2: ffg900 3: -2 +MIG: 21:19:36 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 21:19:36 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 21:19:36 : I am in catch area +MIG: 21:19:36 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 21:19:44 : XML_INPUT_FILE: /home/spartan/OpenPiton/openpiton-src-16-10-26-r4/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 21:19:44 : Component_Name: mig_7series_0 +MIG: 21:19:44 : Moving mig_7series_0_xmdf.tcl ... +MIG: 21:19:44 : Moving mig_7series_0 ... +MIG: 21:19:44 : Moving mig_7series_0.veo ... +MIG: 21:19:44 : Running vlog_synth_rpr.xit +MIG: 21:19:44 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 21:19:44 : IGN: 200 <==> 200 +MIG: 21:19:44 : Running implementation.xit +MIG: 21:19:44 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 21:19:44 : IGN: 200 <==> 200 +MIG: 00:46:49 : ################# RUNNING MIG BATCH ################### +MIG: 00:46:49 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 00:46:49 : synp_flow: -- synthesis_mode: Other +MIG: 00:46:49 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 00:46:49 : vivado_mode: xpg_pa +MIG: 00:46:49 : locked false +MIG: 00:46:49 : HDL Language: Verilog +MIG: 00:46:49 : compInfo: false +MIG: 00:46:49 : Vivado Options xc7z045 ffg900 -2 +MIG: 00:46:49 : 1: xc7z045 2: ffg900 3: -2 +MIG: 00:46:49 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 00:46:49 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 00:46:49 : I am in catch area +MIG: 00:46:49 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 00:46:57 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 00:46:57 : Component_Name: mig_7series_0 +MIG: 00:46:57 : Moving mig_7series_0_xmdf.tcl ... +MIG: 00:46:57 : Moving mig_7series_0 ... +MIG: 00:46:57 : Moving mig_7series_0.veo ... +MIG: 01:07:20 : Running synthesis.xit +MIG: 01:07:20 : ################# RUNNING MIG BATCH ################### +MIG: 01:07:20 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 01:07:20 : synp_flow: -- synthesis_mode: Other +MIG: 01:07:20 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 01:07:20 : vivado_mode: xpg_pa +MIG: 01:07:20 : locked false +MIG: 01:07:20 : HDL Language: Verilog +MIG: 01:07:20 : compInfo: false +MIG: 01:07:20 : Vivado Options xc7z045 ffg900 -2 +MIG: 01:07:20 : 1: xc7z045 2: ffg900 3: -2 +MIG: 01:07:20 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 01:07:20 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 01:07:20 : I am in catch area +MIG: 01:07:20 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 01:07:29 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 01:07:29 : Component_Name: mig_7series_0 +MIG: 01:07:29 : Moving mig_7series_0_xmdf.tcl ... +MIG: 01:07:29 : Moving mig_7series_0 ... +MIG: 01:07:29 : Moving mig_7series_0.veo ... +MIG: 01:07:29 : Running vlog_synth_rpr.xit +MIG: 01:07:29 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 01:07:29 : IGN: 200 <==> 200 +MIG: 01:07:29 : Running implementation.xit +MIG: 01:07:29 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 01:07:29 : IGN: 200 <==> 200 +MIG: 01:15:24 : Running synthesis.xit +MIG: 01:15:24 : ################# RUNNING MIG BATCH ################### +MIG: 01:15:24 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 01:15:24 : synp_flow: -- synthesis_mode: Other +MIG: 01:15:24 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 01:15:24 : vivado_mode: xpg_pa +MIG: 01:15:24 : locked false +MIG: 01:15:24 : HDL Language: Verilog +MIG: 01:15:24 : compInfo: false +MIG: 01:15:24 : Vivado Options xc7z045 ffg900 -2 +MIG: 01:15:24 : 1: xc7z045 2: ffg900 3: -2 +MIG: 01:15:24 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 01:15:24 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 01:15:24 : I am in catch area +MIG: 01:15:24 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 01:15:32 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 01:15:32 : Component_Name: mig_7series_0 +MIG: 01:15:32 : Moving mig_7series_0_xmdf.tcl ... +MIG: 01:15:32 : Moving mig_7series_0 ... +MIG: 01:15:32 : Moving mig_7series_0.veo ... +MIG: 01:15:32 : Running vlog_synth_rpr.xit +MIG: 01:15:32 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 01:15:32 : IGN: 200 <==> 200 +MIG: 01:15:32 : Running implementation.xit +MIG: 01:15:32 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 01:15:32 : IGN: 200 <==> 200 +MIG: 00:11:41 : Running synthesis.xit +MIG: 00:11:41 : ################# RUNNING MIG BATCH ################### +MIG: 00:11:41 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 00:11:41 : synp_flow: -- synthesis_mode: Other +MIG: 00:11:41 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 00:11:41 : vivado_mode: xpg_pa +MIG: 00:11:41 : locked false +MIG: 00:11:41 : HDL Language: Verilog +MIG: 00:11:41 : compInfo: false +MIG: 00:11:41 : Vivado Options xc7z045 ffg900 -2 +MIG: 00:11:41 : 1: xc7z045 2: ffg900 3: -2 +MIG: 00:11:41 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 00:11:41 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 00:11:41 : I am in catch area +MIG: 00:11:41 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 00:11:54 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 00:11:54 : Component_Name: mig_7series_0 +MIG: 00:11:54 : Moving mig_7series_0_xmdf.tcl ... +MIG: 00:11:54 : Moving mig_7series_0 ... +MIG: 00:11:54 : Moving mig_7series_0.veo ... +MIG: 00:11:54 : Running vlog_synth_rpr.xit +MIG: 00:11:54 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 00:11:54 : IGN: 200 <==> 200 +MIG: 00:11:54 : Running implementation.xit +MIG: 00:11:54 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 00:11:54 : IGN: 200 <==> 200 +MIG: 01:53:07 : xml_input_file: mig_a.prj +MIG: 01:53:07 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 01:53:07 : xml_input_file: mig_a.prj +MIG: 01:53:07 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 12:31:46 : Running customizer.xit +MIG: 12:31:46 : ################# RUNNING MIG INTERACTIVE ################### +MIG: 12:31:46 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0 +MIG: 12:31:46 : synp_flow: -- synthesis_mode: Other +MIG: 12:31:46 : outputDirectory: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/_tmp/ +MIG: 12:31:46 : vivado_mode: xpg_pa +MIG: 12:31:46 : locked false +MIG: 12:31:46 : HDL Language: Verilog +MIG: 12:31:46 : compInfo: false +MIG: 12:31:46 : Vivado Options xc7z045 ffg900 -2 +MIG: 12:31:46 : 1: xc7z045 2: ffg900 3: -2 +MIG: 12:31:46 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 12:31:46 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 12:31:46 : I am in catch area +MIG: 12:31:46 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/xil_txt.out ... +MIG: 12:32:51 : Prasad before: xmlPropertyPrj -- mig_a.prj +MIG: 12:32:51 : Prasad After: xmlPropertyPrj -- mig_b.prj +MIG: 12:32:51 : XML_INPUT_FILE: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/mig_b.prj +MIG: 12:32:51 : Component_Name: mig_7series_0 +MIG: 12:32:51 : Moving mig_7series_0_xmdf.tcl ... +MIG: 12:32:51 : Moving mig_7series_0 ... +MIG: 12:32:51 : Moving mig_7series_0.veo ... +MIG: 12:32:51 : Sending back 0 +MIG: 12:32:51 : xml_input_file: mig_b.prj +MIG: 12:32:51 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_b.prj +MIG: 12:32:51 : xml_input_file: mig_b.prj +MIG: 12:32:51 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_b.prj +MIG: 12:32:51 : In updateAllModelParams +MIG: 12:32:51 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 12:32:51 : IGN: 200 <==> 200 +MIG: 12:32:51 : XGUI hdlLanguage: Verilog +MIG: 12:32:51 : xgui vivado_mode: xpg_pa +MIG: 12:32:51 : xgui hdlLanguage: Verilog -- hdlExt: v +MIG: 12:32:51 : Reading /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig.v ... +MIG: 12:32:53 : +MIG: 12:32:53 : Inside fn mem: DDR3 +MIG: 12:32:53 : detect_uiclk: 200000000 +MIG: 12:32:53 : cntrl: memtype: DDR3 +MIG: 12:32:53 : +MIG: 12:32:53 : MMCM_VCO single ctrl param_name: MMCM_VCO -- possibleMaxVcoVal: 800 +MIG: 12:32:53 : +MIG: 12:32:53 : +MIG: 12:32:53 : +MIG: 12:32:53 : +MIG: 12:32:53 : polarity_value: 1 +MIG: 12:32:53 : +MIG: 12:32:53 : +MIG: 12:32:53 : cntrl: memtype: DDR3 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_BANK_WIDTH ==> 3 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_CK_WIDTH ==> 1 +MIG: 12:32:53 : Invalid Param: DDR3_COL_WIDTH ==> 10 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_CS_WIDTH ==> 1 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_nCS_PER_RANK ==> 1 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_CKE_WIDTH ==> 1 +MIG: 12:32:53 : Invalid Param: DDR3_DATA_BUF_ADDR_WIDTH ==> 5 +MIG: 12:32:53 : Invalid Param: DDR3_DQ_CNT_WIDTH ==> 6 +MIG: 12:32:53 : Invalid Param: DDR3_DQ_PER_DM ==> 8 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_DM_WIDTH ==> 8 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_DQ_WIDTH ==> 64 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_DQS_WIDTH ==> 8 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_DQS_CNT_WIDTH ==> 3 +MIG: 12:32:53 : Invalid Param: DDR3_DRAM_WIDTH ==> 8 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: ECC ==> OFF +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_DATA_WIDTH ==> 64 +MIG: 12:32:53 : Invalid Param: ECC_TEST ==> "OFF" +MIG: 12:32:53 : Invalid Param: DDR3_PAYLOAD_WIDTH ==> (ECC_TEST == "OFF") ? DATA_WIDTH : DQ_WIDTH +MIG: 12:32:53 : Invalid Param: DDR3_MEM_ADDR_ORDER ==> "BANK_ROW_COLUMN" +MIG: 12:32:53 : Invalid Param: DDR3_nBANK_MACHS ==> 4 +MIG: 12:32:53 : Invalid Param: DDR3_RANKS ==> 1 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_ODT_WIDTH ==> 1 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_ROW_WIDTH ==> 14 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_ADDR_WIDTH ==> 28 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_USE_CS_PORT ==> 1 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_USE_DM_PORT ==> 1 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_USE_ODT_PORT ==> 1 +MIG: 12:32:53 : Invalid Param: DDR3_IS_CLK_SHARED ==> "FALSE" +MIG: 12:32:53 : Invalid Param: DDR3_PHY_CONTROL_MASTER_BANK ==> 1 +MIG: 12:32:53 : Invalid Param: DDR3_MEM_DENSITY ==> "1Gb" +MIG: 12:32:53 : Invalid Param: DDR3_MEM_SPEEDGRADE ==> "125" +MIG: 12:32:53 : Invalid Param: DDR3_MEM_DEVICE_WIDTH ==> 8 +MIG: 12:32:53 : Invalid Param: DDR3_AL ==> "0" +MIG: 12:32:53 : Invalid Param: DDR3_nAL ==> 0 +MIG: 12:32:53 : Invalid Param: DDR3_BURST_MODE ==> "8" +MIG: 12:32:53 : Invalid Param: DDR3_BURST_TYPE ==> "SEQ" +MIG: 12:32:53 : Invalid Param: DDR3_CL ==> 11 +MIG: 12:32:53 : Invalid Param: DDR3_CWL ==> 8 +MIG: 12:32:53 : Invalid Param: DDR3_OUTPUT_DRV ==> "HIGH" +MIG: 12:32:53 : Invalid Param: DDR3_RTT_NOM ==> "40" +MIG: 12:32:53 : Invalid Param: DDR3_RTT_WR ==> "OFF" +MIG: 12:32:53 : Invalid Param: DDR3_ADDR_CMD_MODE ==> "1T" +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_REG_CTRL ==> OFF +MIG: 12:32:53 : Invalid Param: DDR3_CA_MIRROR ==> "OFF" +MIG: 12:32:53 : Invalid Param: DDR3_VDD_OP_VOLT ==> "150" +MIG: 12:32:53 : Invalid Param: DDR3_CLKIN_PERIOD ==> 5000 +MIG: 12:32:53 : Invalid Param: DDR3_CLKFBOUT_MULT ==> 8 +MIG: 12:32:53 : Invalid Param: DDR3_DIVCLK_DIVIDE ==> 1 +MIG: 12:32:53 : Invalid Param: DDR3_CLKOUT0_PHASE ==> 337.5 +MIG: 12:32:53 : Invalid Param: DDR3_CLKOUT0_DIVIDE ==> 2 +MIG: 12:32:53 : Invalid Param: DDR3_CLKOUT1_DIVIDE ==> 2 +MIG: 12:32:53 : Invalid Param: DDR3_CLKOUT2_DIVIDE ==> 32 +MIG: 12:32:53 : Invalid Param: DDR3_CLKOUT3_DIVIDE ==> 8 +MIG: 12:32:53 : Invalid Param: DDR3_MMCM_VCO ==> 800 +MIG: 12:32:53 : Invalid Param: DDR3_MMCM_MULT_F ==> 4 +MIG: 12:32:53 : Invalid Param: DDR3_MMCM_DIVCLK_DIVIDE ==> 1 +MIG: 12:32:53 : Invalid Param: DDR3_tCKE ==> 5000 +MIG: 12:32:53 : Invalid Param: DDR3_tFAW ==> 30000 +MIG: 12:32:53 : Invalid Param: DDR3_tPRDI ==> 1_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_tRAS ==> 35000 +MIG: 12:32:53 : Invalid Param: DDR3_tRCD ==> 13750 +MIG: 12:32:53 : Invalid Param: DDR3_tREFI ==> 7800000 +MIG: 12:32:53 : Invalid Param: DDR3_tRFC ==> 110000 +MIG: 12:32:53 : Invalid Param: DDR3_tRP ==> 13750 +MIG: 12:32:53 : Invalid Param: DDR3_tRRD ==> 6000 +MIG: 12:32:53 : Invalid Param: DDR3_tRTP ==> 7500 +MIG: 12:32:53 : Invalid Param: DDR3_tWTR ==> 7500 +MIG: 12:32:53 : Invalid Param: DDR3_tZQI ==> 128_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_tZQCS ==> 64 +MIG: 12:32:53 : Invalid Param: DDR3_SIM_BYPASS_INIT_CAL ==> "OFF" +MIG: 12:32:53 : Invalid Param: DDR3_SIMULATION ==> "FALSE" +MIG: 12:32:53 : Invalid Param: DDR3_BYTE_LANES_B0 ==> 4'b0111 +MIG: 12:32:53 : Invalid Param: DDR3_BYTE_LANES_B1 ==> 4'b1111 +MIG: 12:32:53 : Invalid Param: DDR3_BYTE_LANES_B2 ==> 4'b1111 +MIG: 12:32:53 : Invalid Param: DDR3_BYTE_LANES_B3 ==> 4'b0000 +MIG: 12:32:53 : Invalid Param: DDR3_BYTE_LANES_B4 ==> 4'b0000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA_CTL_B0 ==> 4'b0111 +MIG: 12:32:53 : Invalid Param: DDR3_DATA_CTL_B1 ==> 4'b0001 +MIG: 12:32:53 : Invalid Param: DDR3_DATA_CTL_B2 ==> 4'b1111 +MIG: 12:32:53 : Invalid Param: DDR3_DATA_CTL_B3 ==> 4'b0000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA_CTL_B4 ==> 4'b0000 +MIG: 12:32:53 : Invalid Param: DDR3_PHY_0_BITLANES ==> 48'h000_1FF_3FE_2FF +MIG: 12:32:53 : Invalid Param: DDR3_PHY_1_BITLANES ==> 48'h7D4_BF0_8FF_2FF +MIG: 12:32:53 : Invalid Param: DDR3_PHY_2_BITLANES ==> 48'h3FE_1FF_1FF_2FF +MIG: 12:32:53 : Invalid Param: DDR3_CK_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12 +MIG: 12:32:53 : Invalid Param: DDR3_ADDR_MAP ==> 192'h000_000_138_12B_134_112_11B_139_116_117_132_126_136_127_137_125 +MIG: 12:32:53 : Invalid Param: DDR3_BANK_MAP ==> 36'h13A_111_115 +MIG: 12:32:53 : Invalid Param: DDR3_CAS_MAP ==> 12'h113 +MIG: 12:32:53 : Invalid Param: DDR3_CKE_ODT_BYTE_MAP ==> 8'h00 +MIG: 12:32:53 : Invalid Param: DDR3_CKE_MAP ==> 96'h000_000_000_000_000_000_000_124 +MIG: 12:32:53 : Invalid Param: DDR3_ODT_MAP ==> 96'h000_000_000_000_000_000_000_110 +MIG: 12:32:53 : Invalid Param: DDR3_CS_MAP ==> 120'h000_000_000_000_000_000_000_000_000_129 +MIG: 12:32:53 : Invalid Param: DDR3_PARITY_MAP ==> 12'h000 +MIG: 12:32:53 : Invalid Param: DDR3_RAS_MAP ==> 12'h128 +MIG: 12:32:53 : Invalid Param: DDR3_WE_MAP ==> 12'h114 +MIG: 12:32:53 : Invalid Param: DDR3_DQS_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_01_02_10_20_21_22_23 +MIG: 12:32:53 : Invalid Param: DDR3_DATA0_MAP ==> 96'h231_232_235_236_239_233_234_237 +MIG: 12:32:53 : Invalid Param: DDR3_DATA1_MAP ==> 96'h220_221_225_224_222_227_223_226 +MIG: 12:32:53 : Invalid Param: DDR3_DATA2_MAP ==> 96'h214_210_216_217_218_215_213_212 +MIG: 12:32:53 : Invalid Param: DDR3_DATA3_MAP ==> 96'h209_204_202_201_207_206_203_200 +MIG: 12:32:53 : Invalid Param: DDR3_DATA4_MAP ==> 96'h109_107_103_105_106_100_102_104 +MIG: 12:32:53 : Invalid Param: DDR3_DATA5_MAP ==> 96'h023_022_024_027_028_025_021_020 +MIG: 12:32:53 : Invalid Param: DDR3_DATA6_MAP ==> 96'h011_016_012_013_019_015_018_017 +MIG: 12:32:53 : Invalid Param: DDR3_DATA7_MAP ==> 96'h003_009_004_001_002_000_007_006 +MIG: 12:32:53 : Invalid Param: DDR3_DATA8_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA9_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA10_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA11_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA12_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA13_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA14_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA15_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA16_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_DATA17_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_MASK0_MAP ==> 108'h000_005_014_026_101_205_211_228_238 +MIG: 12:32:53 : Invalid Param: DDR3_MASK1_MAP ==> 108'h000_000_000_000_000_000_000_000_000 +MIG: 12:32:53 : Invalid Param: DDR3_SLOT_0_CONFIG ==> 8'b0000_0001 +MIG: 12:32:53 : Invalid Param: DDR3_SLOT_1_CONFIG ==> 8'b0000_0000 +MIG: 12:32:53 : Invalid Param: DDR3_IBUF_LPWR_MODE ==> "OFF" +MIG: 12:32:53 : Invalid Param: DDR3_DATA_IO_IDLE_PWRDWN ==> "ON" +MIG: 12:32:53 : Invalid Param: DDR3_BANK_TYPE ==> "HP_IO" +MIG: 12:32:53 : Invalid Param: DDR3_DATA_IO_PRIM_TYPE ==> "HP_LP" +MIG: 12:32:53 : Invalid Param: DDR3_CKE_ODT_AUX ==> "FALSE" +MIG: 12:32:53 : Invalid Param: DDR3_USER_REFRESH ==> "OFF" +MIG: 12:32:53 : Invalid Param: DDR3_WRLVL ==> "ON" +MIG: 12:32:53 : Invalid Param: DDR3_ORDERING ==> "NORM" +MIG: 12:32:53 : Invalid Param: DDR3_CALIB_ROW_ADD ==> 16'h0000 +MIG: 12:32:53 : Invalid Param: DDR3_CALIB_COL_ADD ==> 12'h000 +MIG: 12:32:53 : Invalid Param: DDR3_CALIB_BA_ADD ==> 3'h0 +MIG: 12:32:53 : Invalid Param: DDR3_TCQ ==> 100 +MIG: 12:32:53 : Invalid Param: DDR3_IDELAY_ADJ ==> "ON" +MIG: 12:32:53 : Invalid Param: DDR3_FINE_PER_BIT ==> "ON" +MIG: 12:32:53 : Invalid Param: DDR3_CENTER_COMP_MODE ==> "ON" +MIG: 12:32:53 : Invalid Param: DDR3_PI_VAL_ADJ ==> "ON" +MIG: 12:32:53 : Invalid Param: DDR3_IODELAY_GRP0 ==> "MIG_7SERIES_0_IODELAY_MIG0" +MIG: 12:32:53 : Invalid Param: DDR3_IODELAY_GRP1 ==> "MIG_7SERIES_0_IODELAY_MIG1" +MIG: 12:32:53 : Invalid Param: DDR3_SYSCLK_TYPE ==> "NO_BUFFER" +MIG: 12:32:53 : Invalid Param: DDR3_REFCLK_TYPE ==> "USE_SYSTEM_CLOCK" +MIG: 12:32:53 : Invalid Param: DDR3_SYS_RST_PORT ==> "FALSE" +MIG: 12:32:53 : Invalid Param: DDR3_FPGA_SPEED_GRADE ==> 2 +MIG: 12:32:53 : Invalid Param: DDR3_CMD_PIPE_PLUS1 ==> "ON" +MIG: 12:32:53 : Invalid Param: DDR3_DRAM_TYPE ==> "DDR3" +MIG: 12:32:53 : Invalid Param: DDR3_CAL_WIDTH ==> "HALF" +MIG: 12:32:53 : Invalid Param: DDR3_STARVE_LIMIT ==> 2 +MIG: 12:32:53 : Invalid Param: DDR3_REF_CLK_MMCM_IODELAY_CTRL ==> "TRUE" +MIG: 12:32:53 : Invalid Param: DDR3_REFCLK_FREQ ==> 200.0 +MIG: 12:32:53 : Invalid Param: DDR3_DIFF_TERM_REFCLK ==> "TRUE" +MIG: 12:32:53 : Invalid Param: DDR3_tCK ==> 1250 +MIG: 12:32:53 : +MIG: 12:32:53 : Valid Param: DDR3_nCK_PER_CLK ==> 4 +MIG: 12:32:53 : Invalid Param: DDR3_DIFF_TERM_SYSCLK ==> "TRUE" +MIG: 12:32:53 : ON +MIG: 12:32:53 : Valid Param: DDR3_DEBUG_PORT ==> ON +MIG: 12:32:53 : ON +MIG: 12:32:53 : Invalid Param: DDR3_TEMP_MON_CONTROL ==> "INTERNAL" +MIG: 12:32:53 : Invalid Param: DDR3_FPGA_VOLT_TYPE ==> "N" +MIG: 12:32:53 : Invalid Param: DDR3_RST_ACT_LOW ==> 1 +MIG: 12:32:53 : +MIG: 12:32:53 : +MIG: 12:32:53 : +MIG: 12:32:53 : Same Interface +MIG: 12:32:55 : Running synthesis.xit +MIG: 12:32:55 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 12:32:55 : IGN: 200 <==> 200 +MIG: 12:32:55 : Running vlog_synth_rpr.xit +MIG: 12:32:55 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 12:32:55 : IGN: 200 <==> 200 +MIG: 12:32:55 : Running simulation.xit +MIG: 12:32:55 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 12:32:55 : IGN: 200 <==> 200 +MIG: 12:32:55 : Running vlog_sim_rpr.xit .. PRASAD DBG1 +MIG: 12:32:55 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 12:32:55 : IGN: 200 <==> 200 +MIG: 12:32:55 : Running implementation.xit +MIG: 12:32:55 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 12:32:55 : IGN: 200 <==> 200 +MIG: 12:59:19 : Running customizer.xit +MIG: 12:59:19 : ################# RUNNING MIG INTERACTIVE ################### +MIG: 12:59:19 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0 +MIG: 12:59:19 : synp_flow: -- synthesis_mode: Other +MIG: 12:59:19 : outputDirectory: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/_tmp/ +MIG: 12:59:19 : vivado_mode: xpg_pa +MIG: 12:59:19 : locked false +MIG: 12:59:19 : HDL Language: Verilog +MIG: 12:59:19 : compInfo: false +MIG: 12:59:19 : Vivado Options xc7z045 ffg900 -2 +MIG: 12:59:19 : 1: xc7z045 2: ffg900 3: -2 +MIG: 12:59:19 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 12:59:19 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 12:59:19 : I am in catch area +MIG: 12:59:19 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/xil_txt.out ... +MIG: 12:59:52 : Prasad before: xmlPropertyPrj -- mig_b.prj +MIG: 12:59:52 : Prasad After: xmlPropertyPrj -- mig_a.prj +MIG: 12:59:52 : XML_INPUT_FILE: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/mig_a.prj +MIG: 12:59:52 : Component_Name: mig_7series_0 +MIG: 12:59:52 : Moving mig_7series_0_xmdf.tcl ... +MIG: 12:59:52 : Moving mig_7series_0 ... +MIG: 12:59:52 : Moving mig_7series_0.veo ... +MIG: 12:59:52 : Sending back 0 +MIG: 12:59:52 : xml_input_file: mig_a.prj +MIG: 12:59:52 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 12:59:52 : xml_input_file: mig_a.prj +MIG: 12:59:52 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 12:59:52 : In updateAllModelParams +MIG: 12:59:52 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 12:59:52 : IGN: 200 <==> 200 +MIG: 12:59:52 : XGUI hdlLanguage: Verilog +MIG: 12:59:52 : xgui vivado_mode: xpg_pa +MIG: 12:59:52 : xgui hdlLanguage: Verilog -- hdlExt: v +MIG: 12:59:52 : Reading /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig.v ... +MIG: 12:59:53 : +MIG: 12:59:53 : Inside fn mem: DDR3 +MIG: 12:59:53 : detect_uiclk: 200000000 +MIG: 12:59:53 : cntrl: memtype: DDR3 +MIG: 12:59:53 : +MIG: 12:59:53 : MMCM_VCO single ctrl param_name: MMCM_VCO -- possibleMaxVcoVal: 800 +MIG: 12:59:53 : +MIG: 12:59:53 : +MIG: 12:59:53 : +MIG: 12:59:53 : +MIG: 12:59:53 : polarity_value: 1 +MIG: 12:59:53 : +MIG: 12:59:53 : +MIG: 12:59:53 : cntrl: memtype: DDR3 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_BANK_WIDTH ==> 3 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_CK_WIDTH ==> 1 +MIG: 12:59:53 : Invalid Param: DDR3_COL_WIDTH ==> 10 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_CS_WIDTH ==> 1 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_nCS_PER_RANK ==> 1 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_CKE_WIDTH ==> 1 +MIG: 12:59:53 : Invalid Param: DDR3_DATA_BUF_ADDR_WIDTH ==> 5 +MIG: 12:59:53 : Invalid Param: DDR3_DQ_CNT_WIDTH ==> 6 +MIG: 12:59:53 : Invalid Param: DDR3_DQ_PER_DM ==> 8 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_DM_WIDTH ==> 8 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_DQ_WIDTH ==> 64 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_DQS_WIDTH ==> 8 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_DQS_CNT_WIDTH ==> 3 +MIG: 12:59:53 : Invalid Param: DDR3_DRAM_WIDTH ==> 8 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: ECC ==> OFF +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_DATA_WIDTH ==> 64 +MIG: 12:59:53 : Invalid Param: ECC_TEST ==> "OFF" +MIG: 12:59:53 : Invalid Param: DDR3_PAYLOAD_WIDTH ==> (ECC_TEST == "OFF") ? DATA_WIDTH : DQ_WIDTH +MIG: 12:59:53 : Invalid Param: DDR3_MEM_ADDR_ORDER ==> "BANK_ROW_COLUMN" +MIG: 12:59:53 : Invalid Param: DDR3_nBANK_MACHS ==> 4 +MIG: 12:59:53 : Invalid Param: DDR3_RANKS ==> 1 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_ODT_WIDTH ==> 1 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_ROW_WIDTH ==> 14 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_ADDR_WIDTH ==> 28 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_USE_CS_PORT ==> 1 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_USE_DM_PORT ==> 1 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_USE_ODT_PORT ==> 1 +MIG: 12:59:53 : Invalid Param: DDR3_IS_CLK_SHARED ==> "FALSE" +MIG: 12:59:53 : Invalid Param: DDR3_PHY_CONTROL_MASTER_BANK ==> 1 +MIG: 12:59:53 : Invalid Param: DDR3_MEM_DENSITY ==> "1Gb" +MIG: 12:59:53 : Invalid Param: DDR3_MEM_SPEEDGRADE ==> "125" +MIG: 12:59:53 : Invalid Param: DDR3_MEM_DEVICE_WIDTH ==> 8 +MIG: 12:59:53 : Invalid Param: DDR3_AL ==> "0" +MIG: 12:59:53 : Invalid Param: DDR3_nAL ==> 0 +MIG: 12:59:53 : Invalid Param: DDR3_BURST_MODE ==> "8" +MIG: 12:59:53 : Invalid Param: DDR3_BURST_TYPE ==> "SEQ" +MIG: 12:59:53 : Invalid Param: DDR3_CL ==> 11 +MIG: 12:59:53 : Invalid Param: DDR3_CWL ==> 8 +MIG: 12:59:53 : Invalid Param: DDR3_OUTPUT_DRV ==> "HIGH" +MIG: 12:59:53 : Invalid Param: DDR3_RTT_NOM ==> "40" +MIG: 12:59:53 : Invalid Param: DDR3_RTT_WR ==> "OFF" +MIG: 12:59:53 : Invalid Param: DDR3_ADDR_CMD_MODE ==> "1T" +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_REG_CTRL ==> OFF +MIG: 12:59:53 : Invalid Param: DDR3_CA_MIRROR ==> "OFF" +MIG: 12:59:53 : Invalid Param: DDR3_VDD_OP_VOLT ==> "150" +MIG: 12:59:53 : Invalid Param: DDR3_CLKIN_PERIOD ==> 5000 +MIG: 12:59:53 : Invalid Param: DDR3_CLKFBOUT_MULT ==> 8 +MIG: 12:59:53 : Invalid Param: DDR3_DIVCLK_DIVIDE ==> 1 +MIG: 12:59:53 : Invalid Param: DDR3_CLKOUT0_PHASE ==> 337.5 +MIG: 12:59:53 : Invalid Param: DDR3_CLKOUT0_DIVIDE ==> 2 +MIG: 12:59:53 : Invalid Param: DDR3_CLKOUT1_DIVIDE ==> 2 +MIG: 12:59:53 : Invalid Param: DDR3_CLKOUT2_DIVIDE ==> 32 +MIG: 12:59:53 : Invalid Param: DDR3_CLKOUT3_DIVIDE ==> 8 +MIG: 12:59:53 : Invalid Param: DDR3_MMCM_VCO ==> 800 +MIG: 12:59:53 : Invalid Param: DDR3_MMCM_MULT_F ==> 4 +MIG: 12:59:53 : Invalid Param: DDR3_MMCM_DIVCLK_DIVIDE ==> 1 +MIG: 12:59:53 : Invalid Param: DDR3_tCKE ==> 5000 +MIG: 12:59:53 : Invalid Param: DDR3_tFAW ==> 30000 +MIG: 12:59:53 : Invalid Param: DDR3_tPRDI ==> 1_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_tRAS ==> 35000 +MIG: 12:59:53 : Invalid Param: DDR3_tRCD ==> 13750 +MIG: 12:59:53 : Invalid Param: DDR3_tREFI ==> 7800000 +MIG: 12:59:53 : Invalid Param: DDR3_tRFC ==> 110000 +MIG: 12:59:53 : Invalid Param: DDR3_tRP ==> 13750 +MIG: 12:59:53 : Invalid Param: DDR3_tRRD ==> 6000 +MIG: 12:59:53 : Invalid Param: DDR3_tRTP ==> 7500 +MIG: 12:59:53 : Invalid Param: DDR3_tWTR ==> 7500 +MIG: 12:59:53 : Invalid Param: DDR3_tZQI ==> 128_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_tZQCS ==> 64 +MIG: 12:59:53 : Invalid Param: DDR3_SIM_BYPASS_INIT_CAL ==> "OFF" +MIG: 12:59:53 : Invalid Param: DDR3_SIMULATION ==> "FALSE" +MIG: 12:59:53 : Invalid Param: DDR3_BYTE_LANES_B0 ==> 4'b0111 +MIG: 12:59:53 : Invalid Param: DDR3_BYTE_LANES_B1 ==> 4'b1111 +MIG: 12:59:53 : Invalid Param: DDR3_BYTE_LANES_B2 ==> 4'b1111 +MIG: 12:59:53 : Invalid Param: DDR3_BYTE_LANES_B3 ==> 4'b0000 +MIG: 12:59:53 : Invalid Param: DDR3_BYTE_LANES_B4 ==> 4'b0000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA_CTL_B0 ==> 4'b0111 +MIG: 12:59:53 : Invalid Param: DDR3_DATA_CTL_B1 ==> 4'b0001 +MIG: 12:59:53 : Invalid Param: DDR3_DATA_CTL_B2 ==> 4'b1111 +MIG: 12:59:53 : Invalid Param: DDR3_DATA_CTL_B3 ==> 4'b0000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA_CTL_B4 ==> 4'b0000 +MIG: 12:59:53 : Invalid Param: DDR3_PHY_0_BITLANES ==> 48'h000_1FF_3FE_2FF +MIG: 12:59:53 : Invalid Param: DDR3_PHY_1_BITLANES ==> 48'h7D4_BF0_8FF_2FF +MIG: 12:59:53 : Invalid Param: DDR3_PHY_2_BITLANES ==> 48'h3FE_1FF_1FF_2FF +MIG: 12:59:53 : Invalid Param: DDR3_CK_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12 +MIG: 12:59:53 : Invalid Param: DDR3_ADDR_MAP ==> 192'h000_000_138_12B_134_112_11B_139_116_117_132_126_136_127_137_125 +MIG: 12:59:53 : Invalid Param: DDR3_BANK_MAP ==> 36'h13A_111_115 +MIG: 12:59:53 : Invalid Param: DDR3_CAS_MAP ==> 12'h113 +MIG: 12:59:53 : Invalid Param: DDR3_CKE_ODT_BYTE_MAP ==> 8'h00 +MIG: 12:59:53 : Invalid Param: DDR3_CKE_MAP ==> 96'h000_000_000_000_000_000_000_124 +MIG: 12:59:53 : Invalid Param: DDR3_ODT_MAP ==> 96'h000_000_000_000_000_000_000_110 +MIG: 12:59:53 : Invalid Param: DDR3_CS_MAP ==> 120'h000_000_000_000_000_000_000_000_000_129 +MIG: 12:59:53 : Invalid Param: DDR3_PARITY_MAP ==> 12'h000 +MIG: 12:59:53 : Invalid Param: DDR3_RAS_MAP ==> 12'h128 +MIG: 12:59:53 : Invalid Param: DDR3_WE_MAP ==> 12'h114 +MIG: 12:59:53 : Invalid Param: DDR3_DQS_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_01_02_10_20_21_22_23 +MIG: 12:59:53 : Invalid Param: DDR3_DATA0_MAP ==> 96'h231_232_235_236_239_233_234_237 +MIG: 12:59:53 : Invalid Param: DDR3_DATA1_MAP ==> 96'h220_221_225_224_222_227_223_226 +MIG: 12:59:53 : Invalid Param: DDR3_DATA2_MAP ==> 96'h214_210_216_217_218_215_213_212 +MIG: 12:59:53 : Invalid Param: DDR3_DATA3_MAP ==> 96'h209_204_202_201_207_206_203_200 +MIG: 12:59:53 : Invalid Param: DDR3_DATA4_MAP ==> 96'h109_107_103_105_106_100_102_104 +MIG: 12:59:53 : Invalid Param: DDR3_DATA5_MAP ==> 96'h023_022_024_027_028_025_021_020 +MIG: 12:59:53 : Invalid Param: DDR3_DATA6_MAP ==> 96'h011_016_012_013_019_015_018_017 +MIG: 12:59:53 : Invalid Param: DDR3_DATA7_MAP ==> 96'h003_009_004_001_002_000_007_006 +MIG: 12:59:53 : Invalid Param: DDR3_DATA8_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA9_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA10_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA11_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA12_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA13_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA14_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA15_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA16_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_DATA17_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_MASK0_MAP ==> 108'h000_005_014_026_101_205_211_228_238 +MIG: 12:59:53 : Invalid Param: DDR3_MASK1_MAP ==> 108'h000_000_000_000_000_000_000_000_000 +MIG: 12:59:53 : Invalid Param: DDR3_SLOT_0_CONFIG ==> 8'b0000_0001 +MIG: 12:59:53 : Invalid Param: DDR3_SLOT_1_CONFIG ==> 8'b0000_0000 +MIG: 12:59:53 : Invalid Param: DDR3_IBUF_LPWR_MODE ==> "OFF" +MIG: 12:59:53 : Invalid Param: DDR3_DATA_IO_IDLE_PWRDWN ==> "ON" +MIG: 12:59:53 : Invalid Param: DDR3_BANK_TYPE ==> "HP_IO" +MIG: 12:59:53 : Invalid Param: DDR3_DATA_IO_PRIM_TYPE ==> "HP_LP" +MIG: 12:59:53 : Invalid Param: DDR3_CKE_ODT_AUX ==> "FALSE" +MIG: 12:59:53 : Invalid Param: DDR3_USER_REFRESH ==> "OFF" +MIG: 12:59:53 : Invalid Param: DDR3_WRLVL ==> "ON" +MIG: 12:59:53 : Invalid Param: DDR3_ORDERING ==> "NORM" +MIG: 12:59:53 : Invalid Param: DDR3_CALIB_ROW_ADD ==> 16'h0000 +MIG: 12:59:53 : Invalid Param: DDR3_CALIB_COL_ADD ==> 12'h000 +MIG: 12:59:53 : Invalid Param: DDR3_CALIB_BA_ADD ==> 3'h0 +MIG: 12:59:53 : Invalid Param: DDR3_TCQ ==> 100 +MIG: 12:59:53 : Invalid Param: DDR3_IDELAY_ADJ ==> "ON" +MIG: 12:59:53 : Invalid Param: DDR3_FINE_PER_BIT ==> "ON" +MIG: 12:59:53 : Invalid Param: DDR3_CENTER_COMP_MODE ==> "ON" +MIG: 12:59:53 : Invalid Param: DDR3_PI_VAL_ADJ ==> "ON" +MIG: 12:59:53 : Invalid Param: DDR3_IODELAY_GRP0 ==> "MIG_7SERIES_0_IODELAY_MIG0" +MIG: 12:59:53 : Invalid Param: DDR3_IODELAY_GRP1 ==> "MIG_7SERIES_0_IODELAY_MIG1" +MIG: 12:59:53 : Invalid Param: DDR3_SYSCLK_TYPE ==> "NO_BUFFER" +MIG: 12:59:53 : Invalid Param: DDR3_REFCLK_TYPE ==> "USE_SYSTEM_CLOCK" +MIG: 12:59:53 : Invalid Param: DDR3_SYS_RST_PORT ==> "FALSE" +MIG: 12:59:53 : Invalid Param: DDR3_FPGA_SPEED_GRADE ==> 2 +MIG: 12:59:53 : Invalid Param: DDR3_CMD_PIPE_PLUS1 ==> "ON" +MIG: 12:59:53 : Invalid Param: DDR3_DRAM_TYPE ==> "DDR3" +MIG: 12:59:53 : Invalid Param: DDR3_CAL_WIDTH ==> "HALF" +MIG: 12:59:53 : Invalid Param: DDR3_STARVE_LIMIT ==> 2 +MIG: 12:59:53 : Invalid Param: DDR3_REF_CLK_MMCM_IODELAY_CTRL ==> "TRUE" +MIG: 12:59:53 : Invalid Param: DDR3_REFCLK_FREQ ==> 200.0 +MIG: 12:59:53 : Invalid Param: DDR3_DIFF_TERM_REFCLK ==> "TRUE" +MIG: 12:59:53 : Invalid Param: DDR3_tCK ==> 1250 +MIG: 12:59:53 : +MIG: 12:59:53 : Valid Param: DDR3_nCK_PER_CLK ==> 4 +MIG: 12:59:53 : Invalid Param: DDR3_DIFF_TERM_SYSCLK ==> "TRUE" +MIG: 12:59:53 : OFF +MIG: 12:59:53 : Valid Param: DDR3_DEBUG_PORT ==> OFF +MIG: 12:59:53 : OFF +MIG: 12:59:53 : Invalid Param: DDR3_TEMP_MON_CONTROL ==> "INTERNAL" +MIG: 12:59:53 : Invalid Param: DDR3_FPGA_VOLT_TYPE ==> "N" +MIG: 12:59:53 : Invalid Param: DDR3_RST_ACT_LOW ==> 1 +MIG: 12:59:53 : +MIG: 12:59:53 : +MIG: 12:59:53 : +MIG: 12:59:53 : Same Interface +MIG: 13:00:00 : Running synthesis.xit +MIG: 13:00:00 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 13:00:00 : IGN: 200 <==> 200 +MIG: 13:00:00 : Running vlog_synth_rpr.xit +MIG: 13:00:00 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 13:00:00 : IGN: 200 <==> 200 +MIG: 13:00:00 : Running simulation.xit +MIG: 13:00:00 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 13:00:00 : IGN: 200 <==> 200 +MIG: 13:00:00 : Running vlog_sim_rpr.xit .. PRASAD DBG1 +MIG: 13:00:00 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 13:00:00 : IGN: 200 <==> 200 +MIG: 13:00:01 : Running implementation.xit +MIG: 13:00:01 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 13:00:01 : IGN: 200 <==> 200 +MIG: 14:11:44 : Running customizer.xit +MIG: 14:11:44 : ################# RUNNING MIG INTERACTIVE ################### +MIG: 14:11:44 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0 +MIG: 14:11:44 : synp_flow: -- synthesis_mode: Other +MIG: 14:11:44 : outputDirectory: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/_tmp/ +MIG: 14:11:44 : vivado_mode: xpg_pa +MIG: 14:11:44 : locked false +MIG: 14:11:44 : HDL Language: Verilog +MIG: 14:11:44 : compInfo: false +MIG: 14:11:44 : Vivado Options xc7z045 ffg900 -2 +MIG: 14:11:44 : 1: xc7z045 2: ffg900 3: -2 +MIG: 14:11:44 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 14:11:44 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 14:11:44 : I am in catch area +MIG: 14:11:44 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/xil_txt.out ... +MIG: 14:14:34 : Prasad before: xmlPropertyPrj -- mig_a.prj +MIG: 14:14:34 : Prasad After: xmlPropertyPrj -- mig_b.prj +MIG: 14:14:34 : XML_INPUT_FILE: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/mig_b.prj +MIG: 14:14:34 : Component_Name: mig_7series_0 +MIG: 14:14:34 : Moving mig_7series_0_xmdf.tcl ... +MIG: 14:14:34 : Moving mig_7series_0 ... +MIG: 14:14:34 : Moving mig_7series_0.veo ... +MIG: 14:14:34 : Sending back 0 +MIG: 14:14:34 : xml_input_file: mig_b.prj +MIG: 14:14:34 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_b.prj +MIG: 14:14:34 : xml_input_file: mig_b.prj +MIG: 14:14:34 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_b.prj +MIG: 14:14:34 : In updateAllModelParams +MIG: 14:14:34 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 14:14:34 : IGN: 200 <==> 200 +MIG: 14:14:34 : XGUI hdlLanguage: Verilog +MIG: 14:14:34 : xgui vivado_mode: xpg_pa +MIG: 14:14:34 : xgui hdlLanguage: Verilog -- hdlExt: v +MIG: 14:14:34 : Reading /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig.v ... +MIG: 14:14:36 : +MIG: 14:14:36 : Inside fn mem: DDR3 +MIG: 14:14:36 : detect_uiclk: 200000000 +MIG: 14:14:36 : cntrl: memtype: DDR3 +MIG: 14:14:36 : +MIG: 14:14:36 : MMCM_VCO single ctrl param_name: MMCM_VCO -- possibleMaxVcoVal: 800 +MIG: 14:14:36 : +MIG: 14:14:36 : +MIG: 14:14:36 : +MIG: 14:14:36 : +MIG: 14:14:36 : polarity_value: 1 +MIG: 14:14:36 : +MIG: 14:14:36 : +MIG: 14:14:36 : cntrl: memtype: DDR3 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_BANK_WIDTH ==> 3 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_CK_WIDTH ==> 1 +MIG: 14:14:36 : Invalid Param: DDR3_COL_WIDTH ==> 10 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_CS_WIDTH ==> 1 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_nCS_PER_RANK ==> 1 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_CKE_WIDTH ==> 1 +MIG: 14:14:36 : Invalid Param: DDR3_DATA_BUF_ADDR_WIDTH ==> 5 +MIG: 14:14:36 : Invalid Param: DDR3_DQ_CNT_WIDTH ==> 6 +MIG: 14:14:36 : Invalid Param: DDR3_DQ_PER_DM ==> 8 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_DM_WIDTH ==> 8 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_DQ_WIDTH ==> 64 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_DQS_WIDTH ==> 8 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_DQS_CNT_WIDTH ==> 3 +MIG: 14:14:36 : Invalid Param: DDR3_DRAM_WIDTH ==> 8 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: ECC ==> OFF +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_DATA_WIDTH ==> 64 +MIG: 14:14:36 : Invalid Param: ECC_TEST ==> "OFF" +MIG: 14:14:36 : Invalid Param: DDR3_PAYLOAD_WIDTH ==> (ECC_TEST == "OFF") ? DATA_WIDTH : DQ_WIDTH +MIG: 14:14:36 : Invalid Param: DDR3_MEM_ADDR_ORDER ==> "BANK_ROW_COLUMN" +MIG: 14:14:36 : Invalid Param: DDR3_nBANK_MACHS ==> 4 +MIG: 14:14:36 : Invalid Param: DDR3_RANKS ==> 1 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_ODT_WIDTH ==> 1 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_ROW_WIDTH ==> 14 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_ADDR_WIDTH ==> 28 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_USE_CS_PORT ==> 1 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_USE_DM_PORT ==> 1 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_USE_ODT_PORT ==> 1 +MIG: 14:14:36 : Invalid Param: DDR3_IS_CLK_SHARED ==> "FALSE" +MIG: 14:14:36 : Invalid Param: DDR3_PHY_CONTROL_MASTER_BANK ==> 1 +MIG: 14:14:36 : Invalid Param: DDR3_MEM_DENSITY ==> "1Gb" +MIG: 14:14:36 : Invalid Param: DDR3_MEM_SPEEDGRADE ==> "125" +MIG: 14:14:36 : Invalid Param: DDR3_MEM_DEVICE_WIDTH ==> 8 +MIG: 14:14:36 : Invalid Param: DDR3_AL ==> "0" +MIG: 14:14:36 : Invalid Param: DDR3_nAL ==> 0 +MIG: 14:14:36 : Invalid Param: DDR3_BURST_MODE ==> "8" +MIG: 14:14:36 : Invalid Param: DDR3_BURST_TYPE ==> "SEQ" +MIG: 14:14:36 : Invalid Param: DDR3_CL ==> 11 +MIG: 14:14:36 : Invalid Param: DDR3_CWL ==> 8 +MIG: 14:14:36 : Invalid Param: DDR3_OUTPUT_DRV ==> "HIGH" +MIG: 14:14:36 : Invalid Param: DDR3_RTT_NOM ==> "40" +MIG: 14:14:36 : Invalid Param: DDR3_RTT_WR ==> "OFF" +MIG: 14:14:36 : Invalid Param: DDR3_ADDR_CMD_MODE ==> "1T" +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_REG_CTRL ==> OFF +MIG: 14:14:36 : Invalid Param: DDR3_CA_MIRROR ==> "OFF" +MIG: 14:14:36 : Invalid Param: DDR3_VDD_OP_VOLT ==> "150" +MIG: 14:14:36 : Invalid Param: DDR3_CLKIN_PERIOD ==> 5000 +MIG: 14:14:36 : Invalid Param: DDR3_CLKFBOUT_MULT ==> 8 +MIG: 14:14:36 : Invalid Param: DDR3_DIVCLK_DIVIDE ==> 1 +MIG: 14:14:36 : Invalid Param: DDR3_CLKOUT0_PHASE ==> 337.5 +MIG: 14:14:36 : Invalid Param: DDR3_CLKOUT0_DIVIDE ==> 2 +MIG: 14:14:36 : Invalid Param: DDR3_CLKOUT1_DIVIDE ==> 2 +MIG: 14:14:36 : Invalid Param: DDR3_CLKOUT2_DIVIDE ==> 32 +MIG: 14:14:36 : Invalid Param: DDR3_CLKOUT3_DIVIDE ==> 8 +MIG: 14:14:36 : Invalid Param: DDR3_MMCM_VCO ==> 800 +MIG: 14:14:36 : Invalid Param: DDR3_MMCM_MULT_F ==> 4 +MIG: 14:14:36 : Invalid Param: DDR3_MMCM_DIVCLK_DIVIDE ==> 1 +MIG: 14:14:36 : Invalid Param: DDR3_tCKE ==> 5000 +MIG: 14:14:36 : Invalid Param: DDR3_tFAW ==> 30000 +MIG: 14:14:36 : Invalid Param: DDR3_tPRDI ==> 1_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_tRAS ==> 35000 +MIG: 14:14:36 : Invalid Param: DDR3_tRCD ==> 13750 +MIG: 14:14:36 : Invalid Param: DDR3_tREFI ==> 7800000 +MIG: 14:14:36 : Invalid Param: DDR3_tRFC ==> 110000 +MIG: 14:14:36 : Invalid Param: DDR3_tRP ==> 13750 +MIG: 14:14:36 : Invalid Param: DDR3_tRRD ==> 6000 +MIG: 14:14:36 : Invalid Param: DDR3_tRTP ==> 7500 +MIG: 14:14:36 : Invalid Param: DDR3_tWTR ==> 7500 +MIG: 14:14:36 : Invalid Param: DDR3_tZQI ==> 128_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_tZQCS ==> 64 +MIG: 14:14:36 : Invalid Param: DDR3_SIM_BYPASS_INIT_CAL ==> "OFF" +MIG: 14:14:36 : Invalid Param: DDR3_SIMULATION ==> "FALSE" +MIG: 14:14:36 : Invalid Param: DDR3_BYTE_LANES_B0 ==> 4'b0111 +MIG: 14:14:36 : Invalid Param: DDR3_BYTE_LANES_B1 ==> 4'b1111 +MIG: 14:14:36 : Invalid Param: DDR3_BYTE_LANES_B2 ==> 4'b1111 +MIG: 14:14:36 : Invalid Param: DDR3_BYTE_LANES_B3 ==> 4'b0000 +MIG: 14:14:36 : Invalid Param: DDR3_BYTE_LANES_B4 ==> 4'b0000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA_CTL_B0 ==> 4'b0111 +MIG: 14:14:36 : Invalid Param: DDR3_DATA_CTL_B1 ==> 4'b0001 +MIG: 14:14:36 : Invalid Param: DDR3_DATA_CTL_B2 ==> 4'b1111 +MIG: 14:14:36 : Invalid Param: DDR3_DATA_CTL_B3 ==> 4'b0000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA_CTL_B4 ==> 4'b0000 +MIG: 14:14:36 : Invalid Param: DDR3_PHY_0_BITLANES ==> 48'h000_1FF_3FE_2FF +MIG: 14:14:36 : Invalid Param: DDR3_PHY_1_BITLANES ==> 48'h7D4_BF0_8FF_2FF +MIG: 14:14:36 : Invalid Param: DDR3_PHY_2_BITLANES ==> 48'h3FE_1FF_1FF_2FF +MIG: 14:14:36 : Invalid Param: DDR3_CK_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12 +MIG: 14:14:36 : Invalid Param: DDR3_ADDR_MAP ==> 192'h000_000_138_12B_134_112_11B_139_116_117_132_126_136_127_137_125 +MIG: 14:14:36 : Invalid Param: DDR3_BANK_MAP ==> 36'h13A_111_115 +MIG: 14:14:36 : Invalid Param: DDR3_CAS_MAP ==> 12'h113 +MIG: 14:14:36 : Invalid Param: DDR3_CKE_ODT_BYTE_MAP ==> 8'h00 +MIG: 14:14:36 : Invalid Param: DDR3_CKE_MAP ==> 96'h000_000_000_000_000_000_000_124 +MIG: 14:14:36 : Invalid Param: DDR3_ODT_MAP ==> 96'h000_000_000_000_000_000_000_110 +MIG: 14:14:36 : Invalid Param: DDR3_CS_MAP ==> 120'h000_000_000_000_000_000_000_000_000_129 +MIG: 14:14:36 : Invalid Param: DDR3_PARITY_MAP ==> 12'h000 +MIG: 14:14:36 : Invalid Param: DDR3_RAS_MAP ==> 12'h128 +MIG: 14:14:36 : Invalid Param: DDR3_WE_MAP ==> 12'h114 +MIG: 14:14:36 : Invalid Param: DDR3_DQS_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_01_02_10_20_21_22_23 +MIG: 14:14:36 : Invalid Param: DDR3_DATA0_MAP ==> 96'h231_232_235_236_239_233_234_237 +MIG: 14:14:36 : Invalid Param: DDR3_DATA1_MAP ==> 96'h220_221_225_224_222_227_223_226 +MIG: 14:14:36 : Invalid Param: DDR3_DATA2_MAP ==> 96'h214_210_216_217_218_215_213_212 +MIG: 14:14:36 : Invalid Param: DDR3_DATA3_MAP ==> 96'h209_204_202_201_207_206_203_200 +MIG: 14:14:36 : Invalid Param: DDR3_DATA4_MAP ==> 96'h109_107_103_105_106_100_102_104 +MIG: 14:14:36 : Invalid Param: DDR3_DATA5_MAP ==> 96'h023_022_024_027_028_025_021_020 +MIG: 14:14:36 : Invalid Param: DDR3_DATA6_MAP ==> 96'h011_016_012_013_019_015_018_017 +MIG: 14:14:36 : Invalid Param: DDR3_DATA7_MAP ==> 96'h003_009_004_001_002_000_007_006 +MIG: 14:14:36 : Invalid Param: DDR3_DATA8_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA9_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA10_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA11_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA12_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA13_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA14_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA15_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA16_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_DATA17_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_MASK0_MAP ==> 108'h000_005_014_026_101_205_211_228_238 +MIG: 14:14:36 : Invalid Param: DDR3_MASK1_MAP ==> 108'h000_000_000_000_000_000_000_000_000 +MIG: 14:14:36 : Invalid Param: DDR3_SLOT_0_CONFIG ==> 8'b0000_0001 +MIG: 14:14:36 : Invalid Param: DDR3_SLOT_1_CONFIG ==> 8'b0000_0000 +MIG: 14:14:36 : Invalid Param: DDR3_IBUF_LPWR_MODE ==> "OFF" +MIG: 14:14:36 : Invalid Param: DDR3_DATA_IO_IDLE_PWRDWN ==> "ON" +MIG: 14:14:36 : Invalid Param: DDR3_BANK_TYPE ==> "HP_IO" +MIG: 14:14:36 : Invalid Param: DDR3_DATA_IO_PRIM_TYPE ==> "HP_LP" +MIG: 14:14:36 : Invalid Param: DDR3_CKE_ODT_AUX ==> "FALSE" +MIG: 14:14:36 : Invalid Param: DDR3_USER_REFRESH ==> "OFF" +MIG: 14:14:36 : Invalid Param: DDR3_WRLVL ==> "ON" +MIG: 14:14:36 : Invalid Param: DDR3_ORDERING ==> "NORM" +MIG: 14:14:36 : Invalid Param: DDR3_CALIB_ROW_ADD ==> 16'h0000 +MIG: 14:14:36 : Invalid Param: DDR3_CALIB_COL_ADD ==> 12'h000 +MIG: 14:14:36 : Invalid Param: DDR3_CALIB_BA_ADD ==> 3'h0 +MIG: 14:14:36 : Invalid Param: DDR3_TCQ ==> 100 +MIG: 14:14:36 : Invalid Param: DDR3_IDELAY_ADJ ==> "ON" +MIG: 14:14:36 : Invalid Param: DDR3_FINE_PER_BIT ==> "ON" +MIG: 14:14:36 : Invalid Param: DDR3_CENTER_COMP_MODE ==> "ON" +MIG: 14:14:36 : Invalid Param: DDR3_PI_VAL_ADJ ==> "ON" +MIG: 14:14:36 : Invalid Param: DDR3_IODELAY_GRP0 ==> "MIG_7SERIES_0_IODELAY_MIG0" +MIG: 14:14:36 : Invalid Param: DDR3_IODELAY_GRP1 ==> "MIG_7SERIES_0_IODELAY_MIG1" +MIG: 14:14:36 : Invalid Param: DDR3_SYSCLK_TYPE ==> "NO_BUFFER" +MIG: 14:14:36 : Invalid Param: DDR3_REFCLK_TYPE ==> "USE_SYSTEM_CLOCK" +MIG: 14:14:36 : Invalid Param: DDR3_SYS_RST_PORT ==> "FALSE" +MIG: 14:14:36 : Invalid Param: DDR3_FPGA_SPEED_GRADE ==> 2 +MIG: 14:14:36 : Invalid Param: DDR3_CMD_PIPE_PLUS1 ==> "ON" +MIG: 14:14:36 : Invalid Param: DDR3_DRAM_TYPE ==> "DDR3" +MIG: 14:14:36 : Invalid Param: DDR3_CAL_WIDTH ==> "HALF" +MIG: 14:14:36 : Invalid Param: DDR3_STARVE_LIMIT ==> 2 +MIG: 14:14:36 : Invalid Param: DDR3_REF_CLK_MMCM_IODELAY_CTRL ==> "TRUE" +MIG: 14:14:36 : Invalid Param: DDR3_REFCLK_FREQ ==> 200.0 +MIG: 14:14:36 : Invalid Param: DDR3_DIFF_TERM_REFCLK ==> "TRUE" +MIG: 14:14:36 : Invalid Param: DDR3_tCK ==> 1250 +MIG: 14:14:36 : +MIG: 14:14:36 : Valid Param: DDR3_nCK_PER_CLK ==> 4 +MIG: 14:14:36 : Invalid Param: DDR3_DIFF_TERM_SYSCLK ==> "TRUE" +MIG: 14:14:36 : ON +MIG: 14:14:36 : Valid Param: DDR3_DEBUG_PORT ==> ON +MIG: 14:14:36 : ON +MIG: 14:14:36 : Invalid Param: DDR3_TEMP_MON_CONTROL ==> "INTERNAL" +MIG: 14:14:36 : Invalid Param: DDR3_FPGA_VOLT_TYPE ==> "N" +MIG: 14:14:36 : Invalid Param: DDR3_RST_ACT_LOW ==> 1 +MIG: 14:14:36 : +MIG: 14:14:36 : +MIG: 14:14:36 : +MIG: 14:14:36 : Same Interface +MIG: 14:14:38 : Running synthesis.xit +MIG: 14:14:38 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 14:14:38 : IGN: 200 <==> 200 +MIG: 14:14:38 : Running vlog_synth_rpr.xit +MIG: 14:14:38 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 14:14:38 : IGN: 200 <==> 200 +MIG: 14:14:38 : Running simulation.xit +MIG: 14:14:38 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 14:14:38 : IGN: 200 <==> 200 +MIG: 14:14:38 : Running vlog_sim_rpr.xit .. PRASAD DBG1 +MIG: 14:14:38 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 14:14:38 : IGN: 200 <==> 200 +MIG: 14:14:38 : Running implementation.xit +MIG: 14:14:38 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 14:14:38 : IGN: 200 <==> 200 +MIG: 20:35:03 : Running customizer.xit +MIG: 20:35:03 : ################# RUNNING MIG INTERACTIVE ################### +MIG: 20:35:03 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0 +MIG: 20:35:03 : synp_flow: -- synthesis_mode: Other +MIG: 20:35:03 : outputDirectory: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/_tmp/ +MIG: 20:35:03 : vivado_mode: xpg_pa +MIG: 20:35:03 : locked false +MIG: 20:35:03 : HDL Language: Verilog +MIG: 20:35:03 : compInfo: false +MIG: 20:35:03 : Vivado Options xc7z045 ffg900 -2 +MIG: 20:35:03 : 1: xc7z045 2: ffg900 3: -2 +MIG: 20:35:03 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 20:35:03 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 20:35:03 : I am in catch area +MIG: 20:35:03 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/xil_txt.out ... +MIG: 20:36:08 : Prasad before: xmlPropertyPrj -- mig_b.prj +MIG: 20:36:08 : Prasad After: xmlPropertyPrj -- mig_a.prj +MIG: 20:36:08 : XML_INPUT_FILE: /home/spartan/.Xil/Vivado-2673-SPX-Workstation/coregen/mig_7series_0/mig_a.prj +MIG: 20:36:08 : Component_Name: mig_7series_0 +MIG: 20:36:08 : Moving mig_7series_0_xmdf.tcl ... +MIG: 20:36:08 : Moving mig_7series_0 ... +MIG: 20:36:08 : Moving mig_7series_0.veo ... +MIG: 20:36:08 : Sending back 0 +MIG: 20:36:09 : xml_input_file: mig_a.prj +MIG: 20:36:09 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 20:36:09 : xml_input_file: mig_a.prj +MIG: 20:36:09 : Absolute path of xml_input_file: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 20:36:09 : In updateAllModelParams +MIG: 20:36:09 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 20:36:09 : IGN: 200 <==> 200 +MIG: 20:36:09 : XGUI hdlLanguage: Verilog +MIG: 20:36:09 : xgui vivado_mode: xpg_pa +MIG: 20:36:09 : xgui hdlLanguage: Verilog -- hdlExt: v +MIG: 20:36:09 : Reading /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig.v ... +MIG: 20:36:09 : +MIG: 20:36:09 : Inside fn mem: DDR3 +MIG: 20:36:09 : detect_uiclk: 200000000 +MIG: 20:36:09 : cntrl: memtype: DDR3 +MIG: 20:36:09 : +MIG: 20:36:09 : MMCM_VCO single ctrl param_name: MMCM_VCO -- possibleMaxVcoVal: 800 +MIG: 20:36:09 : +MIG: 20:36:09 : +MIG: 20:36:09 : +MIG: 20:36:09 : +MIG: 20:36:09 : polarity_value: 1 +MIG: 20:36:09 : +MIG: 20:36:09 : +MIG: 20:36:09 : cntrl: memtype: DDR3 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_BANK_WIDTH ==> 3 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_CK_WIDTH ==> 1 +MIG: 20:36:09 : Invalid Param: DDR3_COL_WIDTH ==> 10 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_CS_WIDTH ==> 1 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_nCS_PER_RANK ==> 1 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_CKE_WIDTH ==> 1 +MIG: 20:36:09 : Invalid Param: DDR3_DATA_BUF_ADDR_WIDTH ==> 5 +MIG: 20:36:09 : Invalid Param: DDR3_DQ_CNT_WIDTH ==> 6 +MIG: 20:36:09 : Invalid Param: DDR3_DQ_PER_DM ==> 8 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_DM_WIDTH ==> 8 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_DQ_WIDTH ==> 64 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_DQS_WIDTH ==> 8 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_DQS_CNT_WIDTH ==> 3 +MIG: 20:36:09 : Invalid Param: DDR3_DRAM_WIDTH ==> 8 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: ECC ==> OFF +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_DATA_WIDTH ==> 64 +MIG: 20:36:09 : Invalid Param: ECC_TEST ==> "OFF" +MIG: 20:36:09 : Invalid Param: DDR3_PAYLOAD_WIDTH ==> (ECC_TEST == "OFF") ? DATA_WIDTH : DQ_WIDTH +MIG: 20:36:09 : Invalid Param: DDR3_MEM_ADDR_ORDER ==> "BANK_ROW_COLUMN" +MIG: 20:36:09 : Invalid Param: DDR3_nBANK_MACHS ==> 4 +MIG: 20:36:09 : Invalid Param: DDR3_RANKS ==> 1 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_ODT_WIDTH ==> 1 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_ROW_WIDTH ==> 14 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_ADDR_WIDTH ==> 28 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_USE_CS_PORT ==> 1 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_USE_DM_PORT ==> 1 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_USE_ODT_PORT ==> 1 +MIG: 20:36:09 : Invalid Param: DDR3_IS_CLK_SHARED ==> "FALSE" +MIG: 20:36:09 : Invalid Param: DDR3_PHY_CONTROL_MASTER_BANK ==> 1 +MIG: 20:36:09 : Invalid Param: DDR3_MEM_DENSITY ==> "1Gb" +MIG: 20:36:09 : Invalid Param: DDR3_MEM_SPEEDGRADE ==> "125" +MIG: 20:36:09 : Invalid Param: DDR3_MEM_DEVICE_WIDTH ==> 8 +MIG: 20:36:09 : Invalid Param: DDR3_AL ==> "0" +MIG: 20:36:09 : Invalid Param: DDR3_nAL ==> 0 +MIG: 20:36:09 : Invalid Param: DDR3_BURST_MODE ==> "8" +MIG: 20:36:09 : Invalid Param: DDR3_BURST_TYPE ==> "SEQ" +MIG: 20:36:09 : Invalid Param: DDR3_CL ==> 11 +MIG: 20:36:09 : Invalid Param: DDR3_CWL ==> 8 +MIG: 20:36:09 : Invalid Param: DDR3_OUTPUT_DRV ==> "HIGH" +MIG: 20:36:09 : Invalid Param: DDR3_RTT_NOM ==> "40" +MIG: 20:36:09 : Invalid Param: DDR3_RTT_WR ==> "OFF" +MIG: 20:36:09 : Invalid Param: DDR3_ADDR_CMD_MODE ==> "1T" +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_REG_CTRL ==> OFF +MIG: 20:36:09 : Invalid Param: DDR3_CA_MIRROR ==> "OFF" +MIG: 20:36:09 : Invalid Param: DDR3_VDD_OP_VOLT ==> "150" +MIG: 20:36:09 : Invalid Param: DDR3_CLKIN_PERIOD ==> 5000 +MIG: 20:36:09 : Invalid Param: DDR3_CLKFBOUT_MULT ==> 8 +MIG: 20:36:09 : Invalid Param: DDR3_DIVCLK_DIVIDE ==> 1 +MIG: 20:36:09 : Invalid Param: DDR3_CLKOUT0_PHASE ==> 337.5 +MIG: 20:36:09 : Invalid Param: DDR3_CLKOUT0_DIVIDE ==> 2 +MIG: 20:36:09 : Invalid Param: DDR3_CLKOUT1_DIVIDE ==> 2 +MIG: 20:36:09 : Invalid Param: DDR3_CLKOUT2_DIVIDE ==> 32 +MIG: 20:36:09 : Invalid Param: DDR3_CLKOUT3_DIVIDE ==> 8 +MIG: 20:36:09 : Invalid Param: DDR3_MMCM_VCO ==> 800 +MIG: 20:36:09 : Invalid Param: DDR3_MMCM_MULT_F ==> 4 +MIG: 20:36:09 : Invalid Param: DDR3_MMCM_DIVCLK_DIVIDE ==> 1 +MIG: 20:36:09 : Invalid Param: DDR3_tCKE ==> 5000 +MIG: 20:36:09 : Invalid Param: DDR3_tFAW ==> 30000 +MIG: 20:36:09 : Invalid Param: DDR3_tPRDI ==> 1_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_tRAS ==> 35000 +MIG: 20:36:09 : Invalid Param: DDR3_tRCD ==> 13750 +MIG: 20:36:09 : Invalid Param: DDR3_tREFI ==> 7800000 +MIG: 20:36:09 : Invalid Param: DDR3_tRFC ==> 110000 +MIG: 20:36:09 : Invalid Param: DDR3_tRP ==> 13750 +MIG: 20:36:09 : Invalid Param: DDR3_tRRD ==> 6000 +MIG: 20:36:09 : Invalid Param: DDR3_tRTP ==> 7500 +MIG: 20:36:09 : Invalid Param: DDR3_tWTR ==> 7500 +MIG: 20:36:09 : Invalid Param: DDR3_tZQI ==> 128_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_tZQCS ==> 64 +MIG: 20:36:09 : Invalid Param: DDR3_SIM_BYPASS_INIT_CAL ==> "OFF" +MIG: 20:36:09 : Invalid Param: DDR3_SIMULATION ==> "FALSE" +MIG: 20:36:09 : Invalid Param: DDR3_BYTE_LANES_B0 ==> 4'b0111 +MIG: 20:36:09 : Invalid Param: DDR3_BYTE_LANES_B1 ==> 4'b1111 +MIG: 20:36:09 : Invalid Param: DDR3_BYTE_LANES_B2 ==> 4'b1111 +MIG: 20:36:09 : Invalid Param: DDR3_BYTE_LANES_B3 ==> 4'b0000 +MIG: 20:36:09 : Invalid Param: DDR3_BYTE_LANES_B4 ==> 4'b0000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA_CTL_B0 ==> 4'b0111 +MIG: 20:36:09 : Invalid Param: DDR3_DATA_CTL_B1 ==> 4'b0001 +MIG: 20:36:09 : Invalid Param: DDR3_DATA_CTL_B2 ==> 4'b1111 +MIG: 20:36:09 : Invalid Param: DDR3_DATA_CTL_B3 ==> 4'b0000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA_CTL_B4 ==> 4'b0000 +MIG: 20:36:09 : Invalid Param: DDR3_PHY_0_BITLANES ==> 48'h000_1FF_3FE_2FF +MIG: 20:36:09 : Invalid Param: DDR3_PHY_1_BITLANES ==> 48'h7D4_BF0_8FF_2FF +MIG: 20:36:09 : Invalid Param: DDR3_PHY_2_BITLANES ==> 48'h3FE_1FF_1FF_2FF +MIG: 20:36:09 : Invalid Param: DDR3_CK_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_12 +MIG: 20:36:09 : Invalid Param: DDR3_ADDR_MAP ==> 192'h000_000_138_12B_134_112_11B_139_116_117_132_126_136_127_137_125 +MIG: 20:36:09 : Invalid Param: DDR3_BANK_MAP ==> 36'h13A_111_115 +MIG: 20:36:09 : Invalid Param: DDR3_CAS_MAP ==> 12'h113 +MIG: 20:36:09 : Invalid Param: DDR3_CKE_ODT_BYTE_MAP ==> 8'h00 +MIG: 20:36:09 : Invalid Param: DDR3_CKE_MAP ==> 96'h000_000_000_000_000_000_000_124 +MIG: 20:36:09 : Invalid Param: DDR3_ODT_MAP ==> 96'h000_000_000_000_000_000_000_110 +MIG: 20:36:09 : Invalid Param: DDR3_CS_MAP ==> 120'h000_000_000_000_000_000_000_000_000_129 +MIG: 20:36:09 : Invalid Param: DDR3_PARITY_MAP ==> 12'h000 +MIG: 20:36:09 : Invalid Param: DDR3_RAS_MAP ==> 12'h128 +MIG: 20:36:09 : Invalid Param: DDR3_WE_MAP ==> 12'h114 +MIG: 20:36:09 : Invalid Param: DDR3_DQS_BYTE_MAP ==> 144'h00_00_00_00_00_00_00_00_00_00_00_01_02_10_20_21_22_23 +MIG: 20:36:09 : Invalid Param: DDR3_DATA0_MAP ==> 96'h231_232_235_236_239_233_234_237 +MIG: 20:36:09 : Invalid Param: DDR3_DATA1_MAP ==> 96'h220_221_225_224_222_227_223_226 +MIG: 20:36:09 : Invalid Param: DDR3_DATA2_MAP ==> 96'h214_210_216_217_218_215_213_212 +MIG: 20:36:09 : Invalid Param: DDR3_DATA3_MAP ==> 96'h209_204_202_201_207_206_203_200 +MIG: 20:36:09 : Invalid Param: DDR3_DATA4_MAP ==> 96'h109_107_103_105_106_100_102_104 +MIG: 20:36:09 : Invalid Param: DDR3_DATA5_MAP ==> 96'h023_022_024_027_028_025_021_020 +MIG: 20:36:09 : Invalid Param: DDR3_DATA6_MAP ==> 96'h011_016_012_013_019_015_018_017 +MIG: 20:36:09 : Invalid Param: DDR3_DATA7_MAP ==> 96'h003_009_004_001_002_000_007_006 +MIG: 20:36:09 : Invalid Param: DDR3_DATA8_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA9_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA10_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA11_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA12_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA13_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA14_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA15_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA16_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_DATA17_MAP ==> 96'h000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_MASK0_MAP ==> 108'h000_005_014_026_101_205_211_228_238 +MIG: 20:36:09 : Invalid Param: DDR3_MASK1_MAP ==> 108'h000_000_000_000_000_000_000_000_000 +MIG: 20:36:09 : Invalid Param: DDR3_SLOT_0_CONFIG ==> 8'b0000_0001 +MIG: 20:36:09 : Invalid Param: DDR3_SLOT_1_CONFIG ==> 8'b0000_0000 +MIG: 20:36:09 : Invalid Param: DDR3_IBUF_LPWR_MODE ==> "OFF" +MIG: 20:36:09 : Invalid Param: DDR3_DATA_IO_IDLE_PWRDWN ==> "ON" +MIG: 20:36:09 : Invalid Param: DDR3_BANK_TYPE ==> "HP_IO" +MIG: 20:36:09 : Invalid Param: DDR3_DATA_IO_PRIM_TYPE ==> "HP_LP" +MIG: 20:36:09 : Invalid Param: DDR3_CKE_ODT_AUX ==> "FALSE" +MIG: 20:36:09 : Invalid Param: DDR3_USER_REFRESH ==> "OFF" +MIG: 20:36:09 : Invalid Param: DDR3_WRLVL ==> "ON" +MIG: 20:36:09 : Invalid Param: DDR3_ORDERING ==> "NORM" +MIG: 20:36:09 : Invalid Param: DDR3_CALIB_ROW_ADD ==> 16'h0000 +MIG: 20:36:09 : Invalid Param: DDR3_CALIB_COL_ADD ==> 12'h000 +MIG: 20:36:09 : Invalid Param: DDR3_CALIB_BA_ADD ==> 3'h0 +MIG: 20:36:09 : Invalid Param: DDR3_TCQ ==> 100 +MIG: 20:36:09 : Invalid Param: DDR3_IDELAY_ADJ ==> "ON" +MIG: 20:36:09 : Invalid Param: DDR3_FINE_PER_BIT ==> "ON" +MIG: 20:36:09 : Invalid Param: DDR3_CENTER_COMP_MODE ==> "ON" +MIG: 20:36:09 : Invalid Param: DDR3_PI_VAL_ADJ ==> "ON" +MIG: 20:36:09 : Invalid Param: DDR3_IODELAY_GRP0 ==> "MIG_7SERIES_0_IODELAY_MIG0" +MIG: 20:36:09 : Invalid Param: DDR3_IODELAY_GRP1 ==> "MIG_7SERIES_0_IODELAY_MIG1" +MIG: 20:36:09 : Invalid Param: DDR3_SYSCLK_TYPE ==> "NO_BUFFER" +MIG: 20:36:09 : Invalid Param: DDR3_REFCLK_TYPE ==> "USE_SYSTEM_CLOCK" +MIG: 20:36:09 : Invalid Param: DDR3_SYS_RST_PORT ==> "FALSE" +MIG: 20:36:09 : Invalid Param: DDR3_FPGA_SPEED_GRADE ==> 2 +MIG: 20:36:09 : Invalid Param: DDR3_CMD_PIPE_PLUS1 ==> "ON" +MIG: 20:36:09 : Invalid Param: DDR3_DRAM_TYPE ==> "DDR3" +MIG: 20:36:09 : Invalid Param: DDR3_CAL_WIDTH ==> "HALF" +MIG: 20:36:09 : Invalid Param: DDR3_STARVE_LIMIT ==> 2 +MIG: 20:36:09 : Invalid Param: DDR3_REF_CLK_MMCM_IODELAY_CTRL ==> "TRUE" +MIG: 20:36:09 : Invalid Param: DDR3_REFCLK_FREQ ==> 200.0 +MIG: 20:36:09 : Invalid Param: DDR3_DIFF_TERM_REFCLK ==> "TRUE" +MIG: 20:36:09 : Invalid Param: DDR3_tCK ==> 1250 +MIG: 20:36:09 : +MIG: 20:36:09 : Valid Param: DDR3_nCK_PER_CLK ==> 4 +MIG: 20:36:09 : Invalid Param: DDR3_DIFF_TERM_SYSCLK ==> "TRUE" +MIG: 20:36:09 : OFF +MIG: 20:36:09 : Valid Param: DDR3_DEBUG_PORT ==> OFF +MIG: 20:36:09 : OFF +MIG: 20:36:09 : Invalid Param: DDR3_TEMP_MON_CONTROL ==> "INTERNAL" +MIG: 20:36:09 : Invalid Param: DDR3_FPGA_VOLT_TYPE ==> "N" +MIG: 20:36:09 : Invalid Param: DDR3_RST_ACT_LOW ==> 1 +MIG: 20:36:09 : +MIG: 20:36:09 : +MIG: 20:36:09 : +MIG: 20:36:09 : Same Interface +MIG: 20:36:14 : Running synthesis.xit +MIG: 20:36:14 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 20:36:14 : IGN: 200 <==> 200 +MIG: 20:36:14 : Running vlog_synth_rpr.xit +MIG: 20:36:14 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 20:36:14 : IGN: 200 <==> 200 +MIG: 20:36:14 : Running simulation.xit +MIG: 20:36:14 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 20:36:14 : IGN: 200 <==> 200 +MIG: 20:36:14 : Running vlog_sim_rpr.xit .. PRASAD DBG1 +MIG: 20:36:14 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 20:36:14 : IGN: 200 <==> 200 +MIG: 20:36:14 : Running implementation.xit +MIG: 20:36:14 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 20:36:14 : IGN: 200 <==> 200 +MIG: 00:29:14 : Running synthesis.xit +MIG: 00:29:14 : ################# RUNNING MIG BATCH ################### +MIG: 00:29:14 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 00:29:14 : synp_flow: -- synthesis_mode: Other +MIG: 00:29:14 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 00:29:14 : vivado_mode: xpg_pa +MIG: 00:29:14 : locked false +MIG: 00:29:14 : HDL Language: Verilog +MIG: 00:29:14 : compInfo: false +MIG: 00:29:14 : Vivado Options xc7z045 ffg900 -2 +MIG: 00:29:14 : 1: xc7z045 2: ffg900 3: -2 +MIG: 00:29:14 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 00:29:14 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 00:29:14 : I am in catch area +MIG: 00:29:14 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 00:29:26 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 00:29:26 : Component_Name: mig_7series_0 +MIG: 00:29:26 : Moving mig_7series_0_xmdf.tcl ... +MIG: 00:29:26 : Moving mig_7series_0 ... +MIG: 00:29:26 : Moving mig_7series_0.veo ... +MIG: 00:29:26 : Running vlog_synth_rpr.xit +MIG: 00:29:26 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 00:29:26 : IGN: 200 <==> 200 +MIG: 00:29:26 : Running implementation.xit +MIG: 00:29:26 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 00:29:26 : IGN: 200 <==> 200 +MIG: 01:33:51 : Running synthesis.xit +MIG: 01:33:51 : ################# RUNNING MIG BATCH ################### +MIG: 01:33:51 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 01:33:51 : synp_flow: -- synthesis_mode: Other +MIG: 01:33:51 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 01:33:51 : vivado_mode: xpg_pa +MIG: 01:33:51 : locked false +MIG: 01:33:51 : HDL Language: Verilog +MIG: 01:33:51 : compInfo: false +MIG: 01:33:51 : Vivado Options xc7z045 ffg900 -2 +MIG: 01:33:51 : 1: xc7z045 2: ffg900 3: -2 +MIG: 01:33:51 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 01:33:51 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 01:33:51 : I am in catch area +MIG: 01:33:51 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 01:33:59 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 01:33:59 : Component_Name: mig_7series_0 +MIG: 01:33:59 : Moving mig_7series_0_xmdf.tcl ... +MIG: 01:33:59 : Moving mig_7series_0 ... +MIG: 01:33:59 : Moving mig_7series_0.veo ... +MIG: 01:33:59 : Running vlog_synth_rpr.xit +MIG: 01:33:59 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 01:33:59 : IGN: 200 <==> 200 +MIG: 01:33:59 : Running implementation.xit +MIG: 01:33:59 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 01:33:59 : IGN: 200 <==> 200 +MIG: 04:19:57 : Running synthesis.xit +MIG: 04:19:57 : ################# RUNNING MIG BATCH ################### +MIG: 04:19:57 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 04:19:57 : synp_flow: -- synthesis_mode: Other +MIG: 04:19:57 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 04:19:57 : vivado_mode: xpg_pa +MIG: 04:19:57 : locked false +MIG: 04:19:57 : HDL Language: Verilog +MIG: 04:19:57 : compInfo: false +MIG: 04:19:57 : Vivado Options xc7z045 ffg900 -2 +MIG: 04:19:57 : 1: xc7z045 2: ffg900 3: -2 +MIG: 04:19:57 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 04:19:57 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 04:19:57 : I am in catch area +MIG: 04:19:57 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 04:20:05 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 04:20:05 : Component_Name: mig_7series_0 +MIG: 04:20:05 : Moving mig_7series_0_xmdf.tcl ... +MIG: 04:20:05 : Moving mig_7series_0 ... +MIG: 04:20:05 : Moving mig_7series_0.veo ... +MIG: 04:20:05 : Running vlog_synth_rpr.xit +MIG: 04:20:05 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 04:20:05 : IGN: 200 <==> 200 +MIG: 04:20:05 : Running implementation.xit +MIG: 04:20:05 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 04:20:05 : IGN: 200 <==> 200 +MIG: 18:17:22 : Running synthesis.xit +MIG: 18:17:22 : ################# RUNNING MIG BATCH ################### +MIG: 18:17:22 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 18:17:22 : synp_flow: -- synthesis_mode: Other +MIG: 18:17:22 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 18:17:22 : vivado_mode: xpg_pa +MIG: 18:17:22 : locked false +MIG: 18:17:22 : HDL Language: Verilog +MIG: 18:17:22 : compInfo: false +MIG: 18:17:22 : Vivado Options xc7z045 ffg900 -2 +MIG: 18:17:22 : 1: xc7z045 2: ffg900 3: -2 +MIG: 18:17:22 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 18:17:22 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 18:17:22 : I am in catch area +MIG: 18:17:22 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 18:17:30 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 18:17:30 : Component_Name: mig_7series_0 +MIG: 18:17:30 : Moving mig_7series_0_xmdf.tcl ... +MIG: 18:17:30 : Moving mig_7series_0 ... +MIG: 18:17:30 : Moving mig_7series_0.veo ... +MIG: 18:17:30 : Running vlog_synth_rpr.xit +MIG: 18:17:30 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 18:17:30 : IGN: 200 <==> 200 +MIG: 18:17:30 : Running implementation.xit +MIG: 18:17:30 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 18:17:30 : IGN: 200 <==> 200 +MIG: 19:27:51 : Running synthesis.xit +MIG: 19:27:51 : ################# RUNNING MIG BATCH ################### +MIG: 19:27:51 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 19:27:51 : synp_flow: -- synthesis_mode: Other +MIG: 19:27:51 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 19:27:51 : vivado_mode: xpg_pa +MIG: 19:27:51 : locked false +MIG: 19:27:51 : HDL Language: Verilog +MIG: 19:27:51 : compInfo: false +MIG: 19:27:51 : Vivado Options xc7z045 ffg900 -2 +MIG: 19:27:51 : 1: xc7z045 2: ffg900 3: -2 +MIG: 19:27:51 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 19:27:51 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 19:27:51 : I am in catch area +MIG: 19:27:51 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 19:27:59 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 19:27:59 : Component_Name: mig_7series_0 +MIG: 19:27:59 : Moving mig_7series_0_xmdf.tcl ... +MIG: 19:27:59 : Moving mig_7series_0 ... +MIG: 19:27:59 : Moving mig_7series_0.veo ... +MIG: 19:27:59 : Running vlog_synth_rpr.xit +MIG: 19:27:59 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 19:27:59 : IGN: 200 <==> 200 +MIG: 19:27:59 : Running implementation.xit +MIG: 19:27:59 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 19:27:59 : IGN: 200 <==> 200 +MIG: 01:57:06 : Running synthesis.xit +MIG: 01:57:06 : ################# RUNNING MIG BATCH ################### +MIG: 01:57:06 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 01:57:06 : synp_flow: -- synthesis_mode: Other +MIG: 01:57:06 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 01:57:06 : vivado_mode: xpg_pa +MIG: 01:57:06 : locked false +MIG: 01:57:06 : HDL Language: Verilog +MIG: 01:57:06 : compInfo: false +MIG: 01:57:06 : Vivado Options xc7z045 ffg900 -2 +MIG: 01:57:06 : 1: xc7z045 2: ffg900 3: -2 +MIG: 01:57:06 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 01:57:06 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 01:57:06 : I am in catch area +MIG: 01:57:06 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 01:57:15 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 01:57:15 : Component_Name: mig_7series_0 +MIG: 01:57:15 : Moving mig_7series_0_xmdf.tcl ... +MIG: 01:57:15 : Moving mig_7series_0 ... +MIG: 01:57:15 : Moving mig_7series_0.veo ... +MIG: 01:57:15 : Running vlog_synth_rpr.xit +MIG: 01:57:15 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 01:57:15 : IGN: 200 <==> 200 +MIG: 01:57:15 : Running implementation.xit +MIG: 01:57:15 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 01:57:15 : IGN: 200 <==> 200 +MIG: 23:38:37 : Running synthesis.xit +MIG: 23:38:37 : ################# RUNNING MIG BATCH ################### +MIG: 23:38:37 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 23:38:37 : synp_flow: -- synthesis_mode: Other +MIG: 23:38:37 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 23:38:37 : vivado_mode: xpg_pa +MIG: 23:38:37 : locked false +MIG: 23:38:37 : HDL Language: Verilog +MIG: 23:38:37 : compInfo: false +MIG: 23:38:37 : Vivado Options xc7z045 ffg900 -2 +MIG: 23:38:37 : 1: xc7z045 2: ffg900 3: -2 +MIG: 23:38:37 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 23:38:37 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 23:38:37 : I am in catch area +MIG: 23:38:37 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 23:38:49 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 23:38:49 : Component_Name: mig_7series_0 +MIG: 23:38:49 : Moving mig_7series_0_xmdf.tcl ... +MIG: 23:38:49 : Moving mig_7series_0 ... +MIG: 23:38:49 : Moving mig_7series_0.veo ... +MIG: 23:38:49 : Running vlog_synth_rpr.xit +MIG: 23:38:49 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 23:38:49 : IGN: 200 <==> 200 +MIG: 23:38:49 : Running implementation.xit +MIG: 23:38:49 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 23:38:49 : IGN: 200 <==> 200 +MIG: 00:20:37 : Running synthesis.xit +MIG: 00:20:37 : ################# RUNNING MIG BATCH ################### +MIG: 00:20:37 : Writing IN file for 'mig_7series_0'...compDirPath: /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0... instDirPath: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0 +MIG: 00:20:37 : synp_flow: -- synthesis_mode: Other +MIG: 00:20:37 : outputDirectory: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +MIG: 00:20:37 : vivado_mode: xpg_pa +MIG: 00:20:37 : locked false +MIG: 00:20:37 : HDL Language: Verilog +MIG: 00:20:37 : compInfo: false +MIG: 00:20:37 : Vivado Options xc7z045 ffg900 -2 +MIG: 00:20:37 : 1: xc7z045 2: ffg900 3: -2 +MIG: 00:20:37 : relative mig path: coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig +MIG: 00:20:37 : xilinx_path: /opt/Xilinx/Vivado/2017.1/ids_lite/ISE +MIG: 00:20:37 : I am in catch area +MIG: 00:20:37 : Running /opt/Xilinx/Vivado/2017.1/ids_lite/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_7series_v4_0/bin/lin64/mig -cg_exc_inp /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in -cg_exc_out /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out ... +MIG: 00:20:45 : XML_INPUT_FILE: /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +MIG: 00:20:45 : Component_Name: mig_7series_0 +MIG: 00:20:45 : Moving mig_7series_0_xmdf.tcl ... +MIG: 00:20:45 : Moving mig_7series_0 ... +MIG: 00:20:45 : Moving mig_7series_0.veo ... +MIG: 00:20:45 : Running vlog_synth_rpr.xit +MIG: 00:20:45 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 00:20:45 : IGN: 200 <==> 200 +MIG: 00:20:45 : Running implementation.xit +MIG: 00:20:45 : IGN: mig_7series_0 <==> mig_7series_0 +MIG: 00:20:45 : IGN: 200 <==> 200 diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in new file mode 100755 index 0000000..fc46db2 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.in @@ -0,0 +1,24 @@ +SET_FLAG MODE BATCH +SET_FLAG STANDALONE_MODE TRUE +SET_PREFERENCE ipi_mode no +SET_PREFERENCE is_ip_locked false +SET_PREFERENCE devicefamily zynq +SET_PREFERENCE device xc7z045 +SET_PREFERENCE speedgrade -2 +SET_PREFERENCE package ffg900 +SET_PREFERENCE verilogsim true +SET_PREFERENCE vhdlsim false +SET_PREFERENCE designentry Verilog +SET_PREFERENCE outputdirectory /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +SET_PREFERENCE subworkingdirectory /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/_tmp/ +SET_PREFERENCE flowvendor Other +SET_PREFERENCE tool vivado +SET_PREFERENCE compnamestatus 0 +SET_PARAMETER component_name mig_7series_0 +SET_PARAMETER xml_input_file /home/spartan/OpenPiton/17-06-11/openpiton/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/mig_a.prj +SET_PARAMETER data_dir_path /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0 +SET_CORE_NAME Memory Interface Generator (MIG 7 Series) +SET_CORE_VERSION 2.3 +SET_CORE_VLNV xilinx.com:ip:mig_7series:2.3 +SET_CORE_PATH /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0 +SET_CORE_DATASHEET /opt/Xilinx/Vivado/2017.1/data/ip/xilinx/mig_7series_v4_0/data/docs/ds176_7series_MIS.pdf diff --git a/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out new file mode 100755 index 0000000..9bcd8b2 --- /dev/null +++ b/piton/design/chipset/mc/xilinx/zc706/ip_cores/mig_7series_0/xil_txt.out @@ -0,0 +1,4 @@ +SET_ERROR_CODE 0 +SET_XMDF_PATH ./mig_7series_0_xmdf.tcl +SET_PARAMETER component_name mig_7series_0 +SET_PARAMETER xml_input_file ./mig_7series_0/mig.prj diff --git a/piton/design/chipset/rtl/chipset.v b/piton/design/chipset/rtl/chipset.v index 24edbe4..48340a1 100644 --- a/piton/design/chipset/rtl/chipset.v +++ b/piton/design/chipset/rtl/chipset.v @@ -668,9 +668,11 @@ end assign leds[0] = clk_locked; assign leds[1] = ~piton_ready_n; assign leds[2] = init_calib_complete; - assign leds[3] = processor_offchip_noc2_valid; - assign leds[4] = offchip_processor_noc3_valid; - assign leds[5] = 1'b0; + wire led_blink; + assign leds[3] = led_blink & rst_n_rect; +// assign leds[3] = processor_offchip_noc2_valid; +// assign leds[4] = offchip_processor_noc3_valid; +// assign leds[5] = 1'b0; `ifdef PITONSYS_IOCTRL `ifdef PITONSYS_UART `ifdef PITONSYS_UART_BOOT diff --git a/piton/design/chipset/xilinx/zc706/ip_cores/afifo_w64_d128_std/afifo_w64_d128_std.xci b/piton/design/chipset/xilinx/zc706/ip_cores/afifo_w64_d128_std/afifo_w64_d128_std.xci new file mode 100644 index 0000000..d67a415 --- /dev/null +++ b/piton/design/chipset/xilinx/zc706/ip_cores/afifo_w64_d128_std/afifo_w64_d128_std.xci @@ -0,0 +1,427 @@ + + + xilinx.com + xci + unknown + 1.0 + + + afifo_w64_d128_std + + + 100000000 + 100000000 + 100000000 + 100000000 + 100000000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 1 + 1 + 1 + 4 + 0 + 32 + 1 + 1 + 1 + 64 + 1 + 8 + 1 + 1 + 1 + 1 + 0 + 0 + 7 + BlankString + 64 + 1 + 32 + 64 + 1 + 64 + 2 + 0 + 64 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + zynq + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + BlankString + 1 + 0 + 0 + 0 + 1 + 0 + 512x72 + 1kx18 + 512x36 + 1kx36 + 512x36 + 1kx36 + 512x36 + 2 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 125 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 124 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 7 + 128 + 1 + 7 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 7 + 128 + 1024 + 16 + 1024 + 16 + 1024 + 16 + 1 + 7 + 10 + 4 + 10 + 4 + 10 + 4 + 1 + 32 + 0 + 0 + false + false + false + 0 + 0 + Slave_Interface_Clock_Enable + Common_Clock + afifo_w64_d128_std + 64 + false + 7 + false + false + 0 + 2 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 3 + false + false + false + false + false + false + false + false + false + Hard_ECC + false + false + false + false + false + false + true + false + false + true + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Independent_Clocks_Block_RAM + 1 + 125 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 124 + false + false + false + 0 + Native + false + false + false + false + false + false + false + false + false + false + false + false + false + false + 64 + 128 + 1024 + 16 + 1024 + 16 + 1024 + 16 + false + 64 + 128 + Embedded_Reg + false + false + Active_High + Active_High + AXI4 + Standard_FIFO + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + READ_WRITE + 0 + 1 + false + 7 + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + true + Asynchronous_Reset + false + 1 + 0 + 0 + 1 + 1 + 4 + false + false + Active_High + Active_High + true + false + false + false + false + Active_High + 0 + false + Active_High + 1 + false + 7 + false + FIFO + false + false + false + false + FIFO + FIFO + 2 + 2 + false + FIFO + FIFO + FIFO + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 4 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chipset/xilinx/zc706/ip_cores/afifo_w64_d128_std/afifo_w64_d128_std.xml b/piton/design/chipset/xilinx/zc706/ip_cores/afifo_w64_d128_std/afifo_w64_d128_std.xml new file mode 100644 index 0000000..a2b99e1 --- /dev/null +++ b/piton/design/chipset/xilinx/zc706/ip_cores/afifo_w64_d128_std/afifo_w64_d128_std.xml @@ -0,0 +1,9711 @@ + + + xilinx.com + customized_ip + afifo_w64_d128_std + 1.0 + + + M_AXIS + + + + + + + TDATA + + + m_axis_tdata + + + + + TDEST + + + m_axis_tdest + + + + + TID + + + m_axis_tid + + + + + TKEEP + + + m_axis_tkeep + + + + + TLAST + + + m_axis_tlast + + + + + TREADY + + + m_axis_tready + + + + + TSTRB + + + m_axis_tstrb + + + + + TUSER + + + m_axis_tuser + + + + + TVALID + + + m_axis_tvalid + + + + + + + false + + + + + + S_AXIS + + + + + + + TDATA + + + s_axis_tdata + + + + + TDEST + + + s_axis_tdest + + + + + TID + + + s_axis_tid + + + + + TKEEP + + + s_axis_tkeep + + + + + TLAST + + + s_axis_tlast + + + + + TREADY + + + s_axis_tready + + + + + TSTRB + + + s_axis_tstrb + + + + + TUSER + + + s_axis_tuser + + + + + TVALID + + + s_axis_tvalid + + + + + + + false + + + + + + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARREGION + + + s_axi_arregion + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWREGION + + + s_axi_awregion + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BUSER + + + s_axi_buser + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RUSER + + + s_axi_ruser + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WID + + + s_axi_wid + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WUSER + + + s_axi_wuser + + + + + WVALID + + + s_axi_wvalid + + + + + + BD_ATTRIBUTE.TYPE + INTERIOR + + + + + + false + + + + + + M_AXI + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARREGION + + + m_axi_arregion + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWREGION + + + m_axi_awregion + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BUSER + + + m_axi_buser + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RUSER + + + m_axi_ruser + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WID + + + m_axi_wid + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WUSER + + + m_axi_wuser + + + + + WVALID + + + m_axi_wvalid + + + + + + + false + + + + + + core_clk + + + + + + + CLK + + + clk + + + + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port clk + 100000000 + + + + + + false + + + + + + master_aclk + + + + + + + CLK + + + m_aclk + + + + + + ASSOCIATED_BUSIF + M_AXIS:M_AXI + + + FREQ_HZ + m_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + slave_aclk + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + S_AXIS:S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + FREQ_HZ + s_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + write_clk + + + + + + + CLK + + + wr_clk + + + + + + FREQ_HZ + write clock frequency + specify frequency of the clock connected to port wr_clk + 100000000 + + + + + + true + + + + + + read_clk + + + + + + + CLK + + + rd_clk + + + + + + FREQ_HZ + read clock frequency + specify frequency of the clock connected to port rd_clk + 100000000 + + + + + + true + + + + + + slave_aresetn + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + FIFO_WRITE + FIFO_WRITE + + + + + + + ALMOST_FULL + + + almost_full + + + + + FULL + + + full + + + + + WR_DATA + + + din + + + + + WR_EN + + + wr_en + + + + + + + true + + + + + + FIFO_READ + FIFO_READ + + + + + + + ALMOST_EMPTY + + + almost_empty + + + + + EMPTY + + + empty + + + + + RD_DATA + + + dout + + + + + RD_EN + + + rd_en + + + + + + + true + + + + + + + + + backup + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + backup_marker + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + srst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wr_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + wr_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + din + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + wr_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + prog_empty_thresh + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_assert + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_negate + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_assert + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_negate + + in + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + int_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + dout + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + almost_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_ack + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + almost_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + valid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + data_count + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + rd_data_count + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + wr_data_count + + out + + 6 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + prog_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_wid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_buser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wstrb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_buser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_ruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_aruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_ruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tkeep + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tdest + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tuser + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tstrb + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tkeep + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdest + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tuser + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_w_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_b_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_ar_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_r_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axis_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + + + C_COMMON_CLOCK + 0 + + + C_SELECT_XPM + 0 + + + C_COUNT_TYPE + 0 + + + C_DATA_COUNT_WIDTH + 7 + + + C_DEFAULT_VALUE + BlankString + + + C_DIN_WIDTH + 64 + + + C_DOUT_RST_VAL + 0 + + + C_DOUT_WIDTH + 64 + + + C_ENABLE_RLOCS + 0 + + + C_FAMILY + zynq + + + C_FULL_FLAGS_RST_VAL + 1 + + + C_HAS_ALMOST_EMPTY + 0 + + + C_HAS_ALMOST_FULL + 0 + + + C_HAS_BACKUP + 0 + + + C_HAS_DATA_COUNT + 0 + + + C_HAS_INT_CLK + 0 + + + C_HAS_MEMINIT_FILE + 0 + + + C_HAS_OVERFLOW + 0 + + + C_HAS_RD_DATA_COUNT + 0 + + + C_HAS_RD_RST + 0 + + + C_HAS_RST + 1 + + + C_HAS_SRST + 0 + + + C_HAS_UNDERFLOW + 0 + + + C_HAS_VALID + 0 + + + C_HAS_WR_ACK + 0 + + + C_HAS_WR_DATA_COUNT + 0 + + + C_HAS_WR_RST + 0 + + + C_IMPLEMENTATION_TYPE + 2 + + + C_INIT_WR_PNTR_VAL + 0 + + + C_MEMORY_TYPE + 1 + + + C_MIF_FILE_NAME + BlankString + + + C_OPTIMIZATION_MODE + 0 + + + C_OVERFLOW_LOW + 0 + + + C_PRELOAD_LATENCY + 1 + + + C_PRELOAD_REGS + 0 + + + C_PRIM_FIFO_TYPE + 512x72 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL + 2 + + + C_PROG_EMPTY_THRESH_NEGATE_VAL + 3 + + + C_PROG_EMPTY_TYPE + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL + 125 + + + C_PROG_FULL_THRESH_NEGATE_VAL + 124 + + + C_PROG_FULL_TYPE + 0 + + + C_RD_DATA_COUNT_WIDTH + 7 + + + C_RD_DEPTH + 128 + + + C_RD_FREQ + 1 + + + C_RD_PNTR_WIDTH + 7 + + + C_UNDERFLOW_LOW + 0 + + + C_USE_DOUT_RST + 1 + + + C_USE_ECC + 0 + + + C_USE_EMBEDDED_REG + 0 + + + C_USE_PIPELINE_REG + 0 + + + C_POWER_SAVING_MODE + 0 + + + C_USE_FIFO16_FLAGS + 0 + + + C_USE_FWFT_DATA_COUNT + 0 + + + C_VALID_LOW + 0 + + + C_WR_ACK_LOW + 0 + + + C_WR_DATA_COUNT_WIDTH + 7 + + + C_WR_DEPTH + 128 + + + C_WR_FREQ + 1 + + + C_WR_PNTR_WIDTH + 7 + + + C_WR_RESPONSE_LATENCY + 1 + + + C_MSGON_VAL + 1 + + + C_ENABLE_RST_SYNC + 1 + + + C_EN_SAFETY_CKT + 0 + + + C_ERROR_INJECTION_TYPE + 0 + + + C_SYNCHRONIZER_STAGE + 2 + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_HAS_AXI_WR_CHANNEL + 1 + + + C_HAS_AXI_RD_CHANNEL + 1 + + + C_HAS_SLAVE_CE + 0 + + + C_HAS_MASTER_CE + 0 + + + C_ADD_NGC_CONSTRAINT + 0 + + + C_USE_COMMON_OVERFLOW + 0 + + + C_USE_COMMON_UNDERFLOW + 0 + + + C_USE_DEFAULT_SETTINGS + 0 + + + C_AXI_ID_WIDTH + 1 + + + C_AXI_ADDR_WIDTH + 32 + + + C_AXI_DATA_WIDTH + 64 + + + C_AXI_LEN_WIDTH + 8 + + + C_AXI_LOCK_WIDTH + 1 + + + C_HAS_AXI_ID + 0 + + + C_HAS_AXI_AWUSER + 0 + + + C_HAS_AXI_WUSER + 0 + + + C_HAS_AXI_BUSER + 0 + + + C_HAS_AXI_ARUSER + 0 + + + C_HAS_AXI_RUSER + 0 + + + C_AXI_ARUSER_WIDTH + 1 + + + C_AXI_AWUSER_WIDTH + 1 + + + C_AXI_WUSER_WIDTH + 1 + + + C_AXI_BUSER_WIDTH + 1 + + + C_AXI_RUSER_WIDTH + 1 + + + C_HAS_AXIS_TDATA + 1 + + + C_HAS_AXIS_TID + 0 + + + C_HAS_AXIS_TDEST + 0 + + + C_HAS_AXIS_TUSER + 1 + + + C_HAS_AXIS_TREADY + 1 + + + C_HAS_AXIS_TLAST + 0 + + + C_HAS_AXIS_TSTRB + 0 + + + C_HAS_AXIS_TKEEP + 0 + + + C_AXIS_TDATA_WIDTH + 8 + + + C_AXIS_TID_WIDTH + 1 + + + C_AXIS_TDEST_WIDTH + 1 + + + C_AXIS_TUSER_WIDTH + 4 + + + C_AXIS_TSTRB_WIDTH + 1 + + + C_AXIS_TKEEP_WIDTH + 1 + + + C_WACH_TYPE + 0 + + + C_WDCH_TYPE + 0 + + + C_WRCH_TYPE + 0 + + + C_RACH_TYPE + 0 + + + C_RDCH_TYPE + 0 + + + C_AXIS_TYPE + 0 + + + C_IMPLEMENTATION_TYPE_WACH + 1 + + + C_IMPLEMENTATION_TYPE_WDCH + 1 + + + C_IMPLEMENTATION_TYPE_WRCH + 1 + + + C_IMPLEMENTATION_TYPE_RACH + 1 + + + C_IMPLEMENTATION_TYPE_RDCH + 1 + + + C_IMPLEMENTATION_TYPE_AXIS + 1 + + + C_APPLICATION_TYPE_WACH + 0 + + + C_APPLICATION_TYPE_WDCH + 0 + + + C_APPLICATION_TYPE_WRCH + 0 + + + C_APPLICATION_TYPE_RACH + 0 + + + C_APPLICATION_TYPE_RDCH + 0 + + + C_APPLICATION_TYPE_AXIS + 0 + + + C_PRIM_FIFO_TYPE_WACH + 512x36 + + + C_PRIM_FIFO_TYPE_WDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_WRCH + 512x36 + + + C_PRIM_FIFO_TYPE_RACH + 512x36 + + + C_PRIM_FIFO_TYPE_RDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_AXIS + 1kx18 + + + C_USE_ECC_WACH + 0 + + + C_USE_ECC_WDCH + 0 + + + C_USE_ECC_WRCH + 0 + + + C_USE_ECC_RACH + 0 + + + C_USE_ECC_RDCH + 0 + + + C_USE_ECC_AXIS + 0 + + + C_ERROR_INJECTION_TYPE_WACH + 0 + + + C_ERROR_INJECTION_TYPE_WDCH + 0 + + + C_ERROR_INJECTION_TYPE_WRCH + 0 + + + C_ERROR_INJECTION_TYPE_RACH + 0 + + + C_ERROR_INJECTION_TYPE_RDCH + 0 + + + C_ERROR_INJECTION_TYPE_AXIS + 0 + + + C_DIN_WIDTH_WACH + 1 + + + C_DIN_WIDTH_WDCH + 64 + + + C_DIN_WIDTH_WRCH + 2 + + + C_DIN_WIDTH_RACH + 32 + + + C_DIN_WIDTH_RDCH + 64 + + + C_DIN_WIDTH_AXIS + 1 + + + C_WR_DEPTH_WACH + 16 + + + C_WR_DEPTH_WDCH + 1024 + + + C_WR_DEPTH_WRCH + 16 + + + C_WR_DEPTH_RACH + 16 + + + C_WR_DEPTH_RDCH + 1024 + + + C_WR_DEPTH_AXIS + 1024 + + + C_WR_PNTR_WIDTH_WACH + 4 + + + C_WR_PNTR_WIDTH_WDCH + 10 + + + C_WR_PNTR_WIDTH_WRCH + 4 + + + C_WR_PNTR_WIDTH_RACH + 4 + + + C_WR_PNTR_WIDTH_RDCH + 10 + + + C_WR_PNTR_WIDTH_AXIS + 10 + + + C_HAS_DATA_COUNTS_WACH + 0 + + + C_HAS_DATA_COUNTS_WDCH + 0 + + + C_HAS_DATA_COUNTS_WRCH + 0 + + + C_HAS_DATA_COUNTS_RACH + 0 + + + C_HAS_DATA_COUNTS_RDCH + 0 + + + C_HAS_DATA_COUNTS_AXIS + 0 + + + C_HAS_PROG_FLAGS_WACH + 0 + + + C_HAS_PROG_FLAGS_WDCH + 0 + + + C_HAS_PROG_FLAGS_WRCH + 0 + + + C_HAS_PROG_FLAGS_RACH + 0 + + + C_HAS_PROG_FLAGS_RDCH + 0 + + + C_HAS_PROG_FLAGS_AXIS + 0 + + + C_PROG_FULL_TYPE_WACH + 0 + + + C_PROG_FULL_TYPE_WDCH + 0 + + + C_PROG_FULL_TYPE_WRCH + 0 + + + C_PROG_FULL_TYPE_RACH + 0 + + + C_PROG_FULL_TYPE_RDCH + 0 + + + C_PROG_FULL_TYPE_AXIS + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WRCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_AXIS + 1023 + + + C_PROG_EMPTY_TYPE_WACH + 0 + + + C_PROG_EMPTY_TYPE_WDCH + 0 + + + C_PROG_EMPTY_TYPE_WRCH + 0 + + + C_PROG_EMPTY_TYPE_RACH + 0 + + + C_PROG_EMPTY_TYPE_RDCH + 0 + + + C_PROG_EMPTY_TYPE_AXIS + 0 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS + 1022 + + + C_REG_SLICE_MODE_WACH + 0 + + + C_REG_SLICE_MODE_WDCH + 0 + + + C_REG_SLICE_MODE_WRCH + 0 + + + C_REG_SLICE_MODE_RACH + 0 + + + C_REG_SLICE_MODE_RDCH + 0 + + + C_REG_SLICE_MODE_AXIS + 0 + + + + + + choice_list_087d29fa + 0 + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_165ed04b + 64 + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_89b1ac3c + 64 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_bf1143fa + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32768 + 65536 + 131072 + + + choice_pairs_0721dec1 + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Multiple_Programmable_Empty_Threshold_Constants + Single_Programmable_Empty_Threshold_Input_Port + Multiple_Programmable_Empty_Threshold_Input_Ports + + + choice_pairs_08e28d5f + Active_High + Active_Low + + + choice_pairs_26bda4ef + Asynchronous_Reset + + + choice_pairs_2d5d8925 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + Common_Clock_Shift_Register + Common_Clock_Builtin_FIFO + Independent_Clocks_Block_RAM + Independent_Clocks_Distributed_RAM + Independent_Clocks_Builtin_FIFO + + + choice_pairs_3c123ec0 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + + + choice_pairs_53eba4dc + Native + AXI_MEMORY_MAPPED + AXI_STREAM + + + choice_pairs_541ed8d9 + Embedded_Reg + Fabric_Reg + Both + + + choice_pairs_5548b404 + Common_Clock + Independent_Clock + + + choice_pairs_5f1451ad + Standard_FIFO + First_Word_Fall_Through + + + choice_pairs_619f3529 + AXI4 + AXI3 + AXI4_Lite + + + choice_pairs_8334cf20 + Data_FIFO + Packet_FIFO + Low_Latency_Data_FIFO + + + choice_pairs_88535724 + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Multiple_Programmable_Full_Threshold_Constants + Single_Programmable_Full_Threshold_Input_Port + Multiple_Programmable_Full_Threshold_Input_Ports + + + choice_pairs_9b232fe1 + Slave_Interface_Clock_Enable + Master_Interface_Clock_Enable + + + choice_pairs_a8c5818a + Fully_Registered + Light_Weight + + + choice_pairs_b3e9d19b + FIFO + Register_Slice + Pass_Through_Wire + + + choice_pairs_bec132cf + FIFO + Register_Slice + + + choice_pairs_c94a1851 + Hard_ECC + Soft_ECC + + + choice_pairs_ccb14e2b + READ_WRITE + READ_ONLY + WRITE_ONLY + + + choice_pairs_eb98f74b + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Single_Programmable_Empty_Threshold_Input_Port + + + choice_pairs_ec2b452f + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Single_Programmable_Full_Threshold_Input_Port + + + The FIFO Generator is a parameterizable first-in/first-out memory queue generator. Use it to generate resource and performance optimized FIFOs with common or independent read/write clock domains, and optional fixed or programmable full and empty flags and handshaking signals. Choose from a selection of memory resource types for implementation. Optional Hamming code based error detection and correction as well as error injection capability for system test help to insure data integrity. FIFO width and depth are parameterizable, and for native interface FIFOs, asymmetric read and write port widths are also supported. + + + Component_Name + afifo_w64_d128_std + + + + true + + + + + + Fifo_Implementation + Independent_Clocks_Block_RAM + + + + true + + + + + + synchronization_stages + 2 + + + + true + + + + + + synchronization_stages_axi + 2 + + + + true + + + + + + INTERFACE_TYPE + Native + + + + true + + + + + + Performance_Options + Standard_FIFO + + + + true + + + + + + asymmetric_port_width + false + + + + false + + + + + + Input_Data_Width + 64 + + + + true + + + + + + Input_Depth + 128 + + + + true + + + + + + Output_Data_Width + 64 + + + + true + + + + + + Output_Depth + 128 + + + + false + + + + + + Enable_ECC + false + + + + true + + + + + + Use_Embedded_Registers + false + + + + true + + + + + + Reset_Pin + true + + + + true + + + + + + Enable_Reset_Synchronization + true + + + + true + + + + + + Reset_Type + Asynchronous_Reset + + + + false + + + + + + Full_Flags_Reset_Value + 1 + + + + true + + + + + + Use_Dout_Reset + true + + + + true + + + + + + Dout_Reset_Value + 0 + + + + true + + + + + + dynamic_power_saving + false + + + + false + + + + + + Almost_Full_Flag + false + + + + true + + + + + + Almost_Empty_Flag + false + + + + true + + + + + + Valid_Flag + false + + + + true + + + + + + Valid_Sense + Active_High + + + + false + + + + + + Underflow_Flag + false + + + + true + + + + + + Underflow_Sense + Active_High + + + + false + + + + + + Write_Acknowledge_Flag + false + + + + true + + + + + + Write_Acknowledge_Sense + Active_High + + + + false + + + + + + Overflow_Flag + false + + + + true + + + + + + Overflow_Sense + Active_High + + + + false + + + + + + Inject_Sbit_Error + false + + + + false + + + + + + Inject_Dbit_Error + false + + + + false + + + + + + ecc_pipeline_reg + false + + + + false + + + + + + Use_Extra_Logic + false + + + + false + + + + + + Data_Count + false + + + + false + + + + + + Data_Count_Width + 7 + + + + false + + + + + + Write_Data_Count + false + + + + true + + + + + + Write_Data_Count_Width + 7 + + + + false + + + + + + Read_Data_Count + false + + + + true + + + + + + Read_Data_Count_Width + 7 + + + + false + + + + + + Disable_Timing_Violations + false + + + + true + + + + + + Read_Clock_Frequency + 1 + + + + false + + + + + + Write_Clock_Frequency + 1 + + + + false + + + + + + Programmable_Full_Type + No_Programmable_Full_Threshold + + + + true + + + + + + Full_Threshold_Assert_Value + 125 + + + + false + + + + + + Full_Threshold_Negate_Value + 124 + + + + false + + + + + + Programmable_Empty_Type + No_Programmable_Empty_Threshold + + + + true + + + + + + Empty_Threshold_Assert_Value + 2 + + + + false + + + + + + Empty_Threshold_Negate_Value + 3 + + + + false + + + + + + PROTOCOL + AXI4 + + + + false + + + + + + Clock_Type_AXI + Common_Clock + + + + true + + + + + + HAS_ACLKEN + false + + + + false + + + + + + Clock_Enable_Type + Slave_Interface_Clock_Enable + + + + false + + + + + + READ_WRITE_MODE + READ_WRITE + + + + true + + + + + + ID_WIDTH + 0 + + + + false + + + + + + ADDRESS_WIDTH + 32 + + + + false + + + + + + DATA_WIDTH + 64 + + + + false + + + + + + AWUSER_Width + 0 + + + + false + + + + + + WUSER_Width + 0 + + + + false + + + + + + BUSER_Width + 0 + + + + false + + + + + + ARUSER_Width + 0 + + + + false + + + + + + RUSER_Width + 0 + + + + false + + + + + + TDATA_NUM_BYTES + 1 + + + + true + + + + + + TID_WIDTH + 0 + + + + false + + + + + + TDEST_WIDTH + 0 + + + + false + + + + + + TUSER_WIDTH + 4 + + + + false + + + + + + Enable_TREADY + true + + + + false + + + + + + Enable_TLAST + false + + + + true + + + + + + HAS_TSTRB + false + + + + false + + + + + + TSTRB_WIDTH + 1 + + + + false + + + + + + HAS_TKEEP + false + + + + false + + + + + + TKEEP_WIDTH + 1 + + + + false + + + + + + wach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wach + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wach + false + + + + false + + + + + + Inject_Sbit_Error_wach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wach + false + + + + false + + + + + + Input_Depth_wach + 16 + + + + true + + + + + + Enable_Data_Counts_wach + false + + + + false + + + + + + Programmable_Full_Type_wach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wdch + false + + + + false + + + + + + Inject_Sbit_Error_wdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wdch + false + + + + false + + + + + + Input_Depth_wdch + 1024 + + + + true + + + + + + Enable_Data_Counts_wdch + false + + + + false + + + + + + Programmable_Full_Type_wdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wrch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wrch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wrch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wrch + false + + + + false + + + + + + Inject_Sbit_Error_wrch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wrch + false + + + + false + + + + + + Input_Depth_wrch + 16 + + + + true + + + + + + Enable_Data_Counts_wrch + false + + + + false + + + + + + Programmable_Full_Type_wrch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wrch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wrch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wrch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rach + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rach + false + + + + false + + + + + + Inject_Sbit_Error_rach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rach + false + + + + false + + + + + + Input_Depth_rach + 16 + + + + true + + + + + + Enable_Data_Counts_rach + false + + + + false + + + + + + Programmable_Full_Type_rach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rdch + false + + + + false + + + + + + Inject_Sbit_Error_rdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rdch + false + + + + false + + + + + + Input_Depth_rdch + 1024 + + + + true + + + + + + Enable_Data_Counts_rdch + false + + + + false + + + + + + Programmable_Full_Type_rdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + axis_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_axis + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_axis + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_axis + false + + + + false + + + + + + Inject_Sbit_Error_axis + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_axis + Double Bit Error Injection + false + + + + false + + + + + + Input_Depth_axis + 1024 + + + + true + + + + + + Enable_Data_Counts_axis + false + + + + false + + + + + + Programmable_Full_Type_axis + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_axis + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_axis + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_axis + Empty Threshold Assert Value + 1022 + + + + false + + + + + + Register_Slice_Mode_wach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wrch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_axis + Register Slice Options + Fully_Registered + + + + true + + + + + + Underflow_Flag_AXI + Underflow Flag + false + + + + true + + + + + + Underflow_Sense_AXI + Underflow (Read Error) + Active_High + + + + true + + + + + + Overflow_Flag_AXI + Overflow Flag + false + + + + true + + + + + + Overflow_Sense_AXI + Overflow (Write Error) + Active_High + + + + true + + + + + + Disable_Timing_Violations_AXI + false + + + + true + + + + + + Add_NGC_Constraint_AXI + false + + + + true + + + + + + Enable_Common_Underflow + false + + + + true + + + + + + Enable_Common_Overflow + false + + + + true + + + + + + enable_read_pointer_increment_by2 + false + + + + true + + + + + + Use_Embedded_Registers_axis + false + + + + false + + + + + + enable_low_latency + false + + + + false + + + + + + use_dout_register + false + + + + false + + + + + + Master_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Slave_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Output_Register_Type + Embedded_Reg + + + + false + + + + + + Enable_Safety_Circuit + false + + + + true + + + + + + Enable_ECC_Type + Hard_ECC + + + + false + + + + + + C_SELECT_XPM + 0 + + + + + FIFO Generator + 4 + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chipset/xilinx/zc706/ip_cores/clk_mmcm/clk_mmcm.xci b/piton/design/chipset/xilinx/zc706/ip_cores/clk_mmcm/clk_mmcm.xci new file mode 100644 index 0000000..ca64f2e --- /dev/null +++ b/piton/design/chipset/xilinx/zc706/ip_cores/clk_mmcm/clk_mmcm.xci @@ -0,0 +1,655 @@ + + + xilinx.com + xci + unknown + 1.0 + + + clk_mmcm + + + MMCM + cddcdone + cddcreq + 0000 + 0000 + clkfb_in_n + clkfb_in + clkfb_in_p + SINGLE + clkfb_out_n + clkfb_out + clkfb_out_p + clkfb_stopped + 50.0 + 100.0 + 0000 + 0000 + 66.667 + 0000 + 0000 + 200.000 + BUFG + 50.0 + false + 66.667 + 0.000 + 50.000 + 66.666 + 0.000 + 1 + 0000 + 0000 + 20.000 + BUFG + 50.0 + false + 200.000 + 0.000 + 50.000 + 200.000 + 0.000 + 1 + 1 + 0000 + 0000 + 100.000 + BUFG + 50.0 + false + 20.000 + 0.000 + 50.000 + 20.000 + 0.000 + 1 + 1 + 0000 + 0000 + 100.000 + BUFG + 50.0 + false + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 1 + 0000 + 0000 + 25.000 + BUFG + 50.0 + false + 100.000 + 180.000 + 50.000 + 100.000 + 180.000 + 1 + 1 + 0000 + 0000 + 100.000 + BUFG + 50.0 + false + 25.000 + 0.000 + 50.000 + 25.000 + 0.000 + 1 + 1 + BUFG + 50.0 + false + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 1 + VCO + clk_in_sel + chipset_clk + mc_sys_clk + spi_sys_clk + chipset_passthru_clk + chipset_passthru_clk_n + net_phy_clk + net_axi_clk + CLK_VALID + NA + daddr + dclk + den + din + 0000 + 1 + 0.33332999999999996 + 3.3333 + 0.6666599999999999 + 0.6666599999999999 + 2.6666399999999997 + 0.6666599999999999 + dout + drdy + dwe + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + FDBK_AUTO + 0000 + 0000 + 0 + Input Clock Freq (MHz) Input Jitter (UI) + __primary_________200.000____________0.010 + no_secondary_input_clock + input_clk_stopped + 0 + Units_MHz + No_Jitter + locked + 0000 + 0000 + 0000 + false + false + false + false + false + false + false + false + OPTIMIZED + 3.000 + 0.000 + FALSE + 5.0 + 10.0 + 9.000 + 0.500 + 0.000 + FALSE + 3 + 0.500 + 0.000 + FALSE + 30 + 0.500 + 0.000 + FALSE + 6 + 0.500 + 0.000 + FALSE + FALSE + 6 + 0.500 + 180.000 + FALSE + 24 + 0.500 + 0.000 + FALSE + 6 + 0.500 + 0.000 + FALSE + FALSE + ZHOLD + 1 + None + 0.010 + 0.010 + FALSE + 7 + Output Output Phase Duty Cycle Pk-to-Pk Phase + Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) + chipset_clk____66.667______0.000______50.0______117.498____105.563 + mc_sys_clk___200.000______0.000______50.0_______94.528____105.563 + spi_sys_clk____20.000______0.000______50.0______150.107____105.563 + chipset_passthru_clk___100.000______0.000______50.0______108.247____105.563 + chipset_passthru_clk_n___100.000____180.000______50.0______108.247____105.563 + net_phy_clk____25.000______0.000______50.0______143.534____105.563 + net_axi_clk___100.000______0.000______50.0______108.247____105.563 + 0 + 0 + WAVEFORM + UNKNOWN + false + false + false + false + false + OPTIMIZED + 1 + 0.000 + 1.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + CLKFBOUT + SYSTEM_SYNCHRONOUS + 1 + No notes + 0.010 + power_down + 0000 + 1 + clk_in1 + MMCM + AUTO + 200.000 + 0.010 + 10.000 + Differential_clock_capable_pin + psclk + psdone + psen + psincdec + 100.0 + 0 + reset + 100.000 + 0.010 + 10.000 + clk_in2 + Single_ended_clock_capable_pin + CENTER_HIGH + 4000 + 0.004 + STATUS + 11 + 32 + 100.0 + 100.0 + 100.0 + 100.0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + clk_mmcm + MMCM + false + empty + cddcdone + cddcreq + clkfb_in_n + clkfb_in + clkfb_in_p + SINGLE + clkfb_out_n + clkfb_out + clkfb_out_p + clkfb_stopped + 50.0 + 0.010 + 100.0 + 0.010 + BUFG + 117.498 + false + 105.563 + 50.000 + 66.666 + 0.000 + 1 + true + BUFG + 94.528 + false + 105.563 + 50.000 + 200.000 + 0.000 + 1 + true + BUFG + 150.107 + false + 105.563 + 50.000 + 20.000 + 0.000 + 1 + true + BUFG + 108.247 + false + 105.563 + 50.000 + 100.000 + 0.000 + 1 + true + BUFG + 108.247 + false + 105.563 + 50.000 + 100.000 + 180.000 + 1 + true + BUFG + 143.534 + false + 105.563 + 50.000 + 25.000 + 0.000 + 1 + true + BUFG + 108.247 + false + 105.563 + 50.000 + 100.000 + 0.000 + 1 + true + 600.000 + Custom + Custom + clk_in_sel + chipset_clk + false + mc_sys_clk + false + spi_sys_clk + false + chipset_passthru_clk + false + chipset_passthru_clk_n + false + net_phy_clk + false + net_axi_clk + false + CLK_VALID + auto + clk_mmcm + daddr + dclk + den + Custom + Custom + din + dout + drdy + dwe + false + false + false + false + false + false + false + false + false + FDBK_AUTO + input_clk_stopped + frequency + Enable_AXI + Units_MHz + Units_UI + UI + No_Jitter + locked + OPTIMIZED + 3.000 + 0.000 + false + 5.0 + 10.0 + 9.000 + 0.500 + 0.000 + false + 3 + 0.500 + 0.000 + false + 30 + 0.500 + 0.000 + false + 6 + 0.500 + 0.000 + false + false + 6 + 0.500 + 180.000 + false + 24 + 0.500 + 0.000 + false + 6 + 0.500 + 0.000 + false + false + ZHOLD + 1 + None + 0.010 + 0.010 + false + 7 + false + false + WAVEFORM + false + UNKNOWN + OPTIMIZED + 4 + 0.000 + 10.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + CLKFBOUT + SYSTEM_SYNCHRONOUS + 1 + None + 0.010 + power_down + 1 + clk_in1 + MMCM + mmcm_adv + 200.000 + 0.010 + 10.000 + Differential_clock_capable_pin + psclk + psdone + psen + psincdec + 100.0 + REL_PRIMARY + Custom + reset + ACTIVE_HIGH + 100.000 + 0.010 + 10.000 + clk_in2 + Single_ended_clock_capable_pin + CENTER_HIGH + 250 + 0.004 + STATUS + empty + 100.0 + 100.0 + 100.0 + 100.0 + false + false + false + false + false + false + false + true + false + false + true + false + false + false + true + false + true + false + false + false + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 0 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/chipset/xilinx/zc706/ip_cores/clk_mmcm/clk_mmcm.xml b/piton/design/chipset/xilinx/zc706/ip_cores/clk_mmcm/clk_mmcm.xml new file mode 100644 index 0000000..7d53e53 --- /dev/null +++ b/piton/design/chipset/xilinx/zc706/ip_cores/clk_mmcm/clk_mmcm.xml @@ -0,0 +1,4070 @@ + + + xilinx.com + customized_ip + clk_mmcm + 1.0 + + + s_axi_lite + S_AXI_LITE + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARREADY + + + s_axi_arready + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWREADY + + + s_axi_awready + + + + + AWVALID + + + s_axi_awvalid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + + false + + + + + + s_axi_aclk + s_axi_aclk + + + + + + + CLK + + + s_axi_aclk + + + + + + ASSOCIATED_BUSIF + s_axi_lite + + + ASSOCIATED_RESET + aresetn + + + + + + false + + + + + + ref_clk + ref_clk + + + + + + + CLK + + + ref_clk + + + + + + + false + + + + + + s_axi_resetn + S_AXI_RESETN + + + + + + + RST + + + s_axi_aresetn + + + + + + ASSOCIATED_RESET + aresetn + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + intr + Intr + + + + + + + INTERRUPT + + + ip2intc_irpt + + + + + + + false + + + + + + CLK_IN1_D + CLK_IN1_D + Differential Clock input + + + + + + + CLK_N + + + clk_in1_n + + + + + CLK_P + + + clk_in1_p + + + + + + BOARD.ASSOCIATED_PARAM + CLK_IN1_BOARD_INTERFACE + + + + required + + + + + + + + + true + + + + + + CLK_IN2_D + CLK_IN2_D + Differential Clock input + + + + + + + CLK_N + + + clk_in2_n + + + + + CLK_P + + + clk_in2_p + + + + + + BOARD.ASSOCIATED_PARAM + CLK_IN2_BOARD_INTERFACE + + + + required + + + + + + + + + false + + + + + + CLKFB_IN_D + CLKFB_IN_D + Differential Feedback Clock input + + + + + + + CLK_N + + + clkfb_in_n + + + + + CLK_P + + + clkfb_in_p + + + + + + + false + + + + + + CLKFB_OUT_D + CLKFB_OUT_D + Differential Feeback Clock Output + + + + + + + CLK_N + + + clkfb_out_n + + + + + CLK_P + + + clkfb_out_p + + + + + + + false + + + + + + reset + reset + + + + + + + RST + + + reset + + + + + + POLARITY + ACTIVE_HIGH + + + BOARD.ASSOCIATED_PARAM + RESET_BOARD_INTERFACE + + + + + + true + + + + + + resetn + resetn + + + + + + + RST + + + resetn + + + + + + POLARITY + ACTIVE_LOW + + + BOARD.ASSOCIATED_PARAM + RESET_BOARD_INTERFACE + + + + + + false + + + + + + clock_CLK_OUT1 + + + + + + + CLK_OUT1 + + + chipset_clk + + + + + + clock_CLK_OUT2 + + + + + + + CLK_OUT2 + + + mc_sys_clk + + + + + + clock_CLK_OUT3 + + + + + + + CLK_OUT3 + + + spi_sys_clk + + + + + + clock_CLK_OUT4 + + + + + + + CLK_OUT4 + + + chipset_passthru_clk + + + + + + clock_CLK_OUT5 + + + + + + + CLK_OUT5 + + + chipset_passthru_clk_n + + + + + + clock_CLK_OUT6 + + + + + + + CLK_OUT6 + + + net_phy_clk + + + + + + clock_CLK_OUT7 + + + + + + + CLK_OUT7 + + + net_axi_clk + + + + + + + + + xilinx_elaborateports + Elaborate Ports + :vivado.xilinx.com:elaborate.ports + + + outputProductCRC + 7:8ee99023 + + + + + + + s_axi_aclk + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_aresetn + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 10 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_wdata + + in + + 31 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 3 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 10 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_rdata + + out + + 31 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_in1_p + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + true + + + + + + clk_in1_n + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + true + + + + + + clk_in2_p + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_in2_n + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clkfb_in_p + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clkfb_in_n + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clkfb_out_p + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + clkfb_out_n + + out + + + std_logic + xilinx_elaborateports + + + + + + + false + + + + + + reset + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + true + + + + + + resetn + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + ref_clk + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_stop + + out + + 3 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_glitch + + out + + 3 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + interrupt + + out + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + clk_oor + + out + + 3 + 0 + + + + std_logic_vector + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + user_clk0 + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + user_clk1 + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + user_clk2 + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + user_clk3 + + in + + + std_logic + xilinx_elaborateports + + + + 0 + + + + + + false + + + + + + chipset_clk + + out + + + std_logic + xilinx_elaborateports + + + + + + mc_sys_clk + + out + + + std_logic + xilinx_elaborateports + + + + + + spi_sys_clk + + out + + + std_logic + xilinx_elaborateports + + + + + + chipset_passthru_clk + + out + + + std_logic + xilinx_elaborateports + + + + + + chipset_passthru_clk_n + + out + + + std_logic + xilinx_elaborateports + + + + + + net_phy_clk + + out + + + std_logic + xilinx_elaborateports + + + + + + net_axi_clk + + out + + + std_logic + xilinx_elaborateports + + + + + + locked + + out + + + std_logic + xilinx_elaborateports + + + + + + + + C_CLKOUT2_USED + 1 + + + C_USER_CLK_FREQ0 + 100.0 + + + C_AUTO_PRIMITIVE + MMCM + + + C_USER_CLK_FREQ1 + 100.0 + + + C_USER_CLK_FREQ2 + 100.0 + + + C_USER_CLK_FREQ3 + 100.0 + + + C_ENABLE_CLOCK_MONITOR + 0 + + + C_ENABLE_USER_CLOCK0 + 0 + + + C_ENABLE_USER_CLOCK1 + 0 + + + C_ENABLE_USER_CLOCK2 + 0 + + + C_ENABLE_USER_CLOCK3 + 0 + + + C_Enable_PLL0 + 0 + + + C_Enable_PLL1 + 0 + + + C_REF_CLK_FREQ + 100.0 + + + C_PRECISION + 1 + + + C_CLKOUT3_USED + 1 + + + C_CLKOUT4_USED + 1 + + + C_CLKOUT5_USED + 1 + + + C_CLKOUT6_USED + 1 + + + C_CLKOUT7_USED + 1 + + + C_USE_CLKOUT1_BAR + 0 + + + C_USE_CLKOUT2_BAR + 0 + + + C_USE_CLKOUT3_BAR + 0 + + + C_USE_CLKOUT4_BAR + 0 + + + c_component_name + clk_mmcm + + + C_PLATFORM + UNKNOWN + + + C_USE_FREQ_SYNTH + 1 + + + C_USE_PHASE_ALIGNMENT + 1 + + + C_PRIM_IN_JITTER + 0.010 + + + C_SECONDARY_IN_JITTER + 0.010 + + + C_JITTER_SEL + No_Jitter + + + C_USE_MIN_POWER + 0 + + + C_USE_MIN_O_JITTER + 0 + + + C_USE_MAX_I_JITTER + 0 + + + C_USE_DYN_PHASE_SHIFT + 0 + + + C_USE_INCLK_SWITCHOVER + 0 + + + C_USE_DYN_RECONFIG + 0 + + + C_USE_SPREAD_SPECTRUM + 0 + + + C_USE_FAST_SIMULATION + 0 + + + C_PRIMTYPE_SEL + AUTO + + + C_USE_CLK_VALID + 0 + + + C_PRIM_IN_FREQ + 200.000 + + + C_PRIM_IN_TIMEPERIOD + 10.000 + + + C_IN_FREQ_UNITS + Units_MHz + + + C_SECONDARY_IN_FREQ + 100.000 + + + C_SECONDARY_IN_TIMEPERIOD + 10.000 + + + C_FEEDBACK_SOURCE + FDBK_AUTO + + + C_PRIM_SOURCE + Differential_clock_capable_pin + + + C_PHASESHIFT_MODE + WAVEFORM + + + C_SECONDARY_SOURCE + Single_ended_clock_capable_pin + + + C_CLKFB_IN_SIGNALING + SINGLE + + + C_USE_RESET + 1 + + + C_RESET_LOW + 0 + + + C_USE_LOCKED + 1 + + + C_USE_INCLK_STOPPED + 0 + + + C_USE_CLKFB_STOPPED + 0 + + + C_USE_POWER_DOWN + 0 + + + C_USE_STATUS + 0 + + + C_USE_FREEZE + 0 + + + C_NUM_OUT_CLKS + 7 + + + C_CLKOUT1_DRIVES + BUFG + + + C_CLKOUT2_DRIVES + BUFG + + + C_CLKOUT3_DRIVES + BUFG + + + C_CLKOUT4_DRIVES + BUFG + + + C_CLKOUT5_DRIVES + BUFG + + + C_CLKOUT6_DRIVES + BUFG + + + C_CLKOUT7_DRIVES + BUFG + + + C_INCLK_SUM_ROW0 + Input Clock Freq (MHz) Input Jitter (UI) + + + C_INCLK_SUM_ROW1 + __primary_________200.000____________0.010 + + + C_INCLK_SUM_ROW2 + no_secondary_input_clock + + + C_OUTCLK_SUM_ROW0A + C Outclk Sum Row0a + Output Output Phase Duty Cycle Pk-to-Pk Phase + + + C_OUTCLK_SUM_ROW0B + Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) + + + C_OUTCLK_SUM_ROW1 + chipset_clk____66.667______0.000______50.0______117.498____105.563 + + + C_OUTCLK_SUM_ROW2 + mc_sys_clk___200.000______0.000______50.0_______94.528____105.563 + + + C_OUTCLK_SUM_ROW3 + spi_sys_clk____20.000______0.000______50.0______150.107____105.563 + + + C_OUTCLK_SUM_ROW4 + chipset_passthru_clk___100.000______0.000______50.0______108.247____105.563 + + + C_OUTCLK_SUM_ROW5 + chipset_passthru_clk_n___100.000____180.000______50.0______108.247____105.563 + + + C_OUTCLK_SUM_ROW6 + net_phy_clk____25.000______0.000______50.0______143.534____105.563 + + + C_OUTCLK_SUM_ROW7 + net_axi_clk___100.000______0.000______50.0______108.247____105.563 + + + C_CLKOUT1_REQUESTED_OUT_FREQ + 66.666 + + + C_CLKOUT2_REQUESTED_OUT_FREQ + 200.000 + + + C_CLKOUT3_REQUESTED_OUT_FREQ + 20.000 + + + C_CLKOUT4_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT5_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT6_REQUESTED_OUT_FREQ + 25.000 + + + C_CLKOUT7_REQUESTED_OUT_FREQ + 100.000 + + + C_CLKOUT1_REQUESTED_PHASE + 0.000 + + + C_CLKOUT2_REQUESTED_PHASE + 0.000 + + + C_CLKOUT3_REQUESTED_PHASE + 0.000 + + + C_CLKOUT4_REQUESTED_PHASE + 0.000 + + + C_CLKOUT5_REQUESTED_PHASE + 180.000 + + + C_CLKOUT6_REQUESTED_PHASE + 0.000 + + + C_CLKOUT7_REQUESTED_PHASE + 0.000 + + + C_CLKOUT1_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT2_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT3_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT4_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT5_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT6_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT7_REQUESTED_DUTY_CYCLE + 50.000 + + + C_CLKOUT1_OUT_FREQ + 66.667 + + + C_CLKOUT2_OUT_FREQ + 200.000 + + + C_CLKOUT3_OUT_FREQ + 20.000 + + + C_CLKOUT4_OUT_FREQ + 100.000 + + + C_CLKOUT5_OUT_FREQ + 100.000 + + + C_CLKOUT6_OUT_FREQ + 25.000 + + + C_CLKOUT7_OUT_FREQ + 100.000 + + + C_CLKOUT1_PHASE + 0.000 + + + C_CLKOUT2_PHASE + 0.000 + + + C_CLKOUT3_PHASE + 0.000 + + + C_CLKOUT4_PHASE + 0.000 + + + C_CLKOUT5_PHASE + 180.000 + + + C_CLKOUT6_PHASE + 0.000 + + + C_CLKOUT7_PHASE + 0.000 + + + C_CLKOUT1_DUTY_CYCLE + 50.0 + + + C_CLKOUT2_DUTY_CYCLE + 50.0 + + + C_CLKOUT3_DUTY_CYCLE + 50.0 + + + C_CLKOUT4_DUTY_CYCLE + 50.0 + + + C_CLKOUT5_DUTY_CYCLE + 50.0 + + + C_CLKOUT6_DUTY_CYCLE + 50.0 + + + C_CLKOUT7_DUTY_CYCLE + 50.0 + + + C_USE_SAFE_CLOCK_STARTUP + 0 + + + C_USE_CLOCK_SEQUENCING + 0 + + + C_CLKOUT1_SEQUENCE_NUMBER + 1 + + + C_CLKOUT2_SEQUENCE_NUMBER + 1 + + + C_CLKOUT3_SEQUENCE_NUMBER + 1 + + + C_CLKOUT4_SEQUENCE_NUMBER + 1 + + + C_CLKOUT5_SEQUENCE_NUMBER + 1 + + + C_CLKOUT6_SEQUENCE_NUMBER + 1 + + + C_CLKOUT7_SEQUENCE_NUMBER + 1 + + + C_MMCM_NOTES + None + + + C_MMCM_BANDWIDTH + OPTIMIZED + + + C_MMCM_CLKFBOUT_MULT_F + 3.000 + + + C_MMCM_CLKIN1_PERIOD + 5.0 + + + C_MMCM_CLKIN2_PERIOD + 10.0 + + + C_MMCM_CLKOUT4_CASCADE + FALSE + + + C_MMCM_CLOCK_HOLD + FALSE + + + C_MMCM_COMPENSATION + ZHOLD + + + C_MMCM_DIVCLK_DIVIDE + 1 + + + C_MMCM_REF_JITTER1 + 0.010 + + + C_MMCM_REF_JITTER2 + 0.010 + + + C_MMCM_STARTUP_WAIT + FALSE + + + C_MMCM_CLKOUT0_DIVIDE_F + 9.000 + + + C_MMCM_CLKOUT1_DIVIDE + 3 + + + C_MMCM_CLKOUT2_DIVIDE + 30 + + + C_MMCM_CLKOUT3_DIVIDE + 6 + + + C_MMCM_CLKOUT4_DIVIDE + 6 + + + C_MMCM_CLKOUT5_DIVIDE + 24 + + + C_MMCM_CLKOUT6_DIVIDE + 6 + + + C_MMCM_CLKOUT0_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT1_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT2_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT3_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT4_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT5_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKOUT6_DUTY_CYCLE + 0.500 + + + C_MMCM_CLKFBOUT_PHASE + 0.000 + + + C_MMCM_CLKOUT0_PHASE + 0.000 + + + C_MMCM_CLKOUT1_PHASE + 0.000 + + + C_MMCM_CLKOUT2_PHASE + 0.000 + + + C_MMCM_CLKOUT3_PHASE + 0.000 + + + C_MMCM_CLKOUT4_PHASE + 180.000 + + + C_MMCM_CLKOUT5_PHASE + 0.000 + + + C_MMCM_CLKOUT6_PHASE + 0.000 + + + C_MMCM_CLKFBOUT_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT0_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT1_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT2_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT3_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT4_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT5_USE_FINE_PS + FALSE + + + C_MMCM_CLKOUT6_USE_FINE_PS + FALSE + + + C_PLL_NOTES + No notes + + + C_PLL_BANDWIDTH + OPTIMIZED + + + C_PLL_CLK_FEEDBACK + CLKFBOUT + + + C_PLL_CLKFBOUT_MULT + 1 + + + C_PLL_CLKIN_PERIOD + 1.000 + + + C_PLL_COMPENSATION + SYSTEM_SYNCHRONOUS + + + C_PLL_DIVCLK_DIVIDE + 1 + + + C_PLL_REF_JITTER + 0.010 + + + C_PLL_CLKOUT0_DIVIDE + 1 + + + C_PLL_CLKOUT1_DIVIDE + 1 + + + C_PLL_CLKOUT2_DIVIDE + 1 + + + C_PLL_CLKOUT3_DIVIDE + 1 + + + C_PLL_CLKOUT4_DIVIDE + 1 + + + C_PLL_CLKOUT5_DIVIDE + 1 + + + C_PLL_CLKOUT0_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT1_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT2_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT3_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT4_DUTY_CYCLE + 0.500 + + + C_PLL_CLKOUT5_DUTY_CYCLE + 0.500 + + + C_PLL_CLKFBOUT_PHASE + 0.000 + + + C_PLL_CLKOUT0_PHASE + 0.000 + + + C_PLL_CLKOUT1_PHASE + 0.000 + + + C_PLL_CLKOUT2_PHASE + 0.000 + + + C_PLL_CLKOUT3_PHASE + 0.000 + + + C_PLL_CLKOUT4_PHASE + 0.000 + + + C_PLL_CLKOUT5_PHASE + 0.000 + + + C_CLOCK_MGR_TYPE + NA + + + C_OVERRIDE_MMCM + 0 + + + C_OVERRIDE_PLL + 0 + + + C_PRIMARY_PORT + clk_in1 + + + C_SECONDARY_PORT + clk_in2 + + + C_CLK_OUT1_PORT + chipset_clk + + + C_CLK_OUT2_PORT + mc_sys_clk + + + C_CLK_OUT3_PORT + spi_sys_clk + + + C_CLK_OUT4_PORT + chipset_passthru_clk + + + C_CLK_OUT5_PORT + chipset_passthru_clk_n + + + C_CLK_OUT6_PORT + net_phy_clk + + + C_CLK_OUT7_PORT + net_axi_clk + + + C_RESET_PORT + reset + + + C_LOCKED_PORT + locked + + + C_CLKFB_IN_PORT + clkfb_in + + + C_CLKFB_IN_P_PORT + clkfb_in_p + + + C_CLKFB_IN_N_PORT + clkfb_in_n + + + C_CLKFB_OUT_PORT + clkfb_out + + + C_CLKFB_OUT_P_PORT + clkfb_out_p + + + C_CLKFB_OUT_N_PORT + clkfb_out_n + + + C_POWER_DOWN_PORT + power_down + + + C_DADDR_PORT + daddr + + + C_DCLK_PORT + dclk + + + C_DRDY_PORT + drdy + + + C_DWE_PORT + dwe + + + C_DIN_PORT + din + + + C_DOUT_PORT + dout + + + C_DEN_PORT + den + + + C_PSCLK_PORT + psclk + + + C_PSEN_PORT + psen + + + C_PSINCDEC_PORT + psincdec + + + C_PSDONE_PORT + psdone + + + C_CLK_VALID_PORT + CLK_VALID + + + C_STATUS_PORT + STATUS + + + C_CLK_IN_SEL_PORT + clk_in_sel + + + C_INPUT_CLK_STOPPED_PORT + input_clk_stopped + + + C_CLKFB_STOPPED_PORT + clkfb_stopped + + + C_CLKIN1_JITTER_PS + 50.0 + + + C_CLKIN2_JITTER_PS + 100.0 + + + C_PRIMITIVE + MMCM + + + C_SS_MODE + CENTER_HIGH + + + C_SS_MOD_PERIOD + 4000 + + + C_SS_MOD_TIME + 0.004 + + + C_HAS_CDDC + 0 + + + C_CDDCDONE_PORT + cddcdone + + + C_CDDCREQ_PORT + cddcreq + + + C_CLKOUTPHY_MODE + VCO + + + C_ENABLE_CLKOUTPHY + 0 + + + C_INTERFACE_SELECTION + 0 + + + C_S_AXI_ADDR_WIDTH + C S Axi Addr Width + 11 + + + C_S_AXI_DATA_WIDTH + C S Axi Data Width + 32 + + + C_POWER_REG + 0000 + + + C_CLKOUT0_1 + 0000 + + + C_CLKOUT0_2 + 0000 + + + C_CLKOUT1_1 + 0000 + + + C_CLKOUT1_2 + 0000 + + + C_CLKOUT2_1 + 0000 + + + C_CLKOUT2_2 + 0000 + + + C_CLKOUT3_1 + 0000 + + + C_CLKOUT3_2 + 0000 + + + C_CLKOUT4_1 + 0000 + + + C_CLKOUT4_2 + 0000 + + + C_CLKOUT5_1 + 0000 + + + C_CLKOUT5_2 + 0000 + + + C_CLKOUT6_1 + 0000 + + + C_CLKOUT6_2 + 0000 + + + C_CLKFBOUT_1 + 0000 + + + C_CLKFBOUT_2 + 0000 + + + C_DIVCLK + 0000 + + + C_LOCK_1 + 0000 + + + C_LOCK_2 + 0000 + + + C_LOCK_3 + 0000 + + + C_FILTER_1 + 0000 + + + C_FILTER_2 + 0000 + + + C_DIVIDE1_AUTO + 1 + + + C_DIVIDE2_AUTO + 0.33332999999999996 + + + C_DIVIDE3_AUTO + 3.3333 + + + C_DIVIDE4_AUTO + 0.6666599999999999 + + + C_DIVIDE5_AUTO + 0.6666599999999999 + + + C_DIVIDE6_AUTO + 2.6666399999999997 + + + C_DIVIDE7_AUTO + 0.6666599999999999 + + + C_PLLBUFGCEDIV + false + + + C_MMCMBUFGCEDIV + false + + + C_PLLBUFGCEDIV1 + false + + + C_PLLBUFGCEDIV2 + false + + + C_PLLBUFGCEDIV3 + false + + + C_PLLBUFGCEDIV4 + false + + + C_MMCMBUFGCEDIV1 + false + + + C_MMCMBUFGCEDIV2 + false + + + C_MMCMBUFGCEDIV3 + false + + + C_MMCMBUFGCEDIV4 + false + + + C_MMCMBUFGCEDIV5 + false + + + C_MMCMBUFGCEDIV6 + false + + + C_MMCMBUFGCEDIV7 + false + + + C_CLKOUT1_MATCHED_ROUTING + false + + + C_CLKOUT2_MATCHED_ROUTING + false + + + C_CLKOUT3_MATCHED_ROUTING + false + + + C_CLKOUT4_MATCHED_ROUTING + false + + + C_CLKOUT5_MATCHED_ROUTING + false + + + C_CLKOUT6_MATCHED_ROUTING + false + + + C_CLKOUT7_MATCHED_ROUTING + false + + + C_CLKOUT0_ACTUAL_FREQ + 66.667 + + + C_CLKOUT1_ACTUAL_FREQ + 200.000 + + + C_CLKOUT2_ACTUAL_FREQ + 20.000 + + + C_CLKOUT3_ACTUAL_FREQ + 100.000 + + + C_CLKOUT4_ACTUAL_FREQ + 100.000 + + + C_CLKOUT5_ACTUAL_FREQ + 25.000 + + + C_CLKOUT6_ACTUAL_FREQ + 100.000 + + + + + + choice_list_1d3de01d + WAVEFORM + LATENCY + + + choice_list_876bfc32 + UI + PS + + + choice_list_a9bdfce0 + LOW + HIGH + OPTIMIZED + + + choice_list_b9d38208 + CLKFBOUT + CLKOUT0 + + + choice_list_ce26ebdb + Custom + reset + + + choice_list_e099fe6c + MMCM + PLL + + + choice_pairs_035ca1c3 + SYSTEM_SYNCHRONOUS + SOURCE_SYNCHRONOUS + INTERNAL + EXTERNAL + + + choice_pairs_0920eb1b + Custom + sys_diff_clock + + + choice_pairs_11d71346 + Single_ended_clock_capable_pin + Differential_clock_capable_pin + Global_buffer + No_buffer + + + choice_pairs_15c806d5 + FDBK_AUTO + FDBK_AUTO_OFFCHIP + FDBK_ONCHIP + FDBK_OFFCHIP + + + choice_pairs_30cf7dfc + Single_ended_clock_capable_pin + Differential_clock_capable_pin + Single_ended_non_clock_pin + Differential_non_clock_pin + Global_buffer + No_buffer + + + choice_pairs_3c2d3ec7 + SINGLE + DIFF + + + choice_pairs_502d9f23 + ZHOLD + EXTERNAL + INTERNAL + BUF_IN + + + choice_pairs_66e4c81f + BUFG + BUFH + BUFGCE + BUFHCE + No_buffer + + + choice_pairs_77d3d587 + MMCM + PLL + BUFGCE_DIV + + + choice_pairs_8b28f1f7 + Enable_AXI + Enable_DRP + + + choice_pairs_8eea9b32 + Units_MHz + Units_ns + + + choice_pairs_a4fbc00c + ACTIVE_HIGH + ACTIVE_LOW + + + choice_pairs_a8642b4c + No_Jitter + Min_O_Jitter + Max_I_Jitter + + + choice_pairs_c5ef7212 + Units_UI + Units_ps + + + choice_pairs_e1c87518 + REL_PRIMARY + REL_SECONDARY + + + choice_pairs_f4e10086 + CENTER_HIGH + CENTER_LOW + DOWN_HIGH + DOWN_LOW + + + choice_pairs_f669c2f5 + frequency + Time + + + The Clocking Wizard creates an HDL file (Verilog or VHDL) that contains a clocking circuit customized to the user's clocking requirements. + + + Component_Name + clk_mmcm + + + USER_CLK_FREQ0 + User Frequency(MHz) + 100.0 + + + USER_CLK_FREQ1 + User Frequency(MHz) + 100.0 + + + USER_CLK_FREQ2 + User Frequency(MHz) + 100.0 + + + USER_CLK_FREQ3 + User Frequency(MHz) + 100.0 + + + ENABLE_CLOCK_MONITOR + Enable Clock Monitoring + false + + + ENABLE_USER_CLOCK0 + User Clock + false + + + ENABLE_USER_CLOCK1 + User Clock + false + + + ENABLE_USER_CLOCK2 + User Clock + false + + + ENABLE_USER_CLOCK3 + User Clock + false + + + Enable_PLL0 + User Clock + false + + + Enable_PLL1 + User Clock + false + + + REF_CLK_FREQ + Reference Frequency(MHz) + 100.0 + + + PRECISION + Tolerance(MHz) + 1 + + + PRIMITIVE + Primitive + MMCM + + + PRIMTYPE_SEL + Primtype Sel + mmcm_adv + + + CLOCK_MGR_TYPE + Clock Mgr Type + auto + + + USE_FREQ_SYNTH + true + + + USE_SPREAD_SPECTRUM + false + + + USE_PHASE_ALIGNMENT + true + + + USE_MIN_POWER + false + + + USE_DYN_PHASE_SHIFT + false + + + USE_DYN_RECONFIG + false + + + JITTER_SEL + No_Jitter + + + PRIM_IN_FREQ + 200.000 + + + PRIM_IN_TIMEPERIOD + 10.000 + + + IN_FREQ_UNITS + Units_MHz + + + PHASESHIFT_MODE + WAVEFORM + + + IN_JITTER_UNITS + Units_UI + + + RELATIVE_INCLK + REL_PRIMARY + + + USE_INCLK_SWITCHOVER + false + + + SECONDARY_IN_FREQ + 100.000 + + + SECONDARY_IN_TIMEPERIOD + 10.000 + + + SECONDARY_PORT + clk_in2 + + + SECONDARY_SOURCE + Single_ended_clock_capable_pin + + + JITTER_OPTIONS + UI + + + CLKIN1_UI_JITTER + 0.010 + + + CLKIN2_UI_JITTER + 0.010 + + + PRIM_IN_JITTER + 0.010 + + + SECONDARY_IN_JITTER + 0.010 + + + CLKIN1_JITTER_PS + 50.0 + + + CLKIN2_JITTER_PS + 100.0 + + + CLKOUT1_USED + true + + + CLKOUT2_USED + true + + + CLKOUT3_USED + true + + + CLKOUT4_USED + true + + + CLKOUT5_USED + true + + + CLKOUT6_USED + true + + + CLKOUT7_USED + true + + + NUM_OUT_CLKS + 7 + + + CLK_OUT1_USE_FINE_PS_GUI + false + + + CLK_OUT2_USE_FINE_PS_GUI + false + + + CLK_OUT3_USE_FINE_PS_GUI + false + + + CLK_OUT4_USE_FINE_PS_GUI + false + + + CLK_OUT5_USE_FINE_PS_GUI + false + + + CLK_OUT6_USE_FINE_PS_GUI + false + + + CLK_OUT7_USE_FINE_PS_GUI + false + + + PRIMARY_PORT + clk_in1 + + + CLK_OUT1_PORT + chipset_clk + + + CLK_OUT2_PORT + mc_sys_clk + + + CLK_OUT3_PORT + spi_sys_clk + + + CLK_OUT4_PORT + chipset_passthru_clk + + + CLK_OUT5_PORT + chipset_passthru_clk_n + + + CLK_OUT6_PORT + net_phy_clk + + + CLK_OUT7_PORT + net_axi_clk + + + DADDR_PORT + daddr + + + DCLK_PORT + dclk + + + DRDY_PORT + drdy + + + DWE_PORT + dwe + + + DIN_PORT + din + + + DOUT_PORT + dout + + + DEN_PORT + den + + + PSCLK_PORT + psclk + + + PSEN_PORT + psen + + + PSINCDEC_PORT + psincdec + + + PSDONE_PORT + psdone + + + CLKOUT1_REQUESTED_OUT_FREQ + 66.666 + + + CLKOUT1_REQUESTED_PHASE + 0.000 + + + CLKOUT1_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT2_REQUESTED_OUT_FREQ + 200.000 + + + CLKOUT2_REQUESTED_PHASE + 0.000 + + + CLKOUT2_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT3_REQUESTED_OUT_FREQ + 20.000 + + + CLKOUT3_REQUESTED_PHASE + 0.000 + + + CLKOUT3_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT4_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT4_REQUESTED_PHASE + 0.000 + + + CLKOUT4_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT5_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT5_REQUESTED_PHASE + 180.000 + + + CLKOUT5_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT6_REQUESTED_OUT_FREQ + 25.000 + + + CLKOUT6_REQUESTED_PHASE + 0.000 + + + CLKOUT6_REQUESTED_DUTY_CYCLE + 50.000 + + + CLKOUT7_REQUESTED_OUT_FREQ + 100.000 + + + CLKOUT7_REQUESTED_PHASE + 0.000 + + + CLKOUT7_REQUESTED_DUTY_CYCLE + 50.000 + + + USE_MAX_I_JITTER + false + + + USE_MIN_O_JITTER + false + + + CLKOUT1_MATCHED_ROUTING + false + + + CLKOUT2_MATCHED_ROUTING + false + + + CLKOUT3_MATCHED_ROUTING + false + + + CLKOUT4_MATCHED_ROUTING + false + + + CLKOUT5_MATCHED_ROUTING + false + + + CLKOUT6_MATCHED_ROUTING + false + + + CLKOUT7_MATCHED_ROUTING + false + + + PRIM_SOURCE + Differential_clock_capable_pin + + + CLKOUT1_DRIVES + BUFG + + + CLKOUT2_DRIVES + BUFG + + + CLKOUT3_DRIVES + BUFG + + + CLKOUT4_DRIVES + BUFG + + + CLKOUT5_DRIVES + BUFG + + + CLKOUT6_DRIVES + BUFG + + + CLKOUT7_DRIVES + BUFG + + + FEEDBACK_SOURCE + FDBK_AUTO + + + CLKFB_IN_SIGNALING + SINGLE + + + CLKFB_IN_PORT + clkfb_in + + + CLKFB_IN_P_PORT + clkfb_in_p + + + CLKFB_IN_N_PORT + clkfb_in_n + + + CLKFB_OUT_PORT + clkfb_out + + + CLKFB_OUT_P_PORT + clkfb_out_p + + + CLKFB_OUT_N_PORT + clkfb_out_n + + + PLATFORM + UNKNOWN + + + SUMMARY_STRINGS + empty + + + USE_LOCKED + true + + + CALC_DONE + empty + + + USE_RESET + true + + + USE_POWER_DOWN + false + + + USE_STATUS + false + + + USE_FREEZE + false + + + USE_CLK_VALID + false + + + USE_INCLK_STOPPED + false + + + USE_CLKFB_STOPPED + false + + + RESET_PORT + reset + + + LOCKED_PORT + locked + + + POWER_DOWN_PORT + power_down + + + CLK_VALID_PORT + CLK_VALID + + + STATUS_PORT + STATUS + + + CLK_IN_SEL_PORT + clk_in_sel + + + INPUT_CLK_STOPPED_PORT + input_clk_stopped + + + CLKFB_STOPPED_PORT + clkfb_stopped + + + SS_MODE + CENTER_HIGH + + + SS_MOD_FREQ + 250 + + + SS_MOD_TIME + 0.004 + + + OVERRIDE_MMCM + false + + + MMCM_NOTES + None + + + MMCM_DIVCLK_DIVIDE + 1 + + + MMCM_BANDWIDTH + OPTIMIZED + + + MMCM_CLKFBOUT_MULT_F + 3.000 + + + MMCM_CLKFBOUT_PHASE + 0.000 + + + MMCM_CLKFBOUT_USE_FINE_PS + false + + + MMCM_CLKIN1_PERIOD + 5.0 + + + MMCM_CLKIN2_PERIOD + 10.0 + + + MMCM_CLKOUT4_CASCADE + false + + + MMCM_CLOCK_HOLD + false + + + MMCM_COMPENSATION + ZHOLD + + + MMCM_REF_JITTER1 + 0.010 + + + MMCM_REF_JITTER2 + 0.010 + + + MMCM_STARTUP_WAIT + false + + + MMCM_CLKOUT0_DIVIDE_F + 9.000 + + + MMCM_CLKOUT0_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT0_PHASE + 0.000 + + + MMCM_CLKOUT0_USE_FINE_PS + false + + + MMCM_CLKOUT1_DIVIDE + 3 + + + MMCM_CLKOUT1_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT1_PHASE + 0.000 + + + MMCM_CLKOUT1_USE_FINE_PS + false + + + MMCM_CLKOUT2_DIVIDE + 30 + + + MMCM_CLKOUT2_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT2_PHASE + 0.000 + + + MMCM_CLKOUT2_USE_FINE_PS + false + + + MMCM_CLKOUT3_DIVIDE + 6 + + + MMCM_CLKOUT3_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT3_PHASE + 0.000 + + + MMCM_CLKOUT3_USE_FINE_PS + false + + + MMCM_CLKOUT4_DIVIDE + 6 + + + MMCM_CLKOUT4_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT4_PHASE + 180.000 + + + MMCM_CLKOUT4_USE_FINE_PS + false + + + MMCM_CLKOUT5_DIVIDE + 24 + + + MMCM_CLKOUT5_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT5_PHASE + 0.000 + + + MMCM_CLKOUT5_USE_FINE_PS + false + + + MMCM_CLKOUT6_DIVIDE + 6 + + + MMCM_CLKOUT6_DUTY_CYCLE + 0.500 + + + MMCM_CLKOUT6_PHASE + 0.000 + + + MMCM_CLKOUT6_USE_FINE_PS + false + + + OVERRIDE_PLL + false + + + PLL_NOTES + None + + + PLL_BANDWIDTH + OPTIMIZED + + + PLL_CLKFBOUT_MULT + 4 + + + PLL_CLKFBOUT_PHASE + 0.000 + + + PLL_CLK_FEEDBACK + CLKFBOUT + + + PLL_DIVCLK_DIVIDE + 1 + + + PLL_CLKIN_PERIOD + 10.000 + + + PLL_COMPENSATION + SYSTEM_SYNCHRONOUS + + + PLL_REF_JITTER + 0.010 + + + PLL_CLKOUT0_DIVIDE + 1 + + + PLL_CLKOUT0_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT0_PHASE + 0.000 + + + PLL_CLKOUT1_DIVIDE + 1 + + + PLL_CLKOUT1_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT1_PHASE + 0.000 + + + PLL_CLKOUT2_DIVIDE + 1 + + + PLL_CLKOUT2_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT2_PHASE + 0.000 + + + PLL_CLKOUT3_DIVIDE + 1 + + + PLL_CLKOUT3_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT3_PHASE + 0.000 + + + PLL_CLKOUT4_DIVIDE + 1 + + + PLL_CLKOUT4_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT4_PHASE + 0.000 + + + PLL_CLKOUT5_DIVIDE + 1 + + + PLL_CLKOUT5_DUTY_CYCLE + 0.500 + + + PLL_CLKOUT5_PHASE + 0.000 + + + RESET_TYPE + Reset Type + ACTIVE_HIGH + + + USE_SAFE_CLOCK_STARTUP + false + + + USE_CLOCK_SEQUENCING + false + + + CLKOUT1_SEQUENCE_NUMBER + 1 + + + CLKOUT2_SEQUENCE_NUMBER + 1 + + + CLKOUT3_SEQUENCE_NUMBER + 1 + + + CLKOUT4_SEQUENCE_NUMBER + 1 + + + CLKOUT5_SEQUENCE_NUMBER + 1 + + + CLKOUT6_SEQUENCE_NUMBER + 1 + + + CLKOUT7_SEQUENCE_NUMBER + 1 + + + USE_BOARD_FLOW + Generate Board based IO Constraints + false + + + CLK_IN1_BOARD_INTERFACE + Custom + + + CLK_IN2_BOARD_INTERFACE + Custom + + + DIFF_CLK_IN1_BOARD_INTERFACE + Custom + + + DIFF_CLK_IN2_BOARD_INTERFACE + Custom + + + AUTO_PRIMITIVE + MMCM + + + RESET_BOARD_INTERFACE + Custom + + + ENABLE_CDDC + false + + + CDDCDONE_PORT + cddcdone + + + CDDCREQ_PORT + cddcreq + + + ENABLE_CLKOUTPHY + false + + + CLKOUTPHY_REQUESTED_FREQ + 600.000 + + + CLKOUT1_JITTER + Clkout1 Jitter + 117.498 + + + CLKOUT1_PHASE_ERROR + Clkout1 Phase + 105.563 + + + CLKOUT2_JITTER + Clkout2 Jitter + 94.528 + + + CLKOUT2_PHASE_ERROR + Clkout2 Phase + 105.563 + + + CLKOUT3_JITTER + Clkout3 Jitter + 150.107 + + + CLKOUT3_PHASE_ERROR + Clkout3 Phase + 105.563 + + + CLKOUT4_JITTER + Clkout4 Jitter + 108.247 + + + CLKOUT4_PHASE_ERROR + Clkout4 Phase + 105.563 + + + CLKOUT5_JITTER + Clkout5 Jitter + 108.247 + + + CLKOUT5_PHASE_ERROR + Clkout5 Phase + 105.563 + + + CLKOUT6_JITTER + Clkout6 Jitter + 143.534 + + + CLKOUT6_PHASE_ERROR + Clkout6 Phase + 105.563 + + + CLKOUT7_JITTER + Clkout7 Jitter + 108.247 + + + CLKOUT7_PHASE_ERROR + Clkout7 Phase + 105.563 + + + INPUT_MODE + frequency + + + INTERFACE_SELECTION + Enable_AXI + + + AXI_DRP + Write DRP registers + false + + + PHASE_DUTY_CONFIG + Phase Duty Cycle Config + false + + + + + Clocking Wizard + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/chipset/xilinx/zc706/ip_cores/mac_eth_axi_lite/mac_eth_axi_lite.xci b/piton/design/chipset/xilinx/zc706/ip_cores/mac_eth_axi_lite/mac_eth_axi_lite.xci new file mode 100644 index 0000000..773989b --- /dev/null +++ b/piton/design/chipset/xilinx/zc706/ip_cores/mac_eth_axi_lite/mac_eth_axi_lite.xci @@ -0,0 +1,61 @@ + + + xilinx.com + xci + unknown + 1.0 + + + mac_eth_axi_lite + + + 1 + zynq + 1 + 0 + 1 + 1 + 1 + 10000 + 1 + AXI4LITE + 1 + 100 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + AXI4LITE + 1 + 0 + mac_eth_axi_lite + 1 + Custom + Custom + false + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 10 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + diff --git a/piton/design/chipset/xilinx/zc706/ip_cores/mac_eth_axi_lite/mac_eth_axi_lite.xml b/piton/design/chipset/xilinx/zc706/ip_cores/mac_eth_axi_lite/mac_eth_axi_lite.xml new file mode 100644 index 0000000..af61153 --- /dev/null +++ b/piton/design/chipset/xilinx/zc706/ip_cores/mac_eth_axi_lite/mac_eth_axi_lite.xml @@ -0,0 +1,2131 @@ + + + xilinx.com + customized_ip + mac_eth_axi_lite + 1.0 + + + S_AXI + S_AXI + s_axi bus interface that supports both AXI4 and AXI4Lite + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARREADY + + + s_axi_arready + + + + + ARSIZE + + + s_axi_arsize + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWREADY + + + s_axi_awready + + + + + AWSIZE + + + s_axi_awsize + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WVALID + + + s_axi_wvalid + + + + + + s_axi_aclk + s_axi_aclk + s_axi_aclk + + + + + + + CLK + + + s_axi_aclk + + + + + + ASSOCIATED_BUSIF + S_AXI + + + ASSOCIATED_RESET + s_axi_aresetn + + + + + s_axi_aresetn + s_axi_aresetn + s_axi_aresetn + + + + + + + RST + + + s_axi_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + interrupt + interrupt + EthernetLite Interrupt to INTC + + + + + + + INTERRUPT + + + ip2intc_irpt + + + + + + SUGGESTED_PRIORITY + HIGH + + + SENSITIVITY + EDGE_RISING + + + + + MII + MII + MII + + + + + + + COL + + + phy_col + + + + + CRS + + + phy_crs + + + + + RST_N + + + phy_rst_n + + + + + RX_CLK + + + phy_rx_clk + + + + + RX_DV + + + phy_dv + + + + + RX_ER + + + phy_rx_er + + + + + RXD + + + phy_rx_data + + + + + TX_CLK + + + phy_tx_clk + + + + + TX_EN + + + phy_tx_en + + + + + TXD + + + phy_tx_data + + + + + + BOARD.ASSOCIATED_PARAM + MII_BOARD_INTERFACE + + + + required + + + + + + + + MDIO + MDIO + MDIO + + + + + + + MDC + + + phy_mdc + + + + + MDIO_I + + + phy_mdio_i + + + + + MDIO_O + + + phy_mdio_o + + + + + MDIO_T + + + phy_mdio_t + + + + + + BOARD.ASSOCIATED_PARAM + MDIO_BOARD_INTERFACE + + + + required + + + + + + + + + true + + + + + + + + S_AXI + S_AXI_MEM + Memory Map for S_AXI + + Reg + Reg + Register Block + 0 + 4096 + 32 + register + read-write + + MDIOADDR + MDIOADDR + MDIO address register + 0x07E4 + 32 + true + read-write + + 0x0 + + + REGADDR + Register Address + PHY register address + + 0 + 5 + true + read-write + + 0 + 0 + + false + + + PHYADDR + Device Address + PHY device address + + 5 + 5 + true + read-write + + 0 + 0 + + false + + + OP + Access Type + Operation Access Type + 0 - Write Access + 1 - Read Access + + 10 + 1 + true + read-write + + 0 + 0 + + false + + + + MDIOWR + MDIOWR + MDIO Write Data register + 0x07E8 + 32 + true + read-write + + 0x0 + + + MDIO_WDATA + MDIO Write Data + MDIO write data to be written to PHY register + + 0 + 16 + true + read-write + + 0 + 0 + + false + + + + MDIORD + MDIORD + MDIO Read Data register + 0x07EC + 32 + true + read-only + + 0x0 + + + MDIO_RDATA + MDIO Read Data + MDIO read data from the PHY register + + 0 + 16 + true + read-only + + 0 + 0 + + false + + + + MDIOCTRL + MDIOCTRL + MDIO Control register + 0x07F0 + 32 + true + read-write + + 0x0 + + + MDIO_Status + MDIO Status + MDIO status bit + 0 - MDIO transfer is complete and core is ready to accept a new MDIO request + 1 - MDIO transfer is in progress. Setting this bit initiates an MDIO transaction. When the MDIO transaction is complete, the AXI Ethernet Lite MAC core clears this bit PHY register address + + 0 + 1 + true + read-write + + 0 + 0 + + false + + + MDIO_Enable + MDIO Enable + MDIO enable bit + 0 - Disable MDIO interface + 1 - Enable MDIO interface + + 3 + 1 + true + read-write + + 0 + 0 + + false + + + + TX_Ping_Length + TX Ping Length + Transmit length register for ping buffer + 0x07F4 + 32 + true + read-write + + 0x0 + + + TX_Ping_Length_LSB + TX Ping Length LSB + The lower 8 bits of the frame length + + 0 + 8 + true + read-write + + 0 + 0 + + false + + + TX_Ping_Length_MSB + TX Ping Length MSB + The higher 8 bits of the frame length + + 8 + 8 + true + read-write + + 0 + 0 + + false + + + + GIE + GIE + Global Interrupt Enable Register + 0x07F8 + 32 + true + read-write + + 0x0 + + + GIE + Global Interrupt Enable + Global Interrupt Enable bit + + 31 + 1 + true + read-write + + 0 + 0 + + false + + + + TX_Ping_Control + TX Ping Control + Transmit control register for ping buffer + 0x07FC + 32 + true + read-write + + 0x0 + + + Status + Transmit ping buffer status + Transmit ping buffer status indicator + 0 - Transmit ping buffer is ready to accept new frame + 1 - Frame transfer is in progress. Setting this bit initiates transmit transaction. When transmit is complete, the AXI Ethernet Lite MAC core clears this bit. + + 0 + 1 + true + read-write + + 0 + 0 + + false + + + Program + Address Program + AXI Ethernet Lite MAC address program bit. +Setting this bit and status bit configures the new Ethernet MAC address for the core. + + 1 + 1 + true + read-write + + 0 + 0 + + false + + + Interrupt_Enable + Transmit Interrupt Enable + Transmit Interrupt Enable bit + 0 - Disable transmit interrupt + 1 - Enable transmit interrupt + + 3 + 1 + true + read-write + + 0 + 0 + + false + + + Loopback + Internal Loopback Enable + Internal loopback enable bit + 0 - No internal loopback + 1 - Internal loopback enable + + 4 + 1 + true + read-write + + 0 + 0 + + false + + + + TX_Pong_Length + TX Pong Length + Transmit length register for pong buffer + 0x0FF4 + 32 + true + read-write + + 0x0 + + + TX_Pong_Length_LSB + TX Pong Length LSB + The lower 8 bits of the frame length + + 0 + 8 + true + read-write + + 0 + 0 + + false + + + TX_Pong_Length_MSB + TX Pong Length MSB + The higher 8 bits of the frame length + + 8 + 8 + true + read-write + + 0 + 0 + + false + + + + TX_Pong_Control + TX Pong Control + Transmit control register for pong buffer + 0x0FFC + 32 + true + read-write + + 0x0 + + + Status + Transmit pong buffer status + Transmit pong buffer status indicator + 0 - Transmit pong buffer is ready to accept new frame + 1 - Frame transfer is in progress. Setting this bit initiates transmit transaction. When transmit is complete, the AXI Ethernet Lite MAC core clears this bit. + + 0 + 1 + true + read-write + + 0 + 0 + + false + + + Program + Address Program + AXI Ethernet Lite MAC address program bit. +Setting this bit and status bit configures the new Ethernet MAC address for the core. + + 1 + 1 + true + read-write + + 0 + 0 + + false + + + + RX_Ping_Control + RX Ping Control + Receive control register for ping buffer + 0x17FC + 32 + true + read-write + + 0x0 + + + Status + Receive ping buffer status + Receive status indicator + 0 - Receive ping buffer is empty. AXI Ethernet Lite MAC can accept new valid packet. + 1 - Indicates presence of receive packet ready for software processing. When the software reads the packet from the receive ping buffer, the software must clear this bit. + + 0 + 1 + true + read-write + + 0 + 0 + + false + + + Interrupt_Enable + Interrupt Enable + Receive Interrupt Enable bit + 0 - Disable receive interrupt + 1 - Enable receive interrupt + + 3 + 1 + true + read-write + + 0 + 0 + + false + + + + RX_Pong_Control + RX Pong Control + Receive control register for pong buffer + 0x1FFC + 32 + true + read-write + + 0x0 + + + Status + Receive pong buffer status + Receive status indicator 0 - Receive pong buffer is empty. AXI Ethernet Lite MAC can accept new available valid packet. 1 - Indicates presence of receive packet ready for software processing. When the software reads the packet from the receive pong buffer, the software must clear this bit + + 0 + 1 + true + read-write + + 0 + 0 + + false + + + + + + + + + s_axi_aclk + + in + + + std_logic + dummy_view + + + + + + s_axi_aresetn + + in + + + std_logic + dummy_view + + + + + + ip2intc_irpt + + out + + + std_logic + dummy_view + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 12 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + + + s_axi_wdata + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_wstrb + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 1 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 12 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + + + + false + + + + + + s_axi_rdata + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + + + phy_tx_clk + + in + + + std_logic + dummy_view + + + + + + phy_rx_clk + + in + + + std_logic + dummy_view + + + + + + phy_crs + + in + + + std_logic + dummy_view + + + + + + phy_dv + + in + + + std_logic + dummy_view + + + + + + phy_rx_data + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + phy_col + + in + + + std_logic + dummy_view + + + + + + phy_rx_er + + in + + + std_logic + dummy_view + + + + + + phy_rst_n + + out + + + std_logic + dummy_view + + + + + + phy_tx_en + + out + + + std_logic + dummy_view + + + + + + phy_tx_data + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + + + phy_mdio_i + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + phy_mdio_o + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + phy_mdio_t + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + phy_mdc + + out + + + std_logic + dummy_view + + + + + + + true + + + + + + + + C_FAMILY + zynq + + + C_SELECT_XPM + 1 + + + C_INSTANCE + C Instance + axi_ethernetlite_inst + + + C_S_AXI_ACLK_PERIOD_PS + AXI clock Period (in ps) + 10000 + + + C_S_AXI_ADDR_WIDTH + C S Axi Addr Width + 13 + + + C_S_AXI_DATA_WIDTH + C S Axi Data Width + 32 + + + C_S_AXI_ID_WIDTH + ID Width + 1 + + + C_S_AXI_PROTOCOL + AXI Protocol + AXI4LITE + + + C_INCLUDE_MDIO + Include MII Management module + 1 + + + C_INCLUDE_INTERNAL_LOOPBACK + Include Internal Loopback + 0 + + + C_INCLUDE_GLOBAL_BUFFERS + Include global buffers for PHY clocks + 1 + + + C_DUPLEX + Duplex + 1 + + + C_TX_PING_PONG + Number of Transmit Buffers + 1 + + + C_RX_PING_PONG + Number of Receive Buffers + 1 + + + + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_ac75ef1e + Custom + + + choice_list_dfc23cd1 + AXI4 + AXI4LITE + + + choice_pairs_3388d166 + 0 + 1 + + + choice_pairs_4873554b + 0 + 1 + + + AXI EthernetLite + + + C_RX_PING_PONG + Number of Receive Buffers + Set this parameter to include the no. of Receive Buffers. + 1 + + + + true + + + + + + C_TX_PING_PONG + Number of Transmit Buffers + Set this parameter to include the no. of Transmit Buffers. + 1 + + + + true + + + + + + C_INCLUDE_GLOBAL_BUFFERS + Enable Global Buffers for PHY Clocks + Enabling this parameter includes global buffers for PHY clocks which can be used to minimize the clock skew on the PHY clocks. + 1 + + + + true + + + + + + C_INCLUDE_INTERNAL_LOOPBACK + Enable Internal Loopback + Enabling this parameter includes BUFG for PHY clock switching when loopback is enabled. + 0 + + + + true + + + + + + C_INCLUDE_MDIO + Enable MII Management module + Including the MDIO interface allows PHY register access from AXI Ethernet Lite MAC core. + 1 + + + + true + + + + + + C_S_AXI_PROTOCOL + AXI Protocol + This parameter decides the AXI interface of the core. + AXI4LITE + + + + true + + + + + + Component_Name + mac_eth_axi_lite + + + + true + + + + + + C_DUPLEX + Communication Mode + Set this parameter for choosing Full Duplex or Half Duplex mode. + 1 + + + + true + + + + + + AXI_ACLK_FREQ_MHZ + AXI Clock Frequency (in MHz) + The AXI4 clock frequency must be greater than or equal to 100 MHz for 100 Mb/s Ethernet operation and greater than or equal to 10 MHz for 10 Mb/s Ethernet operation. + 100 + + + + true + + + + + + Enable_Constraints + Enable PHY signal I/O constraints + Enabling this parameter includes I/O constraints on the PHY ports through TCL. If internal PHY is used, this parameter has to be disabled. + 1 + + + + true + + + + + + USE_BOARD_FLOW + Generate Board based IO Constraints + false + + + + true + + + + + + MII_BOARD_INTERFACE + Custom + + + + true + + + + + + MDIO_BOARD_INTERFACE + Custom + + + + true + + + + + + C_S_AXI_ID_WIDTH + ID Width + 0 + + + + false + + + + + + C_USE_INTERNAL + Enable IOB in HDL + 0 + + + + true + + + + + + C_SELECT_XPM + 1 + + + + + AXI EthernetLite + 10 + + + 2017.1 + + + + + + + + + diff --git a/piton/design/common/fpga_bridge/common/xilinx/zc706/ip_cores/afifo_w64/afifo_w64.xci b/piton/design/common/fpga_bridge/common/xilinx/zc706/ip_cores/afifo_w64/afifo_w64.xci new file mode 100644 index 0000000..17f2cb5 --- /dev/null +++ b/piton/design/common/fpga_bridge/common/xilinx/zc706/ip_cores/afifo_w64/afifo_w64.xci @@ -0,0 +1,434 @@ + + + xilinx.com + xci + unknown + 1.0 + + + afifo_w64 + + + 100000000 + 100000000 + 100000000 + 100000000 + 100000000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 1 + 1 + 1 + 4 + 0 + 32 + 1 + 1 + 1 + 64 + 1 + 8 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + BlankString + 64 + 1 + 32 + 64 + 1 + 64 + 2 + 0 + 64 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + zynq + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + BlankString + 1 + 0 + 0 + 0 + 0 + 1 + 1kx36 + 1kx18 + 512x36 + 1kx36 + 512x36 + 1kx36 + 512x36 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1022 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 10 + 1024 + 1 + 10 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 10 + 1024 + 1024 + 16 + 1024 + 16 + 1024 + 16 + 1 + 10 + 10 + 4 + 10 + 4 + 10 + 4 + 1 + 32 + 0 + 0 + false + false + false + 0 + 0 + Slave_Interface_Clock_Enable + Common_Clock + afifo_w64 + 64 + false + 10 + false + false + 0 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + false + false + false + false + false + false + false + false + false + Hard_ECC + false + false + false + false + false + false + true + false + false + true + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Independent_Clocks_Block_RAM + 1 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1022 + false + false + false + 0 + Native + false + false + false + false + false + false + false + false + false + false + false + false + false + false + 64 + 1024 + 1024 + 16 + 1024 + 16 + 1024 + 16 + false + 64 + 1024 + Embedded_Reg + false + false + Active_High + Active_High + AXI4 + First_Word_Fall_Through + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + READ_WRITE + 0 + 1 + false + 10 + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + true + Asynchronous_Reset + false + 1 + 0 + 0 + 1 + 1 + 4 + false + false + Active_High + Active_High + true + false + false + false + false + Active_High + 0 + false + Active_High + 1 + false + 10 + false + FIFO + false + false + false + false + FIFO + FIFO + 2 + 2 + false + FIFO + FIFO + FIFO + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 4 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/common/fpga_bridge/common/xilinx/zc706/ip_cores/afifo_w64/afifo_w64.xml b/piton/design/common/fpga_bridge/common/xilinx/zc706/ip_cores/afifo_w64/afifo_w64.xml new file mode 100644 index 0000000..d48bed8 --- /dev/null +++ b/piton/design/common/fpga_bridge/common/xilinx/zc706/ip_cores/afifo_w64/afifo_w64.xml @@ -0,0 +1,9718 @@ + + + xilinx.com + customized_ip + afifo_w64 + 1.0 + + + M_AXIS + + + + + + + TDATA + + + m_axis_tdata + + + + + TDEST + + + m_axis_tdest + + + + + TID + + + m_axis_tid + + + + + TKEEP + + + m_axis_tkeep + + + + + TLAST + + + m_axis_tlast + + + + + TREADY + + + m_axis_tready + + + + + TSTRB + + + m_axis_tstrb + + + + + TUSER + + + m_axis_tuser + + + + + TVALID + + + m_axis_tvalid + + + + + + + false + + + + + + S_AXIS + + + + + + + TDATA + + + s_axis_tdata + + + + + TDEST + + + s_axis_tdest + + + + + TID + + + s_axis_tid + + + + + TKEEP + + + s_axis_tkeep + + + + + TLAST + + + s_axis_tlast + + + + + TREADY + + + s_axis_tready + + + + + TSTRB + + + s_axis_tstrb + + + + + TUSER + + + s_axis_tuser + + + + + TVALID + + + s_axis_tvalid + + + + + + + false + + + + + + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARREGION + + + s_axi_arregion + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWREGION + + + s_axi_awregion + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BUSER + + + s_axi_buser + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RUSER + + + s_axi_ruser + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WID + + + s_axi_wid + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WUSER + + + s_axi_wuser + + + + + WVALID + + + s_axi_wvalid + + + + + + BD_ATTRIBUTE.TYPE + INTERIOR + + + + + + false + + + + + + M_AXI + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARREGION + + + m_axi_arregion + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWREGION + + + m_axi_awregion + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BUSER + + + m_axi_buser + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RUSER + + + m_axi_ruser + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WID + + + m_axi_wid + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WUSER + + + m_axi_wuser + + + + + WVALID + + + m_axi_wvalid + + + + + + + false + + + + + + core_clk + + + + + + + CLK + + + clk + + + + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port clk + 100000000 + + + + + + false + + + + + + master_aclk + + + + + + + CLK + + + m_aclk + + + + + + ASSOCIATED_BUSIF + M_AXIS:M_AXI + + + FREQ_HZ + m_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + slave_aclk + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + S_AXIS:S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + FREQ_HZ + s_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + write_clk + + + + + + + CLK + + + wr_clk + + + + + + FREQ_HZ + write clock frequency + specify frequency of the clock connected to port wr_clk + 100000000 + + + + + + true + + + + + + read_clk + + + + + + + CLK + + + rd_clk + + + + + + FREQ_HZ + read clock frequency + specify frequency of the clock connected to port rd_clk + 100000000 + + + + + + true + + + + + + slave_aresetn + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + FIFO_WRITE + FIFO_WRITE + + + + + + + ALMOST_FULL + + + almost_full + + + + + FULL + + + full + + + + + WR_DATA + + + din + + + + + WR_EN + + + wr_en + + + + + + + true + + + + + + FIFO_READ + FIFO_READ + + + + + + + ALMOST_EMPTY + + + almost_empty + + + + + EMPTY + + + empty + + + + + RD_DATA + + + dout + + + + + RD_EN + + + rd_en + + + + + + + true + + + + + + + + + backup + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + backup_marker + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + srst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wr_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + wr_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + din + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + wr_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_assert + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_negate + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_assert + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_negate + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + int_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + dout + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + almost_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_ack + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + almost_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + valid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + rd_data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + wr_data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + prog_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_wid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_buser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wstrb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_buser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_ruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_aruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_ruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tkeep + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tdest + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tuser + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tstrb + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tkeep + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdest + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tuser + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_w_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_b_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_ar_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_r_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axis_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + + + C_COMMON_CLOCK + 0 + + + C_SELECT_XPM + 0 + + + C_COUNT_TYPE + 0 + + + C_DATA_COUNT_WIDTH + 10 + + + C_DEFAULT_VALUE + BlankString + + + C_DIN_WIDTH + 64 + + + C_DOUT_RST_VAL + 0 + + + C_DOUT_WIDTH + 64 + + + C_ENABLE_RLOCS + 0 + + + C_FAMILY + zynq + + + C_FULL_FLAGS_RST_VAL + 1 + + + C_HAS_ALMOST_EMPTY + 0 + + + C_HAS_ALMOST_FULL + 0 + + + C_HAS_BACKUP + 0 + + + C_HAS_DATA_COUNT + 0 + + + C_HAS_INT_CLK + 0 + + + C_HAS_MEMINIT_FILE + 0 + + + C_HAS_OVERFLOW + 0 + + + C_HAS_RD_DATA_COUNT + 0 + + + C_HAS_RD_RST + 0 + + + C_HAS_RST + 1 + + + C_HAS_SRST + 0 + + + C_HAS_UNDERFLOW + 0 + + + C_HAS_VALID + 0 + + + C_HAS_WR_ACK + 0 + + + C_HAS_WR_DATA_COUNT + 0 + + + C_HAS_WR_RST + 0 + + + C_IMPLEMENTATION_TYPE + 2 + + + C_INIT_WR_PNTR_VAL + 0 + + + C_MEMORY_TYPE + 1 + + + C_MIF_FILE_NAME + BlankString + + + C_OPTIMIZATION_MODE + 0 + + + C_OVERFLOW_LOW + 0 + + + C_PRELOAD_LATENCY + 0 + + + C_PRELOAD_REGS + 1 + + + C_PRIM_FIFO_TYPE + 1kx36 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL + 4 + + + C_PROG_EMPTY_THRESH_NEGATE_VAL + 5 + + + C_PROG_EMPTY_TYPE + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL + 1023 + + + C_PROG_FULL_THRESH_NEGATE_VAL + 1022 + + + C_PROG_FULL_TYPE + 0 + + + C_RD_DATA_COUNT_WIDTH + 10 + + + C_RD_DEPTH + 1024 + + + C_RD_FREQ + 1 + + + C_RD_PNTR_WIDTH + 10 + + + C_UNDERFLOW_LOW + 0 + + + C_USE_DOUT_RST + 1 + + + C_USE_ECC + 0 + + + C_USE_EMBEDDED_REG + 0 + + + C_USE_PIPELINE_REG + 0 + + + C_POWER_SAVING_MODE + 0 + + + C_USE_FIFO16_FLAGS + 0 + + + C_USE_FWFT_DATA_COUNT + 0 + + + C_VALID_LOW + 0 + + + C_WR_ACK_LOW + 0 + + + C_WR_DATA_COUNT_WIDTH + 10 + + + C_WR_DEPTH + 1024 + + + C_WR_FREQ + 1 + + + C_WR_PNTR_WIDTH + 10 + + + C_WR_RESPONSE_LATENCY + 1 + + + C_MSGON_VAL + 1 + + + C_ENABLE_RST_SYNC + 1 + + + C_EN_SAFETY_CKT + 0 + + + C_ERROR_INJECTION_TYPE + 0 + + + C_SYNCHRONIZER_STAGE + 2 + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_HAS_AXI_WR_CHANNEL + 1 + + + C_HAS_AXI_RD_CHANNEL + 1 + + + C_HAS_SLAVE_CE + 0 + + + C_HAS_MASTER_CE + 0 + + + C_ADD_NGC_CONSTRAINT + 0 + + + C_USE_COMMON_OVERFLOW + 0 + + + C_USE_COMMON_UNDERFLOW + 0 + + + C_USE_DEFAULT_SETTINGS + 0 + + + C_AXI_ID_WIDTH + 1 + + + C_AXI_ADDR_WIDTH + 32 + + + C_AXI_DATA_WIDTH + 64 + + + C_AXI_LEN_WIDTH + 8 + + + C_AXI_LOCK_WIDTH + 1 + + + C_HAS_AXI_ID + 0 + + + C_HAS_AXI_AWUSER + 0 + + + C_HAS_AXI_WUSER + 0 + + + C_HAS_AXI_BUSER + 0 + + + C_HAS_AXI_ARUSER + 0 + + + C_HAS_AXI_RUSER + 0 + + + C_AXI_ARUSER_WIDTH + 1 + + + C_AXI_AWUSER_WIDTH + 1 + + + C_AXI_WUSER_WIDTH + 1 + + + C_AXI_BUSER_WIDTH + 1 + + + C_AXI_RUSER_WIDTH + 1 + + + C_HAS_AXIS_TDATA + 1 + + + C_HAS_AXIS_TID + 0 + + + C_HAS_AXIS_TDEST + 0 + + + C_HAS_AXIS_TUSER + 1 + + + C_HAS_AXIS_TREADY + 1 + + + C_HAS_AXIS_TLAST + 0 + + + C_HAS_AXIS_TSTRB + 0 + + + C_HAS_AXIS_TKEEP + 0 + + + C_AXIS_TDATA_WIDTH + 8 + + + C_AXIS_TID_WIDTH + 1 + + + C_AXIS_TDEST_WIDTH + 1 + + + C_AXIS_TUSER_WIDTH + 4 + + + C_AXIS_TSTRB_WIDTH + 1 + + + C_AXIS_TKEEP_WIDTH + 1 + + + C_WACH_TYPE + 0 + + + C_WDCH_TYPE + 0 + + + C_WRCH_TYPE + 0 + + + C_RACH_TYPE + 0 + + + C_RDCH_TYPE + 0 + + + C_AXIS_TYPE + 0 + + + C_IMPLEMENTATION_TYPE_WACH + 1 + + + C_IMPLEMENTATION_TYPE_WDCH + 1 + + + C_IMPLEMENTATION_TYPE_WRCH + 1 + + + C_IMPLEMENTATION_TYPE_RACH + 1 + + + C_IMPLEMENTATION_TYPE_RDCH + 1 + + + C_IMPLEMENTATION_TYPE_AXIS + 1 + + + C_APPLICATION_TYPE_WACH + 0 + + + C_APPLICATION_TYPE_WDCH + 0 + + + C_APPLICATION_TYPE_WRCH + 0 + + + C_APPLICATION_TYPE_RACH + 0 + + + C_APPLICATION_TYPE_RDCH + 0 + + + C_APPLICATION_TYPE_AXIS + 0 + + + C_PRIM_FIFO_TYPE_WACH + 512x36 + + + C_PRIM_FIFO_TYPE_WDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_WRCH + 512x36 + + + C_PRIM_FIFO_TYPE_RACH + 512x36 + + + C_PRIM_FIFO_TYPE_RDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_AXIS + 1kx18 + + + C_USE_ECC_WACH + 0 + + + C_USE_ECC_WDCH + 0 + + + C_USE_ECC_WRCH + 0 + + + C_USE_ECC_RACH + 0 + + + C_USE_ECC_RDCH + 0 + + + C_USE_ECC_AXIS + 0 + + + C_ERROR_INJECTION_TYPE_WACH + 0 + + + C_ERROR_INJECTION_TYPE_WDCH + 0 + + + C_ERROR_INJECTION_TYPE_WRCH + 0 + + + C_ERROR_INJECTION_TYPE_RACH + 0 + + + C_ERROR_INJECTION_TYPE_RDCH + 0 + + + C_ERROR_INJECTION_TYPE_AXIS + 0 + + + C_DIN_WIDTH_WACH + 1 + + + C_DIN_WIDTH_WDCH + 64 + + + C_DIN_WIDTH_WRCH + 2 + + + C_DIN_WIDTH_RACH + 32 + + + C_DIN_WIDTH_RDCH + 64 + + + C_DIN_WIDTH_AXIS + 1 + + + C_WR_DEPTH_WACH + 16 + + + C_WR_DEPTH_WDCH + 1024 + + + C_WR_DEPTH_WRCH + 16 + + + C_WR_DEPTH_RACH + 16 + + + C_WR_DEPTH_RDCH + 1024 + + + C_WR_DEPTH_AXIS + 1024 + + + C_WR_PNTR_WIDTH_WACH + 4 + + + C_WR_PNTR_WIDTH_WDCH + 10 + + + C_WR_PNTR_WIDTH_WRCH + 4 + + + C_WR_PNTR_WIDTH_RACH + 4 + + + C_WR_PNTR_WIDTH_RDCH + 10 + + + C_WR_PNTR_WIDTH_AXIS + 10 + + + C_HAS_DATA_COUNTS_WACH + 0 + + + C_HAS_DATA_COUNTS_WDCH + 0 + + + C_HAS_DATA_COUNTS_WRCH + 0 + + + C_HAS_DATA_COUNTS_RACH + 0 + + + C_HAS_DATA_COUNTS_RDCH + 0 + + + C_HAS_DATA_COUNTS_AXIS + 0 + + + C_HAS_PROG_FLAGS_WACH + 0 + + + C_HAS_PROG_FLAGS_WDCH + 0 + + + C_HAS_PROG_FLAGS_WRCH + 0 + + + C_HAS_PROG_FLAGS_RACH + 0 + + + C_HAS_PROG_FLAGS_RDCH + 0 + + + C_HAS_PROG_FLAGS_AXIS + 0 + + + C_PROG_FULL_TYPE_WACH + 0 + + + C_PROG_FULL_TYPE_WDCH + 0 + + + C_PROG_FULL_TYPE_WRCH + 0 + + + C_PROG_FULL_TYPE_RACH + 0 + + + C_PROG_FULL_TYPE_RDCH + 0 + + + C_PROG_FULL_TYPE_AXIS + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WRCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_AXIS + 1023 + + + C_PROG_EMPTY_TYPE_WACH + 0 + + + C_PROG_EMPTY_TYPE_WDCH + 0 + + + C_PROG_EMPTY_TYPE_WRCH + 0 + + + C_PROG_EMPTY_TYPE_RACH + 0 + + + C_PROG_EMPTY_TYPE_RDCH + 0 + + + C_PROG_EMPTY_TYPE_AXIS + 0 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS + 1022 + + + C_REG_SLICE_MODE_WACH + 0 + + + C_REG_SLICE_MODE_WDCH + 0 + + + C_REG_SLICE_MODE_WRCH + 0 + + + C_REG_SLICE_MODE_RACH + 0 + + + C_REG_SLICE_MODE_RDCH + 0 + + + C_REG_SLICE_MODE_AXIS + 0 + + + + + + choice_list_087d29fa + 0 + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_165ed04b + 64 + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_89b1ac3c + 64 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_bf1143fa + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32768 + 65536 + 131072 + + + choice_pairs_0721dec1 + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Multiple_Programmable_Empty_Threshold_Constants + Single_Programmable_Empty_Threshold_Input_Port + Multiple_Programmable_Empty_Threshold_Input_Ports + + + choice_pairs_08e28d5f + Active_High + Active_Low + + + choice_pairs_26bda4ef + Asynchronous_Reset + + + choice_pairs_2d5d8925 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + Common_Clock_Shift_Register + Common_Clock_Builtin_FIFO + Independent_Clocks_Block_RAM + Independent_Clocks_Distributed_RAM + Independent_Clocks_Builtin_FIFO + + + choice_pairs_3c123ec0 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + + + choice_pairs_53eba4dc + Native + AXI_MEMORY_MAPPED + AXI_STREAM + + + choice_pairs_541ed8d9 + Embedded_Reg + Fabric_Reg + Both + + + choice_pairs_5548b404 + Common_Clock + Independent_Clock + + + choice_pairs_5f1451ad + Standard_FIFO + First_Word_Fall_Through + + + choice_pairs_619f3529 + AXI4 + AXI3 + AXI4_Lite + + + choice_pairs_8334cf20 + Data_FIFO + Packet_FIFO + Low_Latency_Data_FIFO + + + choice_pairs_88535724 + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Multiple_Programmable_Full_Threshold_Constants + Single_Programmable_Full_Threshold_Input_Port + Multiple_Programmable_Full_Threshold_Input_Ports + + + choice_pairs_9b232fe1 + Slave_Interface_Clock_Enable + Master_Interface_Clock_Enable + + + choice_pairs_a8c5818a + Fully_Registered + Light_Weight + + + choice_pairs_b3e9d19b + FIFO + Register_Slice + Pass_Through_Wire + + + choice_pairs_bec132cf + FIFO + Register_Slice + + + choice_pairs_c94a1851 + Hard_ECC + Soft_ECC + + + choice_pairs_ccb14e2b + READ_WRITE + READ_ONLY + WRITE_ONLY + + + choice_pairs_eb98f74b + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Single_Programmable_Empty_Threshold_Input_Port + + + choice_pairs_ec2b452f + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Single_Programmable_Full_Threshold_Input_Port + + + The FIFO Generator is a parameterizable first-in/first-out memory queue generator. Use it to generate resource and performance optimized FIFOs with common or independent read/write clock domains, and optional fixed or programmable full and empty flags and handshaking signals. Choose from a selection of memory resource types for implementation. Optional Hamming code based error detection and correction as well as error injection capability for system test help to insure data integrity. FIFO width and depth are parameterizable, and for native interface FIFOs, asymmetric read and write port widths are also supported. + + + Component_Name + afifo_w64 + + + + true + + + + + + Fifo_Implementation + Independent_Clocks_Block_RAM + + + + true + + + + + + synchronization_stages + 2 + + + + true + + + + + + synchronization_stages_axi + 2 + + + + true + + + + + + INTERFACE_TYPE + Native + + + + true + + + + + + Performance_Options + First_Word_Fall_Through + + + + true + + + + + + asymmetric_port_width + false + + + + false + + + + + + Input_Data_Width + 64 + + + + true + + + + + + Input_Depth + 1024 + + + + true + + + + + + Output_Data_Width + 64 + + + + true + + + + + + Output_Depth + 1024 + + + + false + + + + + + Enable_ECC + false + + + + true + + + + + + Use_Embedded_Registers + false + + + + true + + + + + + Reset_Pin + true + + + + true + + + + + + Enable_Reset_Synchronization + true + + + + true + + + + + + Reset_Type + Asynchronous_Reset + + + + false + + + + + + Full_Flags_Reset_Value + 1 + + + + true + + + + + + Use_Dout_Reset + true + + + + true + + + + + + Dout_Reset_Value + 0 + + + + true + + + + + + dynamic_power_saving + false + + + + false + + + + + + Almost_Full_Flag + false + + + + true + + + + + + Almost_Empty_Flag + false + + + + true + + + + + + Valid_Flag + false + + + + true + + + + + + Valid_Sense + Active_High + + + + false + + + + + + Underflow_Flag + false + + + + true + + + + + + Underflow_Sense + Active_High + + + + false + + + + + + Write_Acknowledge_Flag + false + + + + true + + + + + + Write_Acknowledge_Sense + Active_High + + + + false + + + + + + Overflow_Flag + false + + + + true + + + + + + Overflow_Sense + Active_High + + + + false + + + + + + Inject_Sbit_Error + false + + + + false + + + + + + Inject_Dbit_Error + false + + + + false + + + + + + ecc_pipeline_reg + false + + + + false + + + + + + Use_Extra_Logic + false + + + + true + + + + + + Data_Count + false + + + + false + + + + + + Data_Count_Width + 10 + + + + false + + + + + + Write_Data_Count + false + + + + true + + + + + + Write_Data_Count_Width + 10 + + + + false + + + + + + Read_Data_Count + false + + + + true + + + + + + Read_Data_Count_Width + 10 + + + + false + + + + + + Disable_Timing_Violations + false + + + + true + + + + + + Read_Clock_Frequency + 1 + + + + false + + + + + + Write_Clock_Frequency + 1 + + + + false + + + + + + Programmable_Full_Type + No_Programmable_Full_Threshold + + + + true + + + + + + Full_Threshold_Assert_Value + 1023 + + + + false + + + + + + Full_Threshold_Negate_Value + 1022 + + + + false + + + + + + Programmable_Empty_Type + No_Programmable_Empty_Threshold + + + + true + + + + + + Empty_Threshold_Assert_Value + 4 + + + + false + + + + + + Empty_Threshold_Negate_Value + 5 + + + + false + + + + + + PROTOCOL + AXI4 + + + + false + + + + + + Clock_Type_AXI + Common_Clock + + + + true + + + + + + HAS_ACLKEN + false + + + + false + + + + + + Clock_Enable_Type + Slave_Interface_Clock_Enable + + + + false + + + + + + READ_WRITE_MODE + READ_WRITE + + + + true + + + + + + ID_WIDTH + 0 + + + + false + + + + + + ADDRESS_WIDTH + 32 + + + + false + + + + + + DATA_WIDTH + 64 + + + + false + + + + + + AWUSER_Width + 0 + + + + false + + + + + + WUSER_Width + 0 + + + + false + + + + + + BUSER_Width + 0 + + + + false + + + + + + ARUSER_Width + 0 + + + + false + + + + + + RUSER_Width + 0 + + + + false + + + + + + TDATA_NUM_BYTES + 1 + + + + true + + + + + + TID_WIDTH + 0 + + + + false + + + + + + TDEST_WIDTH + 0 + + + + false + + + + + + TUSER_WIDTH + 4 + + + + false + + + + + + Enable_TREADY + true + + + + false + + + + + + Enable_TLAST + false + + + + true + + + + + + HAS_TSTRB + false + + + + false + + + + + + TSTRB_WIDTH + 1 + + + + false + + + + + + HAS_TKEEP + false + + + + false + + + + + + TKEEP_WIDTH + 1 + + + + false + + + + + + wach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wach + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wach + false + + + + false + + + + + + Inject_Sbit_Error_wach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wach + false + + + + false + + + + + + Input_Depth_wach + 16 + + + + true + + + + + + Enable_Data_Counts_wach + false + + + + false + + + + + + Programmable_Full_Type_wach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wdch + false + + + + false + + + + + + Inject_Sbit_Error_wdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wdch + false + + + + false + + + + + + Input_Depth_wdch + 1024 + + + + true + + + + + + Enable_Data_Counts_wdch + false + + + + false + + + + + + Programmable_Full_Type_wdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wrch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wrch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wrch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wrch + false + + + + false + + + + + + Inject_Sbit_Error_wrch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wrch + false + + + + false + + + + + + Input_Depth_wrch + 16 + + + + true + + + + + + Enable_Data_Counts_wrch + false + + + + false + + + + + + Programmable_Full_Type_wrch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wrch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wrch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wrch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rach + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rach + false + + + + false + + + + + + Inject_Sbit_Error_rach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rach + false + + + + false + + + + + + Input_Depth_rach + 16 + + + + true + + + + + + Enable_Data_Counts_rach + false + + + + false + + + + + + Programmable_Full_Type_rach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rdch + false + + + + false + + + + + + Inject_Sbit_Error_rdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rdch + false + + + + false + + + + + + Input_Depth_rdch + 1024 + + + + true + + + + + + Enable_Data_Counts_rdch + false + + + + false + + + + + + Programmable_Full_Type_rdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + axis_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_axis + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_axis + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_axis + false + + + + false + + + + + + Inject_Sbit_Error_axis + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_axis + Double Bit Error Injection + false + + + + false + + + + + + Input_Depth_axis + 1024 + + + + true + + + + + + Enable_Data_Counts_axis + false + + + + false + + + + + + Programmable_Full_Type_axis + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_axis + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_axis + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_axis + Empty Threshold Assert Value + 1022 + + + + false + + + + + + Register_Slice_Mode_wach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wrch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_axis + Register Slice Options + Fully_Registered + + + + true + + + + + + Underflow_Flag_AXI + Underflow Flag + false + + + + true + + + + + + Underflow_Sense_AXI + Underflow (Read Error) + Active_High + + + + true + + + + + + Overflow_Flag_AXI + Overflow Flag + false + + + + true + + + + + + Overflow_Sense_AXI + Overflow (Write Error) + Active_High + + + + true + + + + + + Disable_Timing_Violations_AXI + false + + + + true + + + + + + Add_NGC_Constraint_AXI + false + + + + true + + + + + + Enable_Common_Underflow + false + + + + true + + + + + + Enable_Common_Overflow + false + + + + true + + + + + + enable_read_pointer_increment_by2 + false + + + + true + + + + + + Use_Embedded_Registers_axis + false + + + + false + + + + + + enable_low_latency + false + + + + false + + + + + + use_dout_register + false + + + + false + + + + + + Master_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Slave_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Output_Register_Type + Embedded_Reg + + + + false + + + + + + Enable_Safety_Circuit + false + + + + true + + + + + + Enable_ECC_Type + Hard_ECC + + + + false + + + + + + C_SELECT_XPM + 0 + + + + + FIFO Generator + 4 + + + + + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/common/fpga_bridge/fpga_rcv/xilinx/zc706/ip_cores/afifo_w3/afifo_w3.xci b/piton/design/common/fpga_bridge/fpga_rcv/xilinx/zc706/ip_cores/afifo_w3/afifo_w3.xci new file mode 100644 index 0000000..3192864 --- /dev/null +++ b/piton/design/common/fpga_bridge/fpga_rcv/xilinx/zc706/ip_cores/afifo_w3/afifo_w3.xci @@ -0,0 +1,434 @@ + + + xilinx.com + xci + unknown + 1.0 + + + afifo_w3 + + + 100000000 + 100000000 + 100000000 + 100000000 + 100000000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 1 + 1 + 1 + 1 + 4 + 0 + 32 + 1 + 1 + 1 + 64 + 1 + 8 + 1 + 1 + 1 + 1 + 0 + 0 + 10 + BlankString + 3 + 1 + 32 + 64 + 1 + 64 + 2 + 0 + 3 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + zynq + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + BlankString + 1 + 0 + 0 + 0 + 0 + 1 + 1kx18 + 1kx18 + 512x36 + 1kx36 + 512x36 + 1kx36 + 512x36 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1022 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 10 + 1024 + 1 + 10 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 10 + 1024 + 1024 + 16 + 1024 + 16 + 1024 + 16 + 1 + 10 + 10 + 4 + 10 + 4 + 10 + 4 + 1 + 32 + 0 + 0 + false + false + false + 0 + 0 + Slave_Interface_Clock_Enable + Common_Clock + afifo_w3 + 64 + false + 10 + false + false + 0 + 4 + 1022 + 1022 + 1022 + 1022 + 1022 + 1022 + 5 + false + false + false + false + false + false + false + false + false + Hard_ECC + false + false + false + false + false + false + true + false + false + true + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Data_FIFO + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Common_Clock_Block_RAM + Independent_Clocks_Block_RAM + 1 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1023 + 1022 + false + false + false + 0 + Native + false + false + false + false + false + false + false + false + false + false + false + false + false + false + 3 + 1024 + 1024 + 16 + 1024 + 16 + 1024 + 16 + false + 3 + 1024 + Embedded_Reg + false + false + Active_High + Active_High + AXI4 + First_Word_Fall_Through + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Empty_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + No_Programmable_Full_Threshold + READ_WRITE + 0 + 1 + false + 10 + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + Fully_Registered + true + Asynchronous_Reset + false + 1 + 0 + 0 + 1 + 1 + 4 + false + false + Active_High + Active_High + true + false + false + false + false + Active_High + 0 + false + Active_High + 1 + false + 10 + false + FIFO + false + false + false + false + FIFO + FIFO + 2 + 2 + false + FIFO + FIFO + FIFO + zynq + xilinx.com:zc706:part0:1.4 + xc7z045 + ffg900 + VERILOG + + MIXED + -2 + + TRUE + TRUE + IP_Flow + 4 + TRUE + . + + . + 2017.1 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/common/fpga_bridge/fpga_rcv/xilinx/zc706/ip_cores/afifo_w3/afifo_w3.xml b/piton/design/common/fpga_bridge/fpga_rcv/xilinx/zc706/ip_cores/afifo_w3/afifo_w3.xml new file mode 100644 index 0000000..5028115 --- /dev/null +++ b/piton/design/common/fpga_bridge/fpga_rcv/xilinx/zc706/ip_cores/afifo_w3/afifo_w3.xml @@ -0,0 +1,9715 @@ + + + xilinx.com + customized_ip + afifo_w3 + 1.0 + + + M_AXIS + + + + + + + TDATA + + + m_axis_tdata + + + + + TDEST + + + m_axis_tdest + + + + + TID + + + m_axis_tid + + + + + TKEEP + + + m_axis_tkeep + + + + + TLAST + + + m_axis_tlast + + + + + TREADY + + + m_axis_tready + + + + + TSTRB + + + m_axis_tstrb + + + + + TUSER + + + m_axis_tuser + + + + + TVALID + + + m_axis_tvalid + + + + + + + false + + + + + + S_AXIS + + + + + + + TDATA + + + s_axis_tdata + + + + + TDEST + + + s_axis_tdest + + + + + TID + + + s_axis_tid + + + + + TKEEP + + + s_axis_tkeep + + + + + TLAST + + + s_axis_tlast + + + + + TREADY + + + s_axis_tready + + + + + TSTRB + + + s_axis_tstrb + + + + + TUSER + + + s_axis_tuser + + + + + TVALID + + + s_axis_tvalid + + + + + + + false + + + + + + S_AXI + + + + + + + + + ARADDR + + + s_axi_araddr + + + + + ARBURST + + + s_axi_arburst + + + + + ARCACHE + + + s_axi_arcache + + + + + ARID + + + s_axi_arid + + + + + ARLEN + + + s_axi_arlen + + + + + ARLOCK + + + s_axi_arlock + + + + + ARPROT + + + s_axi_arprot + + + + + ARQOS + + + s_axi_arqos + + + + + ARREADY + + + s_axi_arready + + + + + ARREGION + + + s_axi_arregion + + + + + ARSIZE + + + s_axi_arsize + + + + + ARUSER + + + s_axi_aruser + + + + + ARVALID + + + s_axi_arvalid + + + + + AWADDR + + + s_axi_awaddr + + + + + AWBURST + + + s_axi_awburst + + + + + AWCACHE + + + s_axi_awcache + + + + + AWID + + + s_axi_awid + + + + + AWLEN + + + s_axi_awlen + + + + + AWLOCK + + + s_axi_awlock + + + + + AWPROT + + + s_axi_awprot + + + + + AWQOS + + + s_axi_awqos + + + + + AWREADY + + + s_axi_awready + + + + + AWREGION + + + s_axi_awregion + + + + + AWSIZE + + + s_axi_awsize + + + + + AWUSER + + + s_axi_awuser + + + + + AWVALID + + + s_axi_awvalid + + + + + BID + + + s_axi_bid + + + + + BREADY + + + s_axi_bready + + + + + BRESP + + + s_axi_bresp + + + + + BUSER + + + s_axi_buser + + + + + BVALID + + + s_axi_bvalid + + + + + RDATA + + + s_axi_rdata + + + + + RID + + + s_axi_rid + + + + + RLAST + + + s_axi_rlast + + + + + RREADY + + + s_axi_rready + + + + + RRESP + + + s_axi_rresp + + + + + RUSER + + + s_axi_ruser + + + + + RVALID + + + s_axi_rvalid + + + + + WDATA + + + s_axi_wdata + + + + + WID + + + s_axi_wid + + + + + WLAST + + + s_axi_wlast + + + + + WREADY + + + s_axi_wready + + + + + WSTRB + + + s_axi_wstrb + + + + + WUSER + + + s_axi_wuser + + + + + WVALID + + + s_axi_wvalid + + + + + + BD_ATTRIBUTE.TYPE + INTERIOR + + + + + + false + + + + + + M_AXI + + + + + + + ARADDR + + + m_axi_araddr + + + + + ARBURST + + + m_axi_arburst + + + + + ARCACHE + + + m_axi_arcache + + + + + ARID + + + m_axi_arid + + + + + ARLEN + + + m_axi_arlen + + + + + ARLOCK + + + m_axi_arlock + + + + + ARPROT + + + m_axi_arprot + + + + + ARQOS + + + m_axi_arqos + + + + + ARREADY + + + m_axi_arready + + + + + ARREGION + + + m_axi_arregion + + + + + ARSIZE + + + m_axi_arsize + + + + + ARUSER + + + m_axi_aruser + + + + + ARVALID + + + m_axi_arvalid + + + + + AWADDR + + + m_axi_awaddr + + + + + AWBURST + + + m_axi_awburst + + + + + AWCACHE + + + m_axi_awcache + + + + + AWID + + + m_axi_awid + + + + + AWLEN + + + m_axi_awlen + + + + + AWLOCK + + + m_axi_awlock + + + + + AWPROT + + + m_axi_awprot + + + + + AWQOS + + + m_axi_awqos + + + + + AWREADY + + + m_axi_awready + + + + + AWREGION + + + m_axi_awregion + + + + + AWSIZE + + + m_axi_awsize + + + + + AWUSER + + + m_axi_awuser + + + + + AWVALID + + + m_axi_awvalid + + + + + BID + + + m_axi_bid + + + + + BREADY + + + m_axi_bready + + + + + BRESP + + + m_axi_bresp + + + + + BUSER + + + m_axi_buser + + + + + BVALID + + + m_axi_bvalid + + + + + RDATA + + + m_axi_rdata + + + + + RID + + + m_axi_rid + + + + + RLAST + + + m_axi_rlast + + + + + RREADY + + + m_axi_rready + + + + + RRESP + + + m_axi_rresp + + + + + RUSER + + + m_axi_ruser + + + + + RVALID + + + m_axi_rvalid + + + + + WDATA + + + m_axi_wdata + + + + + WID + + + m_axi_wid + + + + + WLAST + + + m_axi_wlast + + + + + WREADY + + + m_axi_wready + + + + + WSTRB + + + m_axi_wstrb + + + + + WUSER + + + m_axi_wuser + + + + + WVALID + + + m_axi_wvalid + + + + + + + false + + + + + + core_clk + + + + + + + CLK + + + clk + + + + + + FREQ_HZ + clock frequency + specify frequency of the clock connected to port clk + 100000000 + + + + + + false + + + + + + master_aclk + + + + + + + CLK + + + m_aclk + + + + + + ASSOCIATED_BUSIF + M_AXIS:M_AXI + + + FREQ_HZ + m_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + slave_aclk + + + + + + + CLK + + + s_aclk + + + + + + ASSOCIATED_BUSIF + S_AXIS:S_AXI + + + ASSOCIATED_RESET + s_aresetn + + + FREQ_HZ + s_aclk frequency + specify frequency of the clock connected to port m_aclk + 100000000 + + + + + + false + + + + + + write_clk + + + + + + + CLK + + + wr_clk + + + + + + FREQ_HZ + write clock frequency + specify frequency of the clock connected to port wr_clk + 100000000 + + + + + + true + + + + + + read_clk + + + + + + + CLK + + + rd_clk + + + + + + FREQ_HZ + read clock frequency + specify frequency of the clock connected to port rd_clk + 100000000 + + + + + + true + + + + + + slave_aresetn + + + + + + + RST + + + s_aresetn + + + + + + POLARITY + ACTIVE_LOW + + + + + + false + + + + + + FIFO_WRITE + FIFO_WRITE + + + + + + + ALMOST_FULL + + + almost_full + + + + + FULL + + + full + + + + + WR_DATA + + + din + + + + + WR_EN + + + wr_en + + + + + + + true + + + + + + FIFO_READ + FIFO_READ + + + + + + + ALMOST_EMPTY + + + almost_empty + + + + + EMPTY + + + empty + + + + + RD_DATA + + + dout + + + + + RD_EN + + + rd_en + + + + + + + true + + + + + + + + + backup + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + backup_marker + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + srst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + wr_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + wr_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_rst + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + din + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + wr_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + rd_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + true + + + + + + prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_assert + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_empty_thresh_negate + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_assert + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full_thresh_negate + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + int_clk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + sleep + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + dout + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + true + + + + + + full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + true + + + + + + almost_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_ack + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + true + + + + + + almost_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + valid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + rd_data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + wr_data_count + + out + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + prog_full + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + prog_empty + + out + + + std_logic + dummy_view + + + + 0x1 + + + + + + false + + + + + + sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + wr_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + rd_rst_busy + + out + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aresetn + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_aclk_en + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awaddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_awready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_wid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wstrb + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wuser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_wready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_buser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_bvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_bready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awaddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_awvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_awready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wstrb + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wuser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_wvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_wready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_buser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_bready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_arid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_araddr + + in + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlen + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arsize + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arburst + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arlock + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arcache + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arprot + + in + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arqos + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arregion + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_aruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_arready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rdata + + out + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rresp + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_ruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axi_rvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axi_rready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_araddr + + out + + 31 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlen + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arsize + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arburst + + out + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arlock + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arcache + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arprot + + out + + 2 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arqos + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arregion + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_aruser + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_arvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axi_arready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rdata + + in + + 63 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rresp + + in + + 1 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_ruser + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axi_rready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tvalid + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tready + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + s_axis_tdata + + in + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tstrb + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tkeep + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tlast + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tid + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tdest + + in + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + s_axis_tuser + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tvalid + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tready + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdata + + out + + 7 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tstrb + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tkeep + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tlast + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + m_axis_tid + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tdest + + out + + 0 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + m_axis_tuser + + out + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_aw_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_aw_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_w_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_w_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_w_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_b_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_b_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_b_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_ar_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_full_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty_thresh + + in + + 3 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_wr_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_rd_data_count + + out + + 4 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_ar_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_ar_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axi_r_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axi_r_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axi_r_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + axis_injectsbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_injectdbiterr + + in + + + std_logic + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_full_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty_thresh + + in + + 9 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_wr_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_rd_data_count + + out + + 10 + 0 + + + + std_logic_vector + dummy_view + + + + 0 + + + + + + false + + + + + + axis_sbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_dbiterr + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_overflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_underflow + + out + + + std_logic + dummy_view + + + + 0x0 + + + + + + false + + + + + + axis_prog_full + + out + + + STD_LOGIC + dummy_view + + + + 0 + + + + + + false + + + + + + axis_prog_empty + + out + + + STD_LOGIC + dummy_view + + + + 1 + + + + + + false + + + + + + + + C_COMMON_CLOCK + 0 + + + C_SELECT_XPM + 0 + + + C_COUNT_TYPE + 0 + + + C_DATA_COUNT_WIDTH + 10 + + + C_DEFAULT_VALUE + BlankString + + + C_DIN_WIDTH + 3 + + + C_DOUT_RST_VAL + 0 + + + C_DOUT_WIDTH + 3 + + + C_ENABLE_RLOCS + 0 + + + C_FAMILY + zynq + + + C_FULL_FLAGS_RST_VAL + 1 + + + C_HAS_ALMOST_EMPTY + 0 + + + C_HAS_ALMOST_FULL + 0 + + + C_HAS_BACKUP + 0 + + + C_HAS_DATA_COUNT + 0 + + + C_HAS_INT_CLK + 0 + + + C_HAS_MEMINIT_FILE + 0 + + + C_HAS_OVERFLOW + 0 + + + C_HAS_RD_DATA_COUNT + 0 + + + C_HAS_RD_RST + 0 + + + C_HAS_RST + 1 + + + C_HAS_SRST + 0 + + + C_HAS_UNDERFLOW + 0 + + + C_HAS_VALID + 0 + + + C_HAS_WR_ACK + 0 + + + C_HAS_WR_DATA_COUNT + 0 + + + C_HAS_WR_RST + 0 + + + C_IMPLEMENTATION_TYPE + 2 + + + C_INIT_WR_PNTR_VAL + 0 + + + C_MEMORY_TYPE + 1 + + + C_MIF_FILE_NAME + BlankString + + + C_OPTIMIZATION_MODE + 0 + + + C_OVERFLOW_LOW + 0 + + + C_PRELOAD_LATENCY + 0 + + + C_PRELOAD_REGS + 1 + + + C_PRIM_FIFO_TYPE + 1kx18 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL + 4 + + + C_PROG_EMPTY_THRESH_NEGATE_VAL + 5 + + + C_PROG_EMPTY_TYPE + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL + 1023 + + + C_PROG_FULL_THRESH_NEGATE_VAL + 1022 + + + C_PROG_FULL_TYPE + 0 + + + C_RD_DATA_COUNT_WIDTH + 10 + + + C_RD_DEPTH + 1024 + + + C_RD_FREQ + 1 + + + C_RD_PNTR_WIDTH + 10 + + + C_UNDERFLOW_LOW + 0 + + + C_USE_DOUT_RST + 1 + + + C_USE_ECC + 0 + + + C_USE_EMBEDDED_REG + 0 + + + C_USE_PIPELINE_REG + 0 + + + C_POWER_SAVING_MODE + 0 + + + C_USE_FIFO16_FLAGS + 0 + + + C_USE_FWFT_DATA_COUNT + 0 + + + C_VALID_LOW + 0 + + + C_WR_ACK_LOW + 0 + + + C_WR_DATA_COUNT_WIDTH + 10 + + + C_WR_DEPTH + 1024 + + + C_WR_FREQ + 1 + + + C_WR_PNTR_WIDTH + 10 + + + C_WR_RESPONSE_LATENCY + 1 + + + C_MSGON_VAL + 1 + + + C_ENABLE_RST_SYNC + 1 + + + C_EN_SAFETY_CKT + 0 + + + C_ERROR_INJECTION_TYPE + 0 + + + C_SYNCHRONIZER_STAGE + 2 + + + C_INTERFACE_TYPE + 0 + + + C_AXI_TYPE + 1 + + + C_HAS_AXI_WR_CHANNEL + 1 + + + C_HAS_AXI_RD_CHANNEL + 1 + + + C_HAS_SLAVE_CE + 0 + + + C_HAS_MASTER_CE + 0 + + + C_ADD_NGC_CONSTRAINT + 0 + + + C_USE_COMMON_OVERFLOW + 0 + + + C_USE_COMMON_UNDERFLOW + 0 + + + C_USE_DEFAULT_SETTINGS + 0 + + + C_AXI_ID_WIDTH + 1 + + + C_AXI_ADDR_WIDTH + 32 + + + C_AXI_DATA_WIDTH + 64 + + + C_AXI_LEN_WIDTH + 8 + + + C_AXI_LOCK_WIDTH + 1 + + + C_HAS_AXI_ID + 0 + + + C_HAS_AXI_AWUSER + 0 + + + C_HAS_AXI_WUSER + 0 + + + C_HAS_AXI_BUSER + 0 + + + C_HAS_AXI_ARUSER + 0 + + + C_HAS_AXI_RUSER + 0 + + + C_AXI_ARUSER_WIDTH + 1 + + + C_AXI_AWUSER_WIDTH + 1 + + + C_AXI_WUSER_WIDTH + 1 + + + C_AXI_BUSER_WIDTH + 1 + + + C_AXI_RUSER_WIDTH + 1 + + + C_HAS_AXIS_TDATA + 1 + + + C_HAS_AXIS_TID + 0 + + + C_HAS_AXIS_TDEST + 0 + + + C_HAS_AXIS_TUSER + 1 + + + C_HAS_AXIS_TREADY + 1 + + + C_HAS_AXIS_TLAST + 0 + + + C_HAS_AXIS_TSTRB + 0 + + + C_HAS_AXIS_TKEEP + 0 + + + C_AXIS_TDATA_WIDTH + 8 + + + C_AXIS_TID_WIDTH + 1 + + + C_AXIS_TDEST_WIDTH + 1 + + + C_AXIS_TUSER_WIDTH + 4 + + + C_AXIS_TSTRB_WIDTH + 1 + + + C_AXIS_TKEEP_WIDTH + 1 + + + C_WACH_TYPE + 0 + + + C_WDCH_TYPE + 0 + + + C_WRCH_TYPE + 0 + + + C_RACH_TYPE + 0 + + + C_RDCH_TYPE + 0 + + + C_AXIS_TYPE + 0 + + + C_IMPLEMENTATION_TYPE_WACH + 1 + + + C_IMPLEMENTATION_TYPE_WDCH + 1 + + + C_IMPLEMENTATION_TYPE_WRCH + 1 + + + C_IMPLEMENTATION_TYPE_RACH + 1 + + + C_IMPLEMENTATION_TYPE_RDCH + 1 + + + C_IMPLEMENTATION_TYPE_AXIS + 1 + + + C_APPLICATION_TYPE_WACH + 0 + + + C_APPLICATION_TYPE_WDCH + 0 + + + C_APPLICATION_TYPE_WRCH + 0 + + + C_APPLICATION_TYPE_RACH + 0 + + + C_APPLICATION_TYPE_RDCH + 0 + + + C_APPLICATION_TYPE_AXIS + 0 + + + C_PRIM_FIFO_TYPE_WACH + 512x36 + + + C_PRIM_FIFO_TYPE_WDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_WRCH + 512x36 + + + C_PRIM_FIFO_TYPE_RACH + 512x36 + + + C_PRIM_FIFO_TYPE_RDCH + 1kx36 + + + C_PRIM_FIFO_TYPE_AXIS + 1kx18 + + + C_USE_ECC_WACH + 0 + + + C_USE_ECC_WDCH + 0 + + + C_USE_ECC_WRCH + 0 + + + C_USE_ECC_RACH + 0 + + + C_USE_ECC_RDCH + 0 + + + C_USE_ECC_AXIS + 0 + + + C_ERROR_INJECTION_TYPE_WACH + 0 + + + C_ERROR_INJECTION_TYPE_WDCH + 0 + + + C_ERROR_INJECTION_TYPE_WRCH + 0 + + + C_ERROR_INJECTION_TYPE_RACH + 0 + + + C_ERROR_INJECTION_TYPE_RDCH + 0 + + + C_ERROR_INJECTION_TYPE_AXIS + 0 + + + C_DIN_WIDTH_WACH + 1 + + + C_DIN_WIDTH_WDCH + 64 + + + C_DIN_WIDTH_WRCH + 2 + + + C_DIN_WIDTH_RACH + 32 + + + C_DIN_WIDTH_RDCH + 64 + + + C_DIN_WIDTH_AXIS + 1 + + + C_WR_DEPTH_WACH + 16 + + + C_WR_DEPTH_WDCH + 1024 + + + C_WR_DEPTH_WRCH + 16 + + + C_WR_DEPTH_RACH + 16 + + + C_WR_DEPTH_RDCH + 1024 + + + C_WR_DEPTH_AXIS + 1024 + + + C_WR_PNTR_WIDTH_WACH + 4 + + + C_WR_PNTR_WIDTH_WDCH + 10 + + + C_WR_PNTR_WIDTH_WRCH + 4 + + + C_WR_PNTR_WIDTH_RACH + 4 + + + C_WR_PNTR_WIDTH_RDCH + 10 + + + C_WR_PNTR_WIDTH_AXIS + 10 + + + C_HAS_DATA_COUNTS_WACH + 0 + + + C_HAS_DATA_COUNTS_WDCH + 0 + + + C_HAS_DATA_COUNTS_WRCH + 0 + + + C_HAS_DATA_COUNTS_RACH + 0 + + + C_HAS_DATA_COUNTS_RDCH + 0 + + + C_HAS_DATA_COUNTS_AXIS + 0 + + + C_HAS_PROG_FLAGS_WACH + 0 + + + C_HAS_PROG_FLAGS_WDCH + 0 + + + C_HAS_PROG_FLAGS_WRCH + 0 + + + C_HAS_PROG_FLAGS_RACH + 0 + + + C_HAS_PROG_FLAGS_RDCH + 0 + + + C_HAS_PROG_FLAGS_AXIS + 0 + + + C_PROG_FULL_TYPE_WACH + 0 + + + C_PROG_FULL_TYPE_WDCH + 0 + + + C_PROG_FULL_TYPE_WRCH + 0 + + + C_PROG_FULL_TYPE_RACH + 0 + + + C_PROG_FULL_TYPE_RDCH + 0 + + + C_PROG_FULL_TYPE_AXIS + 0 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_WRCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RACH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_RDCH + 1023 + + + C_PROG_FULL_THRESH_ASSERT_VAL_AXIS + 1023 + + + C_PROG_EMPTY_TYPE_WACH + 0 + + + C_PROG_EMPTY_TYPE_WDCH + 0 + + + C_PROG_EMPTY_TYPE_WRCH + 0 + + + C_PROG_EMPTY_TYPE_RACH + 0 + + + C_PROG_EMPTY_TYPE_RDCH + 0 + + + C_PROG_EMPTY_TYPE_AXIS + 0 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_WRCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RACH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_RDCH + 1022 + + + C_PROG_EMPTY_THRESH_ASSERT_VAL_AXIS + 1022 + + + C_REG_SLICE_MODE_WACH + 0 + + + C_REG_SLICE_MODE_WDCH + 0 + + + C_REG_SLICE_MODE_WRCH + 0 + + + C_REG_SLICE_MODE_RACH + 0 + + + C_REG_SLICE_MODE_RDCH + 0 + + + C_REG_SLICE_MODE_AXIS + 0 + + + + + + choice_list_087d29fa + 0 + 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + + + choice_list_165ed04b + 64 + + + choice_list_6727dfa6 + 1 + 0 + + + choice_list_8af5a703 + 0 + 1 + + + choice_list_a6576f6b + 3 + 3 + 6 + 12 + 24 + + + choice_list_bf1143fa + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 + 8192 + 16384 + 32768 + 65536 + 131072 + + + choice_pairs_0721dec1 + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Multiple_Programmable_Empty_Threshold_Constants + Single_Programmable_Empty_Threshold_Input_Port + Multiple_Programmable_Empty_Threshold_Input_Ports + + + choice_pairs_08e28d5f + Active_High + Active_Low + + + choice_pairs_26bda4ef + Asynchronous_Reset + + + choice_pairs_2d5d8925 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + Common_Clock_Shift_Register + Common_Clock_Builtin_FIFO + Independent_Clocks_Block_RAM + Independent_Clocks_Distributed_RAM + Independent_Clocks_Builtin_FIFO + + + choice_pairs_3c123ec0 + Common_Clock_Block_RAM + Common_Clock_Distributed_RAM + + + choice_pairs_53eba4dc + Native + AXI_MEMORY_MAPPED + AXI_STREAM + + + choice_pairs_541ed8d9 + Embedded_Reg + Fabric_Reg + Both + + + choice_pairs_5548b404 + Common_Clock + Independent_Clock + + + choice_pairs_5f1451ad + Standard_FIFO + First_Word_Fall_Through + + + choice_pairs_619f3529 + AXI4 + AXI3 + AXI4_Lite + + + choice_pairs_8334cf20 + Data_FIFO + Packet_FIFO + Low_Latency_Data_FIFO + + + choice_pairs_88535724 + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Multiple_Programmable_Full_Threshold_Constants + Single_Programmable_Full_Threshold_Input_Port + Multiple_Programmable_Full_Threshold_Input_Ports + + + choice_pairs_9b232fe1 + Slave_Interface_Clock_Enable + Master_Interface_Clock_Enable + + + choice_pairs_a8c5818a + Fully_Registered + Light_Weight + + + choice_pairs_b3e9d19b + FIFO + Register_Slice + Pass_Through_Wire + + + choice_pairs_bec132cf + FIFO + Register_Slice + + + choice_pairs_c94a1851 + Hard_ECC + Soft_ECC + + + choice_pairs_ccb14e2b + READ_WRITE + READ_ONLY + WRITE_ONLY + + + choice_pairs_eb98f74b + No_Programmable_Empty_Threshold + Single_Programmable_Empty_Threshold_Constant + Single_Programmable_Empty_Threshold_Input_Port + + + choice_pairs_ec2b452f + No_Programmable_Full_Threshold + Single_Programmable_Full_Threshold_Constant + Single_Programmable_Full_Threshold_Input_Port + + + The FIFO Generator is a parameterizable first-in/first-out memory queue generator. Use it to generate resource and performance optimized FIFOs with common or independent read/write clock domains, and optional fixed or programmable full and empty flags and handshaking signals. Choose from a selection of memory resource types for implementation. Optional Hamming code based error detection and correction as well as error injection capability for system test help to insure data integrity. FIFO width and depth are parameterizable, and for native interface FIFOs, asymmetric read and write port widths are also supported. + + + Component_Name + afifo_w3 + + + + true + + + + + + Fifo_Implementation + Independent_Clocks_Block_RAM + + + + true + + + + + + synchronization_stages + 2 + + + + true + + + + + + synchronization_stages_axi + 2 + + + + true + + + + + + INTERFACE_TYPE + Native + + + + true + + + + + + Performance_Options + First_Word_Fall_Through + + + + true + + + + + + asymmetric_port_width + false + + + + false + + + + + + Input_Data_Width + 3 + + + + true + + + + + + Input_Depth + 1024 + + + + true + + + + + + Output_Data_Width + 3 + + + + true + + + + + + Output_Depth + 1024 + + + + false + + + + + + Enable_ECC + false + + + + true + + + + + + Use_Embedded_Registers + false + + + + true + + + + + + Reset_Pin + true + + + + true + + + + + + Enable_Reset_Synchronization + true + + + + true + + + + + + Reset_Type + Asynchronous_Reset + + + + false + + + + + + Full_Flags_Reset_Value + 1 + + + + true + + + + + + Use_Dout_Reset + true + + + + true + + + + + + Dout_Reset_Value + 0 + + + + true + + + + + + dynamic_power_saving + false + + + + false + + + + + + Almost_Full_Flag + false + + + + true + + + + + + Almost_Empty_Flag + false + + + + true + + + + + + Valid_Flag + false + + + + true + + + + + + Valid_Sense + Active_High + + + + false + + + + + + Underflow_Flag + false + + + + true + + + + + + Underflow_Sense + Active_High + + + + false + + + + + + Write_Acknowledge_Flag + false + + + + true + + + + + + Write_Acknowledge_Sense + Active_High + + + + false + + + + + + Overflow_Flag + false + + + + true + + + + + + Overflow_Sense + Active_High + + + + false + + + + + + Inject_Sbit_Error + false + + + + false + + + + + + Inject_Dbit_Error + false + + + + false + + + + + + ecc_pipeline_reg + false + + + + false + + + + + + Use_Extra_Logic + false + + + + true + + + + + + Data_Count + false + + + + false + + + + + + Data_Count_Width + 10 + + + + false + + + + + + Write_Data_Count + false + + + + true + + + + + + Write_Data_Count_Width + 10 + + + + false + + + + + + Read_Data_Count + false + + + + true + + + + + + Read_Data_Count_Width + 10 + + + + false + + + + + + Disable_Timing_Violations + false + + + + true + + + + + + Read_Clock_Frequency + 1 + + + + false + + + + + + Write_Clock_Frequency + 1 + + + + false + + + + + + Programmable_Full_Type + No_Programmable_Full_Threshold + + + + true + + + + + + Full_Threshold_Assert_Value + 1023 + + + + false + + + + + + Full_Threshold_Negate_Value + 1022 + + + + false + + + + + + Programmable_Empty_Type + No_Programmable_Empty_Threshold + + + + true + + + + + + Empty_Threshold_Assert_Value + 4 + + + + false + + + + + + Empty_Threshold_Negate_Value + 5 + + + + false + + + + + + PROTOCOL + AXI4 + + + + false + + + + + + Clock_Type_AXI + Common_Clock + + + + true + + + + + + HAS_ACLKEN + false + + + + false + + + + + + Clock_Enable_Type + Slave_Interface_Clock_Enable + + + + false + + + + + + READ_WRITE_MODE + READ_WRITE + + + + true + + + + + + ID_WIDTH + 0 + + + + false + + + + + + ADDRESS_WIDTH + 32 + + + + false + + + + + + DATA_WIDTH + 64 + + + + false + + + + + + AWUSER_Width + 0 + + + + false + + + + + + WUSER_Width + 0 + + + + false + + + + + + BUSER_Width + 0 + + + + false + + + + + + ARUSER_Width + 0 + + + + false + + + + + + RUSER_Width + 0 + + + + false + + + + + + TDATA_NUM_BYTES + 1 + + + + true + + + + + + TID_WIDTH + 0 + + + + false + + + + + + TDEST_WIDTH + 0 + + + + false + + + + + + TUSER_WIDTH + 4 + + + + false + + + + + + Enable_TREADY + true + + + + false + + + + + + Enable_TLAST + false + + + + true + + + + + + HAS_TSTRB + false + + + + false + + + + + + TSTRB_WIDTH + 1 + + + + false + + + + + + HAS_TKEEP + false + + + + false + + + + + + TKEEP_WIDTH + 1 + + + + false + + + + + + wach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wach + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wach + false + + + + false + + + + + + Inject_Sbit_Error_wach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wach + false + + + + false + + + + + + Input_Depth_wach + 16 + + + + true + + + + + + Enable_Data_Counts_wach + false + + + + false + + + + + + Programmable_Full_Type_wach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wdch + false + + + + false + + + + + + Inject_Sbit_Error_wdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wdch + false + + + + false + + + + + + Input_Depth_wdch + 1024 + + + + true + + + + + + Enable_Data_Counts_wdch + false + + + + false + + + + + + Programmable_Full_Type_wdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + wrch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_wrch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_wrch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_wrch + false + + + + false + + + + + + Inject_Sbit_Error_wrch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_wrch + false + + + + false + + + + + + Input_Depth_wrch + 16 + + + + true + + + + + + Enable_Data_Counts_wrch + false + + + + false + + + + + + Programmable_Full_Type_wrch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_wrch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_wrch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_wrch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rach_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rach + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rach + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rach + false + + + + false + + + + + + Inject_Sbit_Error_rach + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rach + false + + + + false + + + + + + Input_Depth_rach + 16 + + + + true + + + + + + Enable_Data_Counts_rach + false + + + + false + + + + + + Programmable_Full_Type_rach + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rach + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rach + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rach + Empty Threshold Assert Value + 1022 + + + + false + + + + + + rdch_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_rdch + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_rdch + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_rdch + false + + + + false + + + + + + Inject_Sbit_Error_rdch + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_rdch + false + + + + false + + + + + + Input_Depth_rdch + 1024 + + + + true + + + + + + Enable_Data_Counts_rdch + false + + + + false + + + + + + Programmable_Full_Type_rdch + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_rdch + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_rdch + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_rdch + Empty Threshold Assert Value + 1022 + + + + false + + + + + + axis_type + Configuration Options + FIFO + + + + true + + + + + + FIFO_Implementation_axis + FIFO Implementation Type + Common_Clock_Block_RAM + + + + true + + + + + + FIFO_Application_Type_axis + FIFO Application Type + Data_FIFO + + + + false + + + + + + Enable_ECC_axis + false + + + + false + + + + + + Inject_Sbit_Error_axis + Single Bit Error Injection + false + + + + false + + + + + + Inject_Dbit_Error_axis + Double Bit Error Injection + false + + + + false + + + + + + Input_Depth_axis + 1024 + + + + true + + + + + + Enable_Data_Counts_axis + false + + + + false + + + + + + Programmable_Full_Type_axis + Deassert READY When + No_Programmable_Full_Threshold + + + + false + + + + + + Full_Threshold_Assert_Value_axis + Full Threshold Assert Value + 1023 + + + + false + + + + + + Programmable_Empty_Type_axis + Deassert VALID When + No_Programmable_Empty_Threshold + + + + false + + + + + + Empty_Threshold_Assert_Value_axis + Empty Threshold Assert Value + 1022 + + + + false + + + + + + Register_Slice_Mode_wach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_wrch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rach + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_rdch + Register Slice Options + Fully_Registered + + + + true + + + + + + Register_Slice_Mode_axis + Register Slice Options + Fully_Registered + + + + true + + + + + + Underflow_Flag_AXI + Underflow Flag + false + + + + true + + + + + + Underflow_Sense_AXI + Underflow (Read Error) + Active_High + + + + true + + + + + + Overflow_Flag_AXI + Overflow Flag + false + + + + true + + + + + + Overflow_Sense_AXI + Overflow (Write Error) + Active_High + + + + true + + + + + + Disable_Timing_Violations_AXI + false + + + + true + + + + + + Add_NGC_Constraint_AXI + false + + + + true + + + + + + Enable_Common_Underflow + false + + + + true + + + + + + Enable_Common_Overflow + false + + + + true + + + + + + enable_read_pointer_increment_by2 + false + + + + true + + + + + + Use_Embedded_Registers_axis + false + + + + false + + + + + + enable_low_latency + false + + + + false + + + + + + use_dout_register + false + + + + false + + + + + + Master_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Slave_interface_Clock_enable_memory_mapped + false + + + + false + + + + + + Output_Register_Type + Embedded_Reg + + + + false + + + + + + Enable_Safety_Circuit + false + + + + true + + + + + + Enable_ECC_Type + Hard_ECC + + + + false + + + + + + C_SELECT_XPM + 0 + + + + + FIFO Generator + 4 + + + + + + + + + + + + + + + + + + + + + + + + 2017.1 + + + + + + + + diff --git a/piton/design/fpga_tests/memio_unit_tests/common/xilinx/zc706/ip_cores/clk_mmcm_memio_unit_tests/clk_mmcm_memio_unit_tests.xci b/piton/design/fpga_tests/memio_unit_tests/common/xilinx/zc706/ip_cores/clk_mmcm_memio_unit_tests/clk_mmcm_memio_unit_tests.xci new file mode 100644 index 0000000..64b6578 --- /dev/null +++ b/piton/design/fpga_tests/memio_unit_tests/common/xilinx/zc706/ip_cores/clk_mmcm_memio_unit_tests/clk_mmcm_memio_unit_tests.xci @@ -0,0 +1,531 @@ + + + xilinx.com + xci + unknown + 1.0 + + + clk_mmcm_memio_unit_tests + + + cddcdone + cddcreq + clkfb_in_n + clkfb_in + clkfb_in_p + SINGLE + clkfb_out_n + clkfb_out + clkfb_out_p + clkfb_stopped + 50.0 + 100.0 + BUFG + 50.0 + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + BUFG + 50.0 + 200.000 + 0.000 + 50.000 + 200.000 + 0.000 + 1 + 1 + BUFG + 50.0 + 20.000 + 0.000 + 50.000 + 20.000 + 0.000 + 1 + 1 + BUFG + 50.000 + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + BUFG + 50.000 + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + BUFG + 50.000 + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + BUFG + 50.000 + 100.000 + 0.000 + 50.000 + 100.000 + 0.000 + 1 + 0 + VCO + clk_in_sel + test_sys_clk + mc_sys_clk + spi_sys_clk + clk_out4 + clk_out5 + clk_out6 + clk_out7 + CLK_VALID + NA + daddr + dclk + den + din + dout + drdy + dwe + 0 + FDBK_AUTO + 0 + Input Clock Freq (MHz) Input Jitter (UI) + __primary_________200.000____________0.010 + no_secondary_input_clock + input_clk_stopped + 0 + Units_MHz + No_Jitter + locked + OPTIMIZED + 5.000 + 0.000 + FALSE + 5.0 + 10.0 + 10.000 + 0.500 + 0.000 + FALSE + 5 + 0.500 + 0.000 + FALSE + 50 + 0.500 + 0.000 + FALSE + 1 + 0.500 + 0.000 + FALSE + FALSE + 1 + 0.500 + 0.000 + FALSE + 1 + 0.500 + 0.000 + FALSE + 1 + 0.500 + 0.000 + FALSE + FALSE + ZHOLD + 1 + None + 0.010 + 0.010 + FALSE + 3 + Output Output Phase Duty Cycle Pk-to-Pk Phase + Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) + CLK_OUT1___100.000______0.000______50.0______112.316_____89.971 + CLK_OUT2___200.000______0.000______50.0_______98.146_____89.971 + CLK_OUT3____20.000______0.000______50.0______155.330_____89.971 + no_CLK_OUT4_output + no_CLK_OUT5_output + no_CLK_OUT6_output + no_CLK_OUT7_output + 0 + 0 + UNKNOWN + OPTIMIZED + 1 + 0.000 + 1.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + CLKFBOUT + SYSTEM_SYNCHRONOUS + 1 + No notes + 0.010 + power_down + clk_in1 + MMCM + AUTO + 200.000 + 0.010 + 10.000 + Differential_clock_capable_pin + psclk + psdone + psen + psincdec + 0 + reset + 100.000 + 0.010 + 10.000 + clk_in2 + Single_ended_clock_capable_pin + CENTER_HIGH + 4000 + 0.004 + STATUS + 11 + 32 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + clk_mmcm_memio_unit_tests + empty + cddcdone + cddcreq + clkfb_in_n + clkfb_in + clkfb_in_p + SINGLE + clkfb_out_n + clkfb_out + clkfb_out_p + clkfb_stopped + 50.0 + 0.010 + 100.0 + 0.010 + BUFG + 112.316 + 89.971 + 50.000 + 100.000 + 0.000 + 1 + true + BUFG + 98.146 + 89.971 + 50.000 + 200.000 + 0.000 + 1 + true + BUFG + 155.330 + 89.971 + 50.000 + 20.000 + 0.000 + 1 + true + BUFG + 0.0 + 0.0 + 50.000 + 100.000 + 0.000 + 1 + false + BUFG + 0.0 + 0.0 + 50.000 + 100.000 + 0.000 + 1 + false + BUFG + 0.0 + 0.0 + 50.000 + 100.000 + 0.000 + 1 + false + BUFG + 0.0 + 0.0 + 50.000 + 100.000 + 0.000 + 1 + false + 600.000 + Custom + Custom + clk_in_sel + test_sys_clk + false + mc_sys_clk + false + spi_sys_clk + false + clk_out4 + false + clk_out5 + false + clk_out6 + false + clk_out7 + false + CLK_VALID + auto + clk_mmcm_memio_unit_tests + daddr + dclk + den + Custom + Custom + din + dout + drdy + dwe + false + false + FDBK_AUTO + input_clk_stopped + frequency + Enable_AXI + Units_MHz + Units_UI + UI + No_Jitter + locked + OPTIMIZED + 5.000 + 0.000 + false + 5.0 + 10.0 + 10.000 + 0.500 + 0.000 + false + 5 + 0.500 + 0.000 + false + 50 + 0.500 + 0.000 + false + 1 + 0.500 + 0.000 + false + false + 1 + 0.500 + 0.000 + false + 1 + 0.500 + 0.000 + false + 1 + 0.500 + 0.000 + false + false + ZHOLD + 1 + None + 0.010 + 0.010 + false + 3 + false + false + false + UNKNOWN + OPTIMIZED + 4 + 0.000 + 10.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + 1 + 0.500 + 0.000 + CLKFBOUT + SYSTEM_SYNCHRONOUS + 1 + None + 0.010 + power_down + clk_in1 + MMCM + mmcm_adv + 200.000 + 0.010 + 10.000 + Differential_clock_capable_pin + psclk + psdone + psen + psincdec + REL_PRIMARY + Custom + reset + ACTIVE_HIGH + 100.000 + 0.010 + 10.000 + clk_in2 + Single_ended_clock_capable_pin + CENTER_HIGH + 250 + 0.004 + STATUS + empty + false + false + false + false + false + false + false + true + false + false + true + false + false + false + true + false + true + false + false + false + kintex7 + + xc7k325t + ffg900 + VERILOG + + MIXED + -2 + C + TRUE + TRUE + IP_Flow + 1 + TRUE + . + + . + 2015.4 + OUT_OF_CONTEXT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/piton/design/fpga_tests/memio_unit_tests/memctrl_test/rtl/memctrl_test.v b/piton/design/fpga_tests/memio_unit_tests/memctrl_test/rtl/memctrl_test.v index 27bb9d0..e8418cc 100644 --- a/piton/design/fpga_tests/memio_unit_tests/memctrl_test/rtl/memctrl_test.v +++ b/piton/design/fpga_tests/memio_unit_tests/memctrl_test/rtl/memctrl_test.v @@ -1,6 +1,6 @@ // Copyright (c) 2015 Princeton University // All rights reserved. -// +// // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // * Redistributions of source code must retain the above copyright @@ -11,7 +11,7 @@ // * Neither the name of Princeton University nor the // names of its contributors may be used to endorse or promote products // derived from this software without specific prior written permission. -// +// // THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -70,7 +70,7 @@ module memctrl_test( `endif // endif PITON_CHIPSET_DIFF_CLK `else // ifdef PITON_MEMCTRL_TEST_SIM_CLKS input test_sys_clk, - input mc_sys_clk, + input mc_sys_clk, `endif input rst_n, @@ -109,6 +109,9 @@ parameter MEMSIZE_BYTES_LOG2 = 10; `elsif GENESYS2_BOARD parameter MEMSIZE_BYTES = 1073741824; parameter MEMSIZE_BYTES_LOG2 = 30; +`elsif ZC706_BOARD +parameter MEMSIZE_BYTES = 1073741824; +parameter MEMSIZE_BYTES_LOG2 = 30; `endif // SW values @@ -281,7 +284,7 @@ begin case (sw[TEST_MODE_BITS_HI:TEST_MODE_BITS_LO]) TEST_SEQ_WALKING_ONES: begin - test_mode_en = 5'd1; + test_mode_en = 5'd1; test_seq_en = 1'b1; test_par_en = 1'b0; end @@ -309,7 +312,7 @@ begin test_seq_en = 1'b0; test_par_en = 1'b1; end - default: + default: begin test_mode_en = 4'd0; test_seq_en = 1'b0; @@ -329,7 +332,7 @@ begin test_running = seq_test_running; test_done = seq_test_done; test_timeout = seq_test_timeout; - test_passed = seq_test_passed; + test_passed = seq_test_passed; end else if (test_par_en) begin @@ -420,7 +423,7 @@ mem_test_seq_driver mem_test_seq_driver ( .en(test_seq_en), .test_mode_en(test_mode_en[2:0]), - + .addr_mode(sw[ADDRESSING_MODE_BITS_HI:ADDRESSING_MODE_BITS_LO]), .addr_incr_val(addr_incr_val), .data_payload_flits(data_payload_flits), diff --git a/piton/design/include/piton_system.vh b/piton/design/include/piton_system.vh index 4f7d1ae..da73759 100644 --- a/piton/design/include/piton_system.vh +++ b/piton/design/include/piton_system.vh @@ -11,7 +11,7 @@ // * Neither the name of Princeton University nor the // names of its contributors may be used to endorse or promote products // derived from this software without specific prior written permission. -// +// // THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -101,7 +101,7 @@ `define PITONSYS_UART `endif // PITON_BOARD_CHIPSET -// If we are synthesizing the chip +// If we are synthesizing the chip // only for FPGA, we need to use these // macros `ifdef PITON_CHIP_FPGA @@ -118,6 +118,8 @@ `define PITON_CHIPSET_DIFF_CLK `elsif GENESYS2_BOARD `define PITON_CHIPSET_DIFF_CLK +`elsif ZC706_BOARD + `define PITON_CHIPSET_DIFF_CLK `elsif PITON_BOARD `define PITON_CHIPSET_DIFF_CLK `define PITON_CHIPSET_DIFF_CLK_POLARITY_CAPS @@ -130,6 +132,11 @@ `define PITON_FPGA_RST_ACT_HIGH `endif // endif VC707 board +// Reset is active high on ZC706 +`ifdef ZC706_BOARD + `define PITON_FPGA_RST_ACT_HIGH +`endif // endif VC707 board + // If PITON_FPGA_SD_BOOT is set we should always include SPI `ifdef PITON_FPGA_SD_BOOT `define PITONSYS_SPI diff --git a/piton/design/xilinx/zc706/constraints.xdc b/piton/design/xilinx/zc706/constraints.xdc new file mode 100644 index 0000000..aa06519 --- /dev/null +++ b/piton/design/xilinx/zc706/constraints.xdc @@ -0,0 +1,256 @@ +# Copyright (c) 2016 Princeton University +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Princeton University nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL PRINCETON UNIVERSITY BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Set DCI_CASCADE +set_property slave_banks {34} [get_iobanks 33] + +# Clock signals +#set_property IOSTANDARD LVDS [get_ports chipset_clk_osc_p] +#set_property PACKAGE_PIN AD12 [get_ports chipset_clk_osc_p] +# SYSCLK_P +set_property PACKAGE_PIN H9 [get_ports chipset_clk_osc_p] +set_property IOSTANDARD LVDS [get_ports chipset_clk_osc_p] + +#set_property PACKAGE_PIN AD11 [get_ports chipset_clk_osc_n] +#set_property IOSTANDARD LVDS [get_ports chipset_clk_osc_n] +# SYSCLK_N +set_property PACKAGE_PIN G9 [get_ports chipset_clk_osc_n] +set_property IOSTANDARD LVDS [get_ports chipset_clk_osc_n] + +set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets chipset/clk_mmcm/inst/clk_in1_clk_mmcm] + + + +# Reset +#set_property IOSTANDARD LVCMOS33 [get_ports sys_rst_n] +#set_property PACKAGE_PIN R19 [get_ports sys_rst_n] +## PL_CPU_RESET +#set_property PACKAGE_PIN A8 [get_ports sys_rst_n] +#set_property IOSTANDARD LVCMOS15 [get_ports sys_rst_n] +# GPIO_SW_LEFT +set_property PACKAGE_PIN AK25 [get_ports sys_rst_n] +set_property IOSTANDARD LVCMOS25 [get_ports sys_rst_n] + + +# False paths +set_false_path -to [get_cells -hierarchical *afifo_ui_rst_r*] +set_false_path -to [get_cells -hierarchical *ui_clk_sync_rst_r*] +set_false_path -to [get_cells -hierarchical *ui_clk_syn_rst_delayed*] +set_false_path -to [get_cells -hierarchical *init_calib_complete_f*] +set_false_path -from [get_clocks chipset_clk_clk_mmcm] -to [get_clocks net_axi_clk_clk_mmcm] + + +#### UART +#IO_L11N_T1_SRCC_35 Sch=uart_rxd_out +#set_property IOSTANDARD LVCMOS33 [get_ports uart_rx] +#set_property PACKAGE_PIN Y20 [get_ports uart_rx] +#set_property IOSTANDARD LVCMOS33 [get_ports uart_tx] +#set_property PACKAGE_PIN Y23 [get_ports uart_tx] +# PMOD1_6_LS +set_property PACKAGE_PIN AC18 [get_ports uart_rx] +set_property IOSTANDARD LVCMOS25 [get_ports uart_rx] +# PMOD1_7_LS +set_property PACKAGE_PIN AC19 [get_ports uart_tx] +set_property IOSTANDARD LVCMOS25 [get_ports uart_tx] + +# Switches +#set_property IOSTANDARD LVCMOS33 [get_ports {sw[7]}] +#set_property PACKAGE_PIN P27 [get_ports {sw[7]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {sw[6]}] +#set_property PACKAGE_PIN P26 [get_ports {sw[6]}] +#set_property IOSTANDARD LVCMOS12 [get_ports {sw[5]}] +#set_property PACKAGE_PIN P19 [get_ports {sw[5]}] +#set_property IOSTANDARD LVCMOS12 [get_ports {sw[4]}] +#set_property PACKAGE_PIN N19 [get_ports {sw[4]}] +#set_property IOSTANDARD LVCMOS12 [get_ports {sw[3]}] +#set_property PACKAGE_PIN K19 [get_ports {sw[3]}] +#set_property IOSTANDARD LVCMOS12 [get_ports {sw[2]}] +#set_property PACKAGE_PIN H24 [get_ports {sw[2]}] +#set_property IOSTANDARD LVCMOS12 [get_ports {sw[1]}] +#set_property PACKAGE_PIN G25 [get_ports {sw[1]}] +#set_property IOSTANDARD LVCMOS12 [get_ports {sw[0]}] +#set_property PACKAGE_PIN G19 [get_ports {sw[0]}] +# GPIO_DIP_SW2 +set_property PACKAGE_PIN AC17 [get_ports {sw[6]}] +set_property IOSTANDARD LVCMOS25 [get_ports {sw[6]}] +# GPIO_DIP_SW3 +set_property PACKAGE_PIN AJ13 [get_ports {sw[7]}] +set_property IOSTANDARD LVCMOS25 [get_ports {sw[7]}] + +# Loopback control for UART +#set_property IOSTANDARD LVCMOS12 [get_ports uart_lb_sw] +#set_property PACKAGE_PIN G19 [get_ports uart_lb_sw] + +# Soft reset +#set_property IOSTANDARD LVCMOS12 [get_ports pin_soft_rst] +#set_property PACKAGE_PIN E18 [get_ports pin_soft_rst] + +# SD +#set_property IOSTANDARD LVCMOS33 [get_ports spi_clk_out] +#set_property PACKAGE_PIN R28 [get_ports spi_clk_out] +#set_property IOSTANDARD LVCMOS33 [get_ports spi_data_in] +#set_property PACKAGE_PIN R26 [get_ports spi_data_in] +#set_property IOSTANDARD LVCMOS33 [get_ports spi_data_out] +#set_property PACKAGE_PIN R29 [get_ports spi_data_out] +#set_property IOSTANDARD LVCMOS33 [get_ports spi_cs_n] +#set_property PACKAGE_PIN T30 [get_ports spi_cs_n] +# PMOD1_0_LS, CS +set_property PACKAGE_PIN AJ21 [get_ports spi_cs_n] +set_property IOSTANDARD LVCMOS25 [get_ports spi_cs_n] +# PMOD1_1_LS, MOSI +set_property PACKAGE_PIN AK21 [get_ports spi_data_out] +set_property IOSTANDARD LVCMOS25 [get_ports spi_data_out] +# PMOD1_2_LS, SCK +set_property PACKAGE_PIN AB21 [get_ports spi_clk_out] +set_property IOSTANDARD LVCMOS25 [get_ports spi_clk_out] +# PMOD1_3_LS, MISO +set_property PACKAGE_PIN AB16 [get_ports spi_data_in] +set_property IOSTANDARD LVCMOS25 [get_ports spi_data_in] + +## LEDs + +#set_property PACKAGE_PIN T28 [get_ports {leds[0]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {leds[0]}] +#set_property PACKAGE_PIN V19 [get_ports {leds[1]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {leds[1]}] +#set_property PACKAGE_PIN U30 [get_ports {leds[2]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {leds[2]}] +#set_property PACKAGE_PIN U29 [get_ports {leds[3]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {leds[3]}] +#set_property PACKAGE_PIN V20 [get_ports {leds[4]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {leds[4]}] +#set_property PACKAGE_PIN V26 [get_ports {leds[5]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {leds[5]}] +#set_property PACKAGE_PIN W24 [get_ports {leds[6]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {leds[6]}] +#set_property PACKAGE_PIN W23 [get_ports {leds[7]}] +#set_property IOSTANDARD LVCMOS33 [get_ports {leds[7]}] +set_property PACKAGE_PIN Y21 [get_ports {leds[0]}] +set_property IOSTANDARD LVCMOS25 [get_ports {leds[0]}] +set_property PACKAGE_PIN G2 [get_ports {leds[1]}] +set_property IOSTANDARD LVCMOS15 [get_ports {leds[1]}] +set_property PACKAGE_PIN W21 [get_ports {leds[2]}] +set_property IOSTANDARD LVCMOS25 [get_ports {leds[2]}] +set_property PACKAGE_PIN A17 [get_ports {leds[3]}] +set_property IOSTANDARD LVCMOS15 [get_ports {leds[3]}] + +## OLED +#set_property -dict {PACKAGE_PIN AC17 IOSTANDARD LVCMOS18} [get_ports oled_dc] +#set_property -dict {PACKAGE_PIN AB17 IOSTANDARD LVCMOS18} [get_ports oled_rst_n] +#set_property -dict {PACKAGE_PIN AF17 IOSTANDARD LVCMOS18} [get_ports oled_sclk] +#set_property -dict {PACKAGE_PIN Y15 IOSTANDARD LVCMOS18} [get_ports oled_data] +#set_property -dict {PACKAGE_PIN AB22 IOSTANDARD LVCMOS33} [get_ports oled_vbat_n] +#set_property -dict {PACKAGE_PIN AG17 IOSTANDARD LVCMOS18} [get_ports oled_vdd_n] + +## Buttons +#set_property PACKAGE_PIN M20 [get_ports btnl] +#set_property IOSTANDARD LVCMOS12 [get_ports btnl] +#set_property PACKAGE_PIN C19 [get_ports btnr] +#set_property IOSTANDARD LVCMOS12 [get_ports btnr] +#set_property PACKAGE_PIN M19 [get_ports btnd] +#set_property IOSTANDARD LVCMOS12 [get_ports btnd] +#set_property PACKAGE_PIN B19 [get_ports btnu] +#set_property IOSTANDARD LVCMOS12 [get_ports btnu] +## GPIO_SW_LEFT +#set_property PACKAGE_PIN AK25 [get_ports btnl] +#set_property IOSTANDARD LVCMOS25 [get_ports btnl] +## GPIO_SW_RIGHT +#set_property PACKAGE_PIN R27 [get_ports btnr] +#set_property IOSTANDARD LVCMOS25 [get_ports btnr] +## GPIO_SW_CENTER +#set_property PACKAGE_PIN K15 [get_ports btnd] +#set_property IOSTANDARD LVCMOS15 [get_ports btnd] +## GPIO_DIP_SW0 +#set_property PACKAGE_PIN AB17 [get_ports btnu] +#set_property IOSTANDARD LVCMOS25 [get_ports btnu] + +## Ethernet + +## NOTUSED? set_property PACKAGE_PIN AK16 [get_ports net_ip2intc_irpt] +## NOTUSED? set_property IOSTANDARD LVCMOS18 [get_ports net_ip2intc_irpt] +## NOTUSED? set_property PULLUP true [get_ports net_ip2intc_irpt] +#set_property PACKAGE_PIN AF12 [get_ports net_phy_mdc] +#set_property IOSTANDARD LVCMOS15 [get_ports net_phy_mdc] +#set_property PACKAGE_PIN AG12 [get_ports net_phy_mdio_io] +#set_property IOSTANDARD LVCMOS15 [get_ports net_phy_mdio_io] +#set_property PACKAGE_PIN AH24 [get_ports net_phy_rst_n] +#set_property IOSTANDARD LVCMOS33 [get_ports net_phy_rst_n] +##set_property -dict { PACKAGE_PIN AK15 IOSTANDARD LVCMOS18 } [get_ports { ETH_PMEB }]; #IO_L1N_T0_32 Sch=eth_pmeb +#set_property PACKAGE_PIN AG10 [get_ports net_phy_rxc] +#set_property IOSTANDARD LVCMOS15 [get_ports net_phy_rxc] +#set_property PACKAGE_PIN AH11 [get_ports net_phy_rxctl] +#set_property IOSTANDARD LVCMOS15 [get_ports net_phy_rxctl] +#set_property PACKAGE_PIN AJ14 [get_ports {net_phy_rxd[0]}] +#set_property IOSTANDARD LVCMOS15 [get_ports {net_phy_rxd[0]}] +#set_property PACKAGE_PIN AH14 [get_ports {net_phy_rxd[1]}] +#set_property IOSTANDARD LVCMOS15 [get_ports {net_phy_rxd[1]}] +#set_property PACKAGE_PIN AK13 [get_ports {net_phy_rxd[2]}] +#set_property IOSTANDARD LVCMOS15 [get_ports {net_phy_rxd[2]}] +#set_property PACKAGE_PIN AJ13 [get_ports {net_phy_rxd[3]}] +#set_property IOSTANDARD LVCMOS15 [get_ports {net_phy_rxd[3]}] +#set_property PACKAGE_PIN AE10 [get_ports net_phy_txc] +#set_property IOSTANDARD LVCMOS15 [get_ports net_phy_txc] +#set_property PACKAGE_PIN AJ12 [get_ports {net_phy_txd[0]}] +#set_property IOSTANDARD LVCMOS15 [get_ports {net_phy_txd[0]}] +#set_property PACKAGE_PIN AK11 [get_ports {net_phy_txd[1]}] +#set_property IOSTANDARD LVCMOS15 [get_ports {net_phy_txd[1]}] +#set_property PACKAGE_PIN AJ11 [get_ports {net_phy_txd[2]}] +#set_property IOSTANDARD LVCMOS15 [get_ports {net_phy_txd[2]}] +#set_property PACKAGE_PIN AK10 [get_ports {net_phy_txd[3]}] +#set_property IOSTANDARD LVCMOS15 [get_ports {net_phy_txd[3]}] +#set_property PACKAGE_PIN AK14 [get_ports net_phy_txctl] +#set_property IOSTANDARD LVCMOS15 [get_ports net_phy_txctl] + +### False paths COMMENT +#set_clock_groups -name sync_gr1 -logically_exclusive -group [get_clocks chipset_clk_clk_mmcm] -group [get_clocks -include_generated_clocks mc_sys_clk_clk_mmcm] + + +############################################################### + +#set_property LOC ILOGIC_X1Y119 [get_cells {chipset/chipset_impl/mc_top/mig_7series_0/u_mig_7series_0_mig/u_memc_ui_top_std/mem_intfc0/ddr_phy_top0/u_ddr_mc_phy_wrapper/gen_dqs_iobuf_HP.gen_dqs_iobuf[2].gen_dqs_diff.u_iddr_edge_det/u_phase_detector}] +#set_property PACKAGE_PIN AG2 [get_ports {ddr_dqs_p[2]}] +#set_property PACKAGE_PIN AH1 [get_ports {ddr_dqs_n[2]}] + +#set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] + +############################################# +# Ethernet Constraints for 100 Mb/s +############################################# + +######### Input constraints +# hint from here: https://forums.xilinx.com/t5/Timing-Analysis/XDC-constraints-Source-Synchronous-ADC-DDR/td-p/292807 +#create_clock -period 40.000 -name net_phy_rxc_virt +# conservatively assuming +/- 2ns skew of rxd/rxctl +#create_clock -period 40.000 -name net_phy_rxc -waveform {2.000 22.000} [get_ports net_phy_rxc] +#set_clock_groups -asynchronous -group [get_clocks chipset_clk_clk_mmcm] -group [get_clocks net_phy_rxc] +#set_input_delay -clock [get_clocks net_phy_rxc_virt] -min -add_delay 0.000 [get_ports {net_phy_rxd[*]}] +#set_input_delay -clock [get_clocks net_phy_rxc_virt] -max -add_delay 4.000 [get_ports {net_phy_rxd[*]}] +#set_input_delay -clock [get_clocks net_phy_rxc_virt] -clock_fall -min -add_delay 0.000 [get_ports net_phy_rxctl] +#set_input_delay -clock [get_clocks net_phy_rxc_virt] -clock_fall -max -add_delay 4.000 [get_ports net_phy_rxctl] +#set_input_delay -clock [get_clocks net_phy_rxc_virt] -min -add_delay 0.000 [get_ports net_phy_rxctl] +#set_input_delay -clock [get_clocks net_phy_rxc_virt] -max -add_delay 4.000 [get_ports net_phy_rxctl] + +########## Output Constraints +#create_generated_clock -name net_phy_txc -source [get_pins chipset/net_phy_txc_oddr/C] -divide_by 1 -invert [get_ports net_phy_txc] diff --git a/piton/tools/bin/midas b/piton/tools/bin/midas index 5cc8523..7aa2c49 100755 --- a/piton/tools/bin/midas +++ b/piton/tools/bin/midas @@ -1,24 +1,24 @@ #! /bin/sh # Modified by Princeton University on June 9th, 2015 # ========== Copyright Header Begin ========================================== -# +# # OpenSPARC T1 Processor File: midas # Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES. -# +# # The above named program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public # License version 2 as published by the Free Software Foundation. -# -# The above named program is distributed in the hope that it will be +# +# The above named program is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. -# +# # You should have received a copy of the GNU General Public # License along with this work; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. -# +# # ========== Copyright Header End ============================================ # # .local_perlmod_wrapper @@ -28,7 +28,7 @@ die () { message="$1" echo "$tool -> .local_perlmod_wrapper: $message Exiting ..." - exit 1 + exit 1 } ############################ main ############################## @@ -42,13 +42,13 @@ TRE_TOOL2TOOLSET=${TRE_TOOL2TOOLSET:=$TRE_ROOT/tool2toolset} toolset=`awk '{if($1 == var)print $2}' var=$tool $TRE_TOOL2TOOLSET` if [ -z "$toolset" ] ; then - die "flow not found!" -else + die "flow not found!" +else TOOLSET=`echo $toolset |tr '[a-z]' '[A-Z]'` fi -### Version may be set either by TRE or by environment variable -### 'VERSION_$TOOLSET', if case TRE_ENTRY is set to '/'. +### Version may be set either by TRE or by environment variable +### 'VERSION_$TOOLSET', if case TRE_ENTRY is set to '/'. ### Either way, the version MUST be set. eval vers=\$VERSION_$TOOLSET @@ -62,7 +62,7 @@ elif [ ! -z "$TRE_SEARCH" ] && [ ! -z "$TRE_ENTRY" ] ; then eval export VERSION_$TOOLSET else die "TRE_SEARCH & TRE_ENTRY are not set." -fi +fi ### VERSION_$TOOLSET **MUST** be set, even if TRE is not used. @@ -70,7 +70,7 @@ if [ -z "$version" ] ; then die "No version set for flow '$toolset'." fi -### try to execute the toolset member tool +### try to execute the toolset member tool ### (the version is passed in VERSION_$TOOLSET) # necessary for the moment @@ -109,7 +109,7 @@ else PERL5OPT="-I$PERL_MODULE_BASE -I$PERL_MODULE_BASE/$OS-$CPU -I$PERL5_PATH/$PERL_VER -I$PERL5_PATH/$PERL_VER/sun4-solaris $PERL5OPT" fi export PERL5OPT - +echo $exe if [ -x $exe ] ; then exec $PERL_CMD $exe "$@" else diff --git a/piton/tools/src/proto/block.list b/piton/tools/src/proto/block.list index 41a29fc..09339d4 100644 --- a/piton/tools/src/proto/block.list +++ b/piton/tools/src/proto/block.list @@ -24,7 +24,7 @@ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Format: # BlockID BlockPath Supported Board,Frequency(MHz),DDRSize(Mbytes) -system . vc707,60,1024;genesys2,66.667,1024;nexysVideo,30,512 +system . vc707,60,1024;genesys2,66.667,1024;zc706,66.667,1024;nexysVideo,30,512 chipset chipset genesys2,66.667,1024;piton_board,50,0 passthru passthru piton_board,100,0 passthru_loopback fpga_tests/passthru_loopback piton_board,100,0 diff --git a/piton/tools/src/proto/board.list b/piton/tools/src/proto/board.list index e5ed76f..21d2c25 100644 --- a/piton/tools/src/proto/board.list +++ b/piton/tools/src/proto/board.list @@ -27,3 +27,4 @@ genesys2 vivado vc707 vivado nexysVideo vivado +zc706 vivado diff --git a/piton/tools/src/proto/fpga_lib.py b/piton/tools/src/proto/fpga_lib.py index 0f54b4f..de7c470 100644 --- a/piton/tools/src/proto/fpga_lib.py +++ b/piton/tools/src/proto/fpga_lib.py @@ -1,7 +1,7 @@ #!/usr/bin/python # Copyright (c) 2015 Princeton University # All rights reserved. -# +# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright @@ -12,7 +12,7 @@ # * Neither the name of Princeton University nor the # names of its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. -# +# # THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -43,25 +43,29 @@ DESIGN_BLOCK_LIST = os.path.join(DV_ROOT, "tools/src/proto/block.list") MAP_MODULE_NAME = "storage_addr_trans.v" NOC_PAYLOAD_WIDTH = 512 +# ddr - MIG_APP_DATA_WIDTH STORAGE_BLOCK_BIT_WIDTH = { "ddr": { "vc707":512, "nexys4ddr":128, "genesys2":256, + "zc706":512, "nexysVideo":128 }, "bram": { "vc707":512, "nexys4ddr":512, "genesys2":512, + "zc706":512, "nexysVideo":512, "piton_board":512 }, "dmw": { "vc707":512, "nexys4ddr":512, "genesys2":512, + "zc706":512, "nexysVideo":512, "piton_board":512 } } - +# ddr - MIG_APP_MASK_WIDTH STORAGE_ADDRESSABLE_BIT_WIDTH = { "ddr": { "vc707":64, "nexys4ddr":16, "genesys2":32, @@ -80,21 +84,24 @@ "piton_board":512 } } - +# ddr - 8 * size_in_byte STORAGE_BIT_SIZE = { "ddr": { "vc707":8*2**30, "nexys4ddr":8*128*2**20, "genesys2":8*2**30, + "zc706":8*2**30, "nexysVideo":8*512*2**20 }, "bram": { "vc707":16384*512, "nexys4ddr":16384*512, "genesys2":16384*512, + "zc706":16384*512, "nexysVideo":16384*512, "piton_board":256*512 }, "dmw": { "vc707":8*2**30, "nexys4ddr":8*128*2**20, "genesys2":8*2**30, + "zc706":8*2**30, "nexysVideo":8*512*2**20 } } @@ -102,8 +109,9 @@ DW_BYTE_SIZE = DW_BIT_SIZE / 8 -UART_BAUD_RATE = 115200 +# UART_BAUD_RATE = 115200 # UART_BAUD_RATE = 921600 +UART_BAUD_RATE = 576000 OLED_STRING_LEN = 64 @@ -182,13 +190,13 @@ def isTranslatorOK(addr_data_map, flog): print >> flog, "ERROR: Address %s is not mapped in %s" % (hex(addr), map_loc) print >> sys.stderr, "ERROR: Address %s is not mapped in %s" % (hex(addr), map_loc) return False - + return True def getTestList(fname, flog, ustr_files=False): f = open(fname, 'r') - + test_list = list() suff = "ustr" if ustr_files else "s" for line in f: diff --git a/piton/tools/src/proto/protosyn,2.5 b/piton/tools/src/proto/protosyn,2.5 index 0b1816a..f1b2a73 100755 --- a/piton/tools/src/proto/protosyn,2.5 +++ b/piton/tools/src/proto/protosyn,2.5 @@ -1,7 +1,7 @@ #!/usr/bin/python # Copyright (c) 2015 Princeton University # All rights reserved. -# +# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright @@ -12,7 +12,7 @@ # * Neither the name of Princeton University nor the # names of its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. -# +# # THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -115,12 +115,12 @@ def slurm_launch(cmd, log, tpn, mem_mb, time_str, jname, dep_list) : fp.write("#SBATCH --mem=%d # mem=%dMB\n" % (mem_mb, mem_mb)) fp.write("#SBATCH -t %s # walltime=%s\n" % (time_str, time_str)) fp.write("#SBATCH -J %s # jobname=%s\n\n" % (jname, jname)) - + fp.write(' '.join(cmd) + " > " + log) fp.close() os.chmod(slurm_file, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - + # Submit job, retrying on fails slurm_cmd = ["sbatch"] if dep_list != None and len(dep_list) > 0: @@ -170,7 +170,7 @@ def run_ise(log, script, design_dir, board, slurm, tpn, mem_mb, time_str, jname, flog = open(log, "w") subprocess.call(cmd, stdout=flog, stderr=flog) flog.close() - return None + return None def makeProject(board, design_data, work_dir, log_dir, slurm, dep_list): prev_dir = os.getcwd() @@ -197,6 +197,35 @@ def makeProject(board, design_data, work_dir, log_dir, slurm, dep_list): return jid +def upgradeIPs(board, design_data, work_dir, log_dir, def_list, slurm, dep_list): + prev_dir = os.getcwd() + + os.chdir(work_dir) + + # Generate additional defines file that will be sourced in tcl script + f = open("additional_defines.tcl", "w") + print >> f, "set PROTOSYN_RUNTIME_DEFINES \"%s\"" % ' '.join(def_list) + f.close() + + tool = find_board_tool(board) + + print_info("Upgrading IPs") + design_board_dir = os.path.join(design_data["PATH"], board) + impl_log = os.path.join(log_dir, "ip_upgrade.log") + impl_flow = os.path.join(DV_ROOT, "tools/src/proto/" + tool + "/upgrade_ips.tcl") + jname = "protosyn_upips_%s_%s" % (board, design_data["ID"]) + jid = None + if (tool == "vivado"): + jid = run_vivado(impl_log, impl_flow, design_data["PATH"], board, \ + slurm, 8, 64000, "6:00:00", jname, dep_list) + elif (tool == "ise"): + jid = run_ise(impl_log, impl_flow, design_data["PATH"], board, \ + slurm, 8, 64000, "6:00:00", jname, dep_list) + + os.chdir(prev_dir) + + return jid + def runImplFlow(board, design_data, work_dir, log_dir, def_list, slurm, dep_list): prev_dir = os.getcwd() @@ -294,7 +323,7 @@ def checkCmdOptions(options): usage() exit(0) - # Check if design is specified + # Check if design is specified # (It has a default value so always should be) if (options.design == None): print_error("Invalid parameters") @@ -318,7 +347,7 @@ def checkCmdOptions(options): if (options.board not in design_data["BOARDS"]): print_error("Unsupported board") usage() - exit(2) + exit(2) # Check board exists in board list if (find_board_tool(options.board) == None): @@ -616,7 +645,7 @@ def main(): makeMemMapping(st_brd, work_dir, log_dir) ################################################ - # Generate UART init sequence for ASM tests + # Generate UART init sequence for ASM tests # based on system frequency ################################################ if options.uart_dmw != None: @@ -626,13 +655,19 @@ def main(): ################################## # Run FPGA flow ################################## + dep_list = [] + jid = None if run_make_project: jid = makeProject(options.board, design_data, work_dir, log_dir, options.slurm, None) + if jid != None: + dep_list.append(jid) + jid = upgradeIPs(options.board, design_data, work_dir, log_dir, defines, options.slurm, dep_list) + if jid != None: + dep_list.append(jid) + + - dep_list = [] - if jid != None: - dep_list.append(jid) ## TODO: update this options for simulations from VCS if run_gen_test_bram: diff --git a/piton/tools/src/proto/vivado/upgrade_ips.tcl b/piton/tools/src/proto/vivado/upgrade_ips.tcl new file mode 100644 index 0000000..e90d594 --- /dev/null +++ b/piton/tools/src/proto/vivado/upgrade_ips.tcl @@ -0,0 +1,53 @@ +# Copyright (c) 2016 Princeton University +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Princeton University nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL PRINCETON UNIVERSITY BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# +# This script kicks of an implementation +# flow for the project +# + +# Boiler plate startup +set DV_ROOT $::env(DV_ROOT) +source $DV_ROOT/tools/src/proto/vivado/setup.tcl + +# Get additional protosyn runtime defines +source additional_defines.tcl +set ALL_VERILOG_MACROS [concat $ALL_DEFAULT_VERILOG_MACROS $PROTOSYN_RUNTIME_DEFINES] + +puts "INFO: Using the following Verilog defines to upgrade ips: ${ALL_VERILOG_MACROS}" + +# Open the project +open_project ${VIVADO_PROJECT_FILE} + +# Update Verilog MACROs property +set_property "verilog_define" "${ALL_VERILOG_MACROS}" [get_fileset sources_1] +set_property "verilog_define" "${ALL_VERILOG_MACROS}" [get_fileset sim_1] + +# Dealing with Vivado case, when it locks IPs as old ones +upgrade_ip [get_ips -all] + +# Extra open/close to make Vivado use defines for a project, +# not only for synthesis +close_project diff --git a/piton/tools/src/proto/zc706/board.tcl b/piton/tools/src/proto/zc706/board.tcl new file mode 100644 index 0000000..836277b --- /dev/null +++ b/piton/tools/src/proto/zc706/board.tcl @@ -0,0 +1,34 @@ +# Copyright (c) 2016 Princeton University +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Princeton University nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY PRINCETON UNIVERSITY "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL PRINCETON UNIVERSITY BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# +# Board specific variables +# Not intended to be run standalone +# + +set BOARD_PART "xilinx.com:zc706:part0:1.4" +set FPGA_PART "xc7z045ffg900-2" +set VIVADO_FLOW_PERF_OPT 0 +set BOARD_DEFAULT_VERILOG_MACROS "ZC706_BOARD" diff --git a/piton/tools/src/sims/sims,1.262 b/piton/tools/src/sims/sims,1.262 index 29e5ad7..604a91a 100755 --- a/piton/tools/src/sims/sims,1.262 +++ b/piton/tools/src/sims/sims,1.262 @@ -954,7 +954,7 @@ sub run_injobq #system ($cmd) if (!($opt{dryrun})) ; #($output = `until $cmd; do echo "Submit failed"; sleep 30; done`) if (!($opt{dryrun})) ; - + if (!($opt{dryrun})) { my $returncode = system ($cmd) ; while ($returncode) { @@ -1629,9 +1629,9 @@ sub gen_flist $flist = $vc707flist; # print("\n\ndebug: Virtex flist found: $flist\n"); } - } + } } - + open (IFLIST, "< $flist") or die ("DIE. can't open flist file $flist") ; print "$flist\n\n\n\n"; @@ -1687,7 +1687,7 @@ sub gen_flist # Now we run pyphp # Alexey: for ISE change .v(h).tmp on .tmp.v(h) # print("\$preline is $line\n"); - # my $dotvfile = + # my $dotvfile = if ($opt{ibm} || $opt{xilinx}){ my $ibmfile = (split(' ',substr($line, 0, -1)))[-1] . ".ibm.v"; @@ -2186,6 +2186,7 @@ sub vcs_build push (@{$opt{vcs_build_args}}, "+define+NEXYS4DDR_BOARD") if ($opt{artix7}); push (@{$opt{vcs_build_args}}, "+define+VC707_BOARD") if ($opt{vc707}); push (@{$opt{vcs_build_args}}, "+define+GENESYS2_BOARD") if ($opt{genesys2}); + push (@{$opt{vcs_build_args}}, "+define+ZC706_BOARD") if ($opt{zc706}); # build the model print "$prg: Building rtl model\n" ; @@ -4184,7 +4185,7 @@ sub expand_filename { { $1 ? (getpwnam($1))[7] : ( $ENV{HOME} || $ENV{LOGDIR} || (getpwuid($>))[7]) }ex; # environment variable expansion - $filename =~ s/\${*(\w+)}*/expand_env($1)/ge; + $filename =~ s/\$\{*(\w+)\}*/expand_env($1)/ge; return $filename; } @@ -5064,10 +5065,10 @@ sub parse_args } else { print "x_tiles and y_tiles not defined, assuming x dimension is 8 wide\n" ; if (! $opt{num_tile}) { - print "num_tile not defined, assuming just one tile\n" ; + print "num_tile not defined, assuming just one tile\n" ; $opt{num_tile} = 1; } - + for (my $i=0; $i < $opt{num_tile}; $i++) { # print "$i\n"; push (@{$opt{config_rtl}}, "RTL_SPARC" . $i); @@ -5241,14 +5242,14 @@ SIMULATION ENV specified when using this command format. OPENPITON ARGUMENTS - + -sys=manycore -x_tiles=X -y_tiles=Y this combination of options for the "manycore" simulation model specifies a 2D mesh topology of tiles, with X tiles - in the x dimension and Y tiles in the y dimension. If + in the x dimension and Y tiles in the y dimension. If -x_tiles and -y_tiles is not specified, the default is X=1 and Y=1. The maximum value for both X and Y is 1024. - + -ed_enable enable Execution Drafting in each core. @@ -5284,7 +5285,7 @@ OPENPITON ARGUMENTS evaluation board. Can be used only in conjunction with -xilinx option. -vc707 - use block memories generated by Vivado tool chain, required for Xilinx VC707 + use block memories generated by Vivado tool chain, required for Xilinx VC707 evaluation board. Can be used only in conjunction with -xilinx option. -debug_all @@ -6000,18 +6001,18 @@ Build the vera testbench only using DV_ROOT as design root Build a model from any design root - sims -sys=manycore -x_tiles=1 -y_tiles=1 + sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_build -dv_root=/home/regress/2002_06_03 Build a graft model from any design root - sims -sys=manycore -x_tiles=1 -y_tiles=1 + sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_build -dv_root=/model/2002_06_03 \ -graft_flist=/regress/graftfile Build a model and re-build the vera - sims -sys=manycore -x_tiles=1 -y_tiles=1 + sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_build -vera_clean Build a model and turn off incremental compile @@ -6030,12 +6031,12 @@ Run a diag with default model Run a diag with a specified model - sims -sys=manycore -x_tiles=1 -y_tiles=1 + sims -sys=manycore -x_tiles=1 -y_tiles=1 -vcs_rel_name=mymodel -vcs_run diag.s Run a diag with debussy dump with default model - sims -sys=manycore -x_tiles=1 -y_tiles=1 -debussy + sims -sys=manycore -x_tiles=1 -y_tiles=1 -debussy +dump=cmp_top:0 -vcs_run diag.s Run regressions