From 542495cb52faa67597f41a7dd17613a72ac6209c Mon Sep 17 00:00:00 2001 From: FallenSigh Date: Tue, 30 Jun 2026 02:10:07 +0800 Subject: [PATCH] fix: replace UNUSEDPARAM/UNUSEDSIGNAL with UNUSED for verilator lint Verilator does not recognize UNUSEDPARAM or UNUSEDSIGNAL. Correct suppression code is UNUSED. --- rtl/ip/PLL_2019_2/clk_pll_sim_netlist.v | 224 +++ rtl/ip/PLL_2019_2/clk_pll_sim_netlist.vhdl | 170 +++ rtl/ip/PLL_2019_2/clk_pll_stub.v | 23 + rtl/ip/PLL_2019_2/clk_pll_stub.vhdl | 32 + rtl/ip/mlkem/ntt/barrett_mul.v | 4 +- rtl/ip/mlkem/sample_cbd/sample_cbd_sync.v | 4 +- rtl/ip/mlkem/sample_ntt/sample_ntt_sync.v | 16 +- .../mlkem/sample_ntt/sample_ntt_sync_shared.v | 16 +- rtl/ip/mlkem/sha3/sha3_top.v | 4 +- rtl/ip/mlkem/sha3/sha3_top_shared.v | 4 +- rtl/ip/mlkem/top/mlkem_top.v | 4 +- sdk/axi_ram.mif | 1270 +++++++++-------- sdk/mlkem_test.bin | Bin 0 -> 41228 bytes sdk/user-sample.bin | Bin 40684 -> 3264 bytes 14 files changed, 1178 insertions(+), 593 deletions(-) create mode 100644 rtl/ip/PLL_2019_2/clk_pll_sim_netlist.v create mode 100644 rtl/ip/PLL_2019_2/clk_pll_sim_netlist.vhdl create mode 100644 rtl/ip/PLL_2019_2/clk_pll_stub.v create mode 100644 rtl/ip/PLL_2019_2/clk_pll_stub.vhdl create mode 100755 sdk/mlkem_test.bin diff --git a/rtl/ip/PLL_2019_2/clk_pll_sim_netlist.v b/rtl/ip/PLL_2019_2/clk_pll_sim_netlist.v new file mode 100644 index 0000000..c2599a1 --- /dev/null +++ b/rtl/ip/PLL_2019_2/clk_pll_sim_netlist.v @@ -0,0 +1,224 @@ +// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019 +// Date : Tue Jun 30 01:14:25 2026 +// Host : fedora running 64-bit unknown +// Command : write_verilog -force -mode funcsim +// /home/fallensigh/Dev/ciciec2026_loongson_regional/rtl/ip/PLL_2019_2/clk_pll_sim_netlist.v +// Design : clk_pll +// Purpose : This verilog netlist is a functional simulation representation of the design and should not be modified +// or synthesized. This netlist cannot be used for SDF annotated simulation. +// Device : xc7a200tfbg676-1 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* NotValidForBitStream *) +module clk_pll + (cpu_clk, + sys_clk, + resetn, + locked, + clk_in1); + output cpu_clk; + output sys_clk; + input resetn; + output locked; + input clk_in1; + + (* IBUF_LOW_PWR *) wire clk_in1; + wire cpu_clk; + wire locked; + wire resetn; + wire sys_clk; + + clk_pll_clk_pll_clk_wiz inst + (.clk_in1(clk_in1), + .cpu_clk(cpu_clk), + .locked(locked), + .resetn(resetn), + .sys_clk(sys_clk)); +endmodule + +(* ORIG_REF_NAME = "clk_pll_clk_wiz" *) +module clk_pll_clk_pll_clk_wiz + (cpu_clk, + sys_clk, + resetn, + locked, + clk_in1); + output cpu_clk; + output sys_clk; + input resetn; + output locked; + input clk_in1; + + wire clk_in1; + wire clk_in1_clk_pll; + wire clkfbout_buf_clk_pll; + wire clkfbout_clk_pll; + wire cpu_clk; + wire cpu_clk_clk_pll; + wire locked; + wire reset_high; + wire resetn; + wire sys_clk; + wire sys_clk_clk_pll; + wire NLW_plle2_adv_inst_CLKOUT2_UNCONNECTED; + wire NLW_plle2_adv_inst_CLKOUT3_UNCONNECTED; + wire NLW_plle2_adv_inst_CLKOUT4_UNCONNECTED; + wire NLW_plle2_adv_inst_CLKOUT5_UNCONNECTED; + wire NLW_plle2_adv_inst_DRDY_UNCONNECTED; + wire [15:0]NLW_plle2_adv_inst_DO_UNCONNECTED; + + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkf_buf + (.I(clkfbout_clk_pll), + .O(clkfbout_buf_clk_pll)); + (* BOX_TYPE = "PRIMITIVE" *) + (* CAPACITANCE = "DONT_CARE" *) + (* IBUF_DELAY_VALUE = "0" *) + (* IFD_DELAY_VALUE = "AUTO" *) + IBUF #( + .IOSTANDARD("DEFAULT")) + clkin1_ibufg + (.I(clk_in1), + .O(clk_in1_clk_pll)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkout1_buf + (.I(cpu_clk_clk_pll), + .O(cpu_clk)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkout2_buf + (.I(sys_clk_clk_pll), + .O(sys_clk)); + (* BOX_TYPE = "PRIMITIVE" *) + PLLE2_ADV #( + .BANDWIDTH("OPTIMIZED"), + .CLKFBOUT_MULT(31), + .CLKFBOUT_PHASE(0.000000), + .CLKIN1_PERIOD(20.000000), + .CLKIN2_PERIOD(0.000000), + .CLKOUT0_DIVIDE(47), + .CLKOUT0_DUTY_CYCLE(0.500000), + .CLKOUT0_PHASE(0.000000), + .CLKOUT1_DIVIDE(31), + .CLKOUT1_DUTY_CYCLE(0.500000), + .CLKOUT1_PHASE(0.000000), + .CLKOUT2_DIVIDE(1), + .CLKOUT2_DUTY_CYCLE(0.500000), + .CLKOUT2_PHASE(0.000000), + .CLKOUT3_DIVIDE(1), + .CLKOUT3_DUTY_CYCLE(0.500000), + .CLKOUT3_PHASE(0.000000), + .CLKOUT4_DIVIDE(1), + .CLKOUT4_DUTY_CYCLE(0.500000), + .CLKOUT4_PHASE(0.000000), + .CLKOUT5_DIVIDE(1), + .CLKOUT5_DUTY_CYCLE(0.500000), + .CLKOUT5_PHASE(0.000000), + .COMPENSATION("ZHOLD"), + .DIVCLK_DIVIDE(1), + .IS_CLKINSEL_INVERTED(1'b0), + .IS_PWRDWN_INVERTED(1'b0), + .IS_RST_INVERTED(1'b0), + .REF_JITTER1(0.010000), + .REF_JITTER2(0.010000), + .STARTUP_WAIT("FALSE")) + plle2_adv_inst + (.CLKFBIN(clkfbout_buf_clk_pll), + .CLKFBOUT(clkfbout_clk_pll), + .CLKIN1(clk_in1_clk_pll), + .CLKIN2(1'b0), + .CLKINSEL(1'b1), + .CLKOUT0(cpu_clk_clk_pll), + .CLKOUT1(sys_clk_clk_pll), + .CLKOUT2(NLW_plle2_adv_inst_CLKOUT2_UNCONNECTED), + .CLKOUT3(NLW_plle2_adv_inst_CLKOUT3_UNCONNECTED), + .CLKOUT4(NLW_plle2_adv_inst_CLKOUT4_UNCONNECTED), + .CLKOUT5(NLW_plle2_adv_inst_CLKOUT5_UNCONNECTED), + .DADDR({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .DCLK(1'b0), + .DEN(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .DO(NLW_plle2_adv_inst_DO_UNCONNECTED[15:0]), + .DRDY(NLW_plle2_adv_inst_DRDY_UNCONNECTED), + .DWE(1'b0), + .LOCKED(locked), + .PWRDWN(1'b0), + .RST(reset_high)); + LUT1 #( + .INIT(2'h1)) + plle2_adv_inst_i_1 + (.I0(resetn), + .O(reset_high)); +endmodule +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + tri1 p_up_tmp; + tri (weak1, strong0) PLL_LOCKG = p_up_tmp; + + wire PROGB_GLBL; + wire CCLKO_GLBL; + wire FCSBO_GLBL; + wire [3:0] DO_GLBL; + wire [3:0] DI_GLBL; + + reg GSR_int; + reg GTS_int; + reg PRLD_int; + +//-------- JTAG Globals -------------- + wire JTAG_TDO_GLBL; + wire JTAG_TCK_GLBL; + wire JTAG_TDI_GLBL; + wire JTAG_TMS_GLBL; + wire JTAG_TRST_GLBL; + + reg JTAG_CAPTURE_GLBL; + reg JTAG_RESET_GLBL; + reg JTAG_SHIFT_GLBL; + reg JTAG_UPDATE_GLBL; + reg JTAG_RUNTEST_GLBL; + + reg JTAG_SEL1_GLBL = 0; + reg JTAG_SEL2_GLBL = 0 ; + reg JTAG_SEL3_GLBL = 0; + reg JTAG_SEL4_GLBL = 0; + + reg JTAG_USER_TDO1_GLBL = 1'bz; + reg JTAG_USER_TDO2_GLBL = 1'bz; + reg JTAG_USER_TDO3_GLBL = 1'bz; + reg JTAG_USER_TDO4_GLBL = 1'bz; + + assign (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + + initial begin + GSR_int = 1'b1; + PRLD_int = 1'b1; + #(ROC_WIDTH) + GSR_int = 1'b0; + PRLD_int = 1'b0; + end + + initial begin + GTS_int = 1'b1; + #(TOC_WIDTH) + GTS_int = 1'b0; + end + +endmodule +`endif diff --git a/rtl/ip/PLL_2019_2/clk_pll_sim_netlist.vhdl b/rtl/ip/PLL_2019_2/clk_pll_sim_netlist.vhdl new file mode 100644 index 0000000..4a1367f --- /dev/null +++ b/rtl/ip/PLL_2019_2/clk_pll_sim_netlist.vhdl @@ -0,0 +1,170 @@ +-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019 +-- Date : Tue Jun 30 01:14:25 2026 +-- Host : fedora running 64-bit unknown +-- Command : write_vhdl -force -mode funcsim +-- /home/fallensigh/Dev/ciciec2026_loongson_regional/rtl/ip/PLL_2019_2/clk_pll_sim_netlist.vhdl +-- Design : clk_pll +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xc7a200tfbg676-1 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity clk_pll_clk_pll_clk_wiz is + port ( + cpu_clk : out STD_LOGIC; + sys_clk : out STD_LOGIC; + resetn : in STD_LOGIC; + locked : out STD_LOGIC; + clk_in1 : in STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of clk_pll_clk_pll_clk_wiz : entity is "clk_pll_clk_wiz"; +end clk_pll_clk_pll_clk_wiz; + +architecture STRUCTURE of clk_pll_clk_pll_clk_wiz is + signal clk_in1_clk_pll : STD_LOGIC; + signal clkfbout_buf_clk_pll : STD_LOGIC; + signal clkfbout_clk_pll : STD_LOGIC; + signal cpu_clk_clk_pll : STD_LOGIC; + signal reset_high : STD_LOGIC; + signal sys_clk_clk_pll : STD_LOGIC; + signal NLW_plle2_adv_inst_CLKOUT2_UNCONNECTED : STD_LOGIC; + signal NLW_plle2_adv_inst_CLKOUT3_UNCONNECTED : STD_LOGIC; + signal NLW_plle2_adv_inst_CLKOUT4_UNCONNECTED : STD_LOGIC; + signal NLW_plle2_adv_inst_CLKOUT5_UNCONNECTED : STD_LOGIC; + signal NLW_plle2_adv_inst_DRDY_UNCONNECTED : STD_LOGIC; + signal NLW_plle2_adv_inst_DO_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 ); + attribute BOX_TYPE : string; + attribute BOX_TYPE of clkf_buf : label is "PRIMITIVE"; + attribute BOX_TYPE of clkin1_ibufg : label is "PRIMITIVE"; + attribute CAPACITANCE : string; + attribute CAPACITANCE of clkin1_ibufg : label is "DONT_CARE"; + attribute IBUF_DELAY_VALUE : string; + attribute IBUF_DELAY_VALUE of clkin1_ibufg : label is "0"; + attribute IFD_DELAY_VALUE : string; + attribute IFD_DELAY_VALUE of clkin1_ibufg : label is "AUTO"; + attribute BOX_TYPE of clkout1_buf : label is "PRIMITIVE"; + attribute BOX_TYPE of clkout2_buf : label is "PRIMITIVE"; + attribute BOX_TYPE of plle2_adv_inst : label is "PRIMITIVE"; +begin +clkf_buf: unisim.vcomponents.BUFG + port map ( + I => clkfbout_clk_pll, + O => clkfbout_buf_clk_pll + ); +clkin1_ibufg: unisim.vcomponents.IBUF + generic map( + IOSTANDARD => "DEFAULT" + ) + port map ( + I => clk_in1, + O => clk_in1_clk_pll + ); +clkout1_buf: unisim.vcomponents.BUFG + port map ( + I => cpu_clk_clk_pll, + O => cpu_clk + ); +clkout2_buf: unisim.vcomponents.BUFG + port map ( + I => sys_clk_clk_pll, + O => sys_clk + ); +plle2_adv_inst: unisim.vcomponents.PLLE2_ADV + generic map( + BANDWIDTH => "OPTIMIZED", + CLKFBOUT_MULT => 31, + CLKFBOUT_PHASE => 0.000000, + CLKIN1_PERIOD => 20.000000, + CLKIN2_PERIOD => 0.000000, + CLKOUT0_DIVIDE => 47, + CLKOUT0_DUTY_CYCLE => 0.500000, + CLKOUT0_PHASE => 0.000000, + CLKOUT1_DIVIDE => 31, + CLKOUT1_DUTY_CYCLE => 0.500000, + CLKOUT1_PHASE => 0.000000, + CLKOUT2_DIVIDE => 1, + CLKOUT2_DUTY_CYCLE => 0.500000, + CLKOUT2_PHASE => 0.000000, + CLKOUT3_DIVIDE => 1, + CLKOUT3_DUTY_CYCLE => 0.500000, + CLKOUT3_PHASE => 0.000000, + CLKOUT4_DIVIDE => 1, + CLKOUT4_DUTY_CYCLE => 0.500000, + CLKOUT4_PHASE => 0.000000, + CLKOUT5_DIVIDE => 1, + CLKOUT5_DUTY_CYCLE => 0.500000, + CLKOUT5_PHASE => 0.000000, + COMPENSATION => "ZHOLD", + DIVCLK_DIVIDE => 1, + IS_CLKINSEL_INVERTED => '0', + IS_PWRDWN_INVERTED => '0', + IS_RST_INVERTED => '0', + REF_JITTER1 => 0.010000, + REF_JITTER2 => 0.010000, + STARTUP_WAIT => "FALSE" + ) + port map ( + CLKFBIN => clkfbout_buf_clk_pll, + CLKFBOUT => clkfbout_clk_pll, + CLKIN1 => clk_in1_clk_pll, + CLKIN2 => '0', + CLKINSEL => '1', + CLKOUT0 => cpu_clk_clk_pll, + CLKOUT1 => sys_clk_clk_pll, + CLKOUT2 => NLW_plle2_adv_inst_CLKOUT2_UNCONNECTED, + CLKOUT3 => NLW_plle2_adv_inst_CLKOUT3_UNCONNECTED, + CLKOUT4 => NLW_plle2_adv_inst_CLKOUT4_UNCONNECTED, + CLKOUT5 => NLW_plle2_adv_inst_CLKOUT5_UNCONNECTED, + DADDR(6 downto 0) => B"0000000", + DCLK => '0', + DEN => '0', + DI(15 downto 0) => B"0000000000000000", + DO(15 downto 0) => NLW_plle2_adv_inst_DO_UNCONNECTED(15 downto 0), + DRDY => NLW_plle2_adv_inst_DRDY_UNCONNECTED, + DWE => '0', + LOCKED => locked, + PWRDWN => '0', + RST => reset_high + ); +plle2_adv_inst_i_1: unisim.vcomponents.LUT1 + generic map( + INIT => X"1" + ) + port map ( + I0 => resetn, + O => reset_high + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity clk_pll is + port ( + cpu_clk : out STD_LOGIC; + sys_clk : out STD_LOGIC; + resetn : in STD_LOGIC; + locked : out STD_LOGIC; + clk_in1 : in STD_LOGIC + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of clk_pll : entity is true; +end clk_pll; + +architecture STRUCTURE of clk_pll is +begin +inst: entity work.clk_pll_clk_pll_clk_wiz + port map ( + clk_in1 => clk_in1, + cpu_clk => cpu_clk, + locked => locked, + resetn => resetn, + sys_clk => sys_clk + ); +end STRUCTURE; diff --git a/rtl/ip/PLL_2019_2/clk_pll_stub.v b/rtl/ip/PLL_2019_2/clk_pll_stub.v new file mode 100644 index 0000000..60b6bce --- /dev/null +++ b/rtl/ip/PLL_2019_2/clk_pll_stub.v @@ -0,0 +1,23 @@ +// Copyright 1986-2019 Xilinx, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019 +// Date : Tue Jun 30 01:14:25 2026 +// Host : fedora running 64-bit unknown +// Command : write_verilog -force -mode synth_stub +// /home/fallensigh/Dev/ciciec2026_loongson_regional/rtl/ip/PLL_2019_2/clk_pll_stub.v +// Design : clk_pll +// Purpose : Stub declaration of top-level module interface +// Device : xc7a200tfbg676-1 +// -------------------------------------------------------------------------------- + +// This empty module with port declaration file causes synthesis tools to infer a black box for IP. +// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion. +// Please paste the declaration into a Verilog source file or add the file as an additional source. +module clk_pll(cpu_clk, sys_clk, resetn, locked, clk_in1) +/* synthesis syn_black_box black_box_pad_pin="cpu_clk,sys_clk,resetn,locked,clk_in1" */; + output cpu_clk; + output sys_clk; + input resetn; + output locked; + input clk_in1; +endmodule diff --git a/rtl/ip/PLL_2019_2/clk_pll_stub.vhdl b/rtl/ip/PLL_2019_2/clk_pll_stub.vhdl new file mode 100644 index 0000000..b645f97 --- /dev/null +++ b/rtl/ip/PLL_2019_2/clk_pll_stub.vhdl @@ -0,0 +1,32 @@ +-- Copyright 1986-2019 Xilinx, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2019.2 (lin64) Build 2708876 Wed Nov 6 21:39:14 MST 2019 +-- Date : Tue Jun 30 01:14:25 2026 +-- Host : fedora running 64-bit unknown +-- Command : write_vhdl -force -mode synth_stub +-- /home/fallensigh/Dev/ciciec2026_loongson_regional/rtl/ip/PLL_2019_2/clk_pll_stub.vhdl +-- Design : clk_pll +-- Purpose : Stub declaration of top-level module interface +-- Device : xc7a200tfbg676-1 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; + +entity clk_pll is + Port ( + cpu_clk : out STD_LOGIC; + sys_clk : out STD_LOGIC; + resetn : in STD_LOGIC; + locked : out STD_LOGIC; + clk_in1 : in STD_LOGIC + ); + +end clk_pll; + +architecture stub of clk_pll is +attribute syn_black_box : boolean; +attribute black_box_pad_pin : string; +attribute syn_black_box of stub : architecture is true; +attribute black_box_pad_pin of stub : architecture is "cpu_clk,sys_clk,resetn,locked,clk_in1"; +begin +end; diff --git a/rtl/ip/mlkem/ntt/barrett_mul.v b/rtl/ip/mlkem/ntt/barrett_mul.v index 6d5249a..6fe5d2d 100644 --- a/rtl/ip/mlkem/ntt/barrett_mul.v +++ b/rtl/ip/mlkem/ntt/barrett_mul.v @@ -27,9 +27,9 @@ module barrett_mul ( // Compute t_shifted = (p * K) >> 24 // Use explicit wire for the product to control width - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ wire [36:0] t_product; - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ assign t_product = p_ext * K; wire [12:0] t_shifted; assign t_shifted = t_product[36:R]; diff --git a/rtl/ip/mlkem/sample_cbd/sample_cbd_sync.v b/rtl/ip/mlkem/sample_cbd/sample_cbd_sync.v index 0122008..5b39b00 100644 --- a/rtl/ip/mlkem/sample_cbd/sample_cbd_sync.v +++ b/rtl/ip/mlkem/sample_cbd/sample_cbd_sync.v @@ -105,9 +105,9 @@ module sample_cbd_sync ( // keccak_core instantiation // ================================================================ wire kc_valid_i; - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ wire kc_ready_o; - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ wire [1599:0] kc_state_o; wire kc_valid_o; diff --git a/rtl/ip/mlkem/sample_ntt/sample_ntt_sync.v b/rtl/ip/mlkem/sample_ntt/sample_ntt_sync.v index 6089c99..ccd3041 100644 --- a/rtl/ip/mlkem/sample_ntt/sample_ntt_sync.v +++ b/rtl/ip/mlkem/sample_ntt/sample_ntt_sync.v @@ -30,16 +30,16 @@ `include "defines.vh" -/* verilator lint_off UNUSEDPARAM */ +/* verilator lint_off UNUSED */ (* use_dsp = "no" *) module sample_ntt_sync #(parameter K = 4) ( -/* verilator lint_on UNUSEDPARAM */ +/* verilator lint_on UNUSED */ input clk, input rst_n, input [255:0] rho_i, - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ input [2:0] k_i, - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ input [1:0] i_idx, input [1:0] j_idx, input valid_i, @@ -73,12 +73,12 @@ module sample_ntt_sync #(parameter K = 4) ( // ================================================================ // Registered inputs (captured on valid_i) // ================================================================ - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ reg [255:0] rho_r; reg [2:0] k_r; reg [1:0] i_r; reg [1:0] j_r; - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ // ================================================================ // Coefficient counter (0..256). 9 bits to avoid overflow when @@ -164,9 +164,9 @@ module sample_ntt_sync #(parameter K = 4) ( // ================================================================ wire kc_valid_i; wire [1599:0] kc_state_i; - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ wire kc_ready_o; - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ wire [1599:0] kc_state_o; wire kc_valid_o; diff --git a/rtl/ip/mlkem/sample_ntt/sample_ntt_sync_shared.v b/rtl/ip/mlkem/sample_ntt/sample_ntt_sync_shared.v index fd0242d..cfc0c77 100644 --- a/rtl/ip/mlkem/sample_ntt/sample_ntt_sync_shared.v +++ b/rtl/ip/mlkem/sample_ntt/sample_ntt_sync_shared.v @@ -43,16 +43,16 @@ `include "defines.vh" -/* verilator lint_off UNUSEDPARAM */ +/* verilator lint_off UNUSED */ (* use_dsp = "no" *) module sample_ntt_sync_shared #(parameter K = 4) ( -/* verilator lint_on UNUSEDPARAM */ +/* verilator lint_on UNUSED */ input clk, input rst_n, input [255:0] rho_i, - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ input [2:0] k_i, - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ input [1:0] i_idx, input [1:0] j_idx, input valid_i, @@ -68,9 +68,9 @@ module sample_ntt_sync_shared #(parameter K = 4) ( output kc_ready_i, output [1599:0] kc_state_i, output kc_valid_i, - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ input kc_ready_o - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ ); // ================================================================ @@ -96,12 +96,12 @@ module sample_ntt_sync_shared #(parameter K = 4) ( // ================================================================ // Registered inputs (captured on valid_i) // ================================================================ - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ reg [255:0] rho_r; reg [2:0] k_r; reg [1:0] i_r; reg [1:0] j_r; - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ // ================================================================ // Coefficient counter (0..256). 9 bits to avoid overflow when diff --git a/rtl/ip/mlkem/sha3/sha3_top.v b/rtl/ip/mlkem/sha3/sha3_top.v index 56411e3..c829bf3 100644 --- a/rtl/ip/mlkem/sha3/sha3_top.v +++ b/rtl/ip/mlkem/sha3/sha3_top.v @@ -123,10 +123,10 @@ module sha3_top ( // Keccak core // ================================================================ wire kc_valid_i; - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ wire [1599:0] kc_state_o; wire kc_ready_o; - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ wire kc_valid_o; // Keccak input: multi-block xored state when mb_en, else single-block absorb. diff --git a/rtl/ip/mlkem/sha3/sha3_top_shared.v b/rtl/ip/mlkem/sha3/sha3_top_shared.v index 101aff2..24e1103 100644 --- a/rtl/ip/mlkem/sha3/sha3_top_shared.v +++ b/rtl/ip/mlkem/sha3/sha3_top_shared.v @@ -42,9 +42,9 @@ module sha3_top_shared ( // --- external (shared) keccak_core interface --- input [1599:0] kc_state_o, input kc_valid_o, - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ input kc_ready_o, - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ output [1599:0] kc_state_i, output kc_valid_i, output kc_ready_i diff --git a/rtl/ip/mlkem/top/mlkem_top.v b/rtl/ip/mlkem/top/mlkem_top.v index 440c5d7..3c554bf 100644 --- a/rtl/ip/mlkem/top/mlkem_top.v +++ b/rtl/ip/mlkem/top/mlkem_top.v @@ -559,9 +559,9 @@ module mlkem_top #( // per-consumer drives toward the core wire [1599:0] sha3_kc_state_i, snt_kc_state_i, cbd_kc_state_i; wire sha3_kc_valid_i, snt_kc_valid_i, cbd_kc_valid_i; - /* verilator lint_off UNUSEDSIGNAL */ + /* verilator lint_off UNUSED */ wire sha3_kc_ready_i, snt_kc_ready_i, cbd_kc_ready_i; // all 1'b1 - /* verilator lint_on UNUSEDSIGNAL */ + /* verilator lint_on UNUSED */ // phase selects (mutually exclusive). Encaps adds ST_ENC_H/G (sha3), // ST_ENC_A (snt), ST_ENC_C (cbd). diff --git a/sdk/axi_ram.mif b/sdk/axi_ram.mif index 3d0b8c1..128540c 100644 --- a/sdk/axi_ram.mif +++ b/sdk/axi_ram.mif @@ -52,21 +52,21 @@ 00000011100000000110000000001101 00000100000000000000000110101100 00011100000000000000000100101100 -00000010100101001011000110001100 +00000010100110111111000110001100 00011100000000000001000000001101 00000010101111001001000110101101 00011100000000000001000000101110 -00000010101000000011000111001110 +00000010101000010111000111001110 01101100000000000001100110101110 00101000100000000000000110001111 00101001100000000000000110101111 00000010100000000001000110001100 00000010100000000001000110101101 01101011111111111111000110101110 -00011100000000000001000000001100 -00000010100111111011000110001100 +00011100000000000001000000101100 +00000010101000001111000110001100 00011100000000000001000000101101 -00000010101010111001000110101101 +00000010100111111101000110101101 01101100000000000001000110001101 00101001100000000000000110000000 00000010100000000001000110001100 @@ -74,7 +74,7 @@ 00000011100000000110010000001100 00000100000001100000000000101100 00011100000000000001000000001100 -00000010100101111000000110001100 +00000010100110001011000110001100 00101000100000000000000110001101 00000011100000000001110000001110 00101001000000000000100110101110 @@ -142,210 +142,210 @@ 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 -00010100001111101010000000001100 -00000010101111101000000001100011 -00000011100001000000000110010001 -00000011100011000000000110010000 -00000011100001100000000110001111 -00000010100000000000010000001110 -00000010100000000000100000001101 -00000011100011100000000110001100 +00000010101111111000000001100011 00011100000000000001000000000100 -00000010101101101000000010000100 -00101001100000001000000001101111 -00101001100000001001000001101100 -00101001100000010111000001100001 -00101001100000000110000001110001 -00101001100000000111000001110000 -00101001100000001010000001101110 -00101001100000001011000001101101 -00101001100000010101000001110111 -00101001100000010110000001110110 -00101001100000010100000001111000 -00101001100000010011000001111001 -00101001100000010010000001111010 -00101001100000010001000001111011 -00101001100000010000000001111100 -00101001100000001111000001111101 -00101001100000001110000001111110 -00101001100000001101000001111111 -01010100000001010101010000000000 -00010101011111101010000000001100 -00000011100000000001000110001101 -00000010100000000001100000001110 -00101001100000000000000110101110 -00000011100000000100000110001100 -00101001100000000000000110000000 -01010100000001001111100000000000 -00101000100000000110000001100110 -00000000000101010000000010010111 -00000010100000000010100000001000 -00000010100000100000000000000111 -00010100001110001000000000000101 -00000000000101010000000000000100 -01010100000001001001110000000000 -00010101011111100110000000001101 -00000011010000000000000000000000 -00101000100000000101000110101100 -00000011010000000000100110001100 -01011011111111111111100110000000 -00000010100000000000100000001110 -00101001100000000101000110101110 -00101000100000001010000001101111 -00010101011111101010000000001100 -00010100000000000000000000111011 +00000010101101110010000010000100 +00101001100000000111000001100001 +00101001100000000110000001110111 +00101001100000000101000001111000 +00010101011111101000000000010111 +00101001100000000100000001111001 +00101001100000000011000001111010 +01010100000001110110110000000000 +00011100000000000001000000000101 +00000010101110010101000010100101 +00000011100000000100001011100100 +01010100000001010000110000000000 +00011100000000000001000000000101 +00000010101110001001000010100101 +00000011100000001100001011100100 +01010100000001001111110000000000 +00000010100000000000100000001111 +00000011100000000010001011101101 +00101001100000000000000110101111 +00000011100000000001001011101100 +00000010100000000000010000010000 00101001100000000000000110001111 -01010100000001001010110000000000 -00000000000100010101110010001100 -00101001100000000010000001101100 -01010100000001001010000000000000 -00010101011111101010000000011100 -00010101011111100110000000010110 -00010100001110001001001110011001 -00010100001110001000000000011000 -00000011100011100010001101101100 -00000010100000000000010000011101 -00000011100000000001001110011110 -00000010100000000000100000011010 -00000011100000010000001011011111 -00101001100000000011000001100100 -00000011100100000000001100111001 -00000011100000100000001100011000 -00101001100000000001000001101100 -00000011010000000000011110110111 -00000000010000001000101011110111 -00000010100000001100000001101100 -00000000000100000101110110001100 -00101000101111111010000110000110 -00000010101111111111111110101111 -00000010100000000010100000001000 -00000010100000100000000000000111 -00000000000101010000001100000101 -00000000000101010000000000000100 -00000011010000000000010111111011 -01010100000000111111110000000000 -00101000100000000000001111001100 -00000011010000000000100110001100 -01011011111111111111100110000000 -00101001100000000000001111011010 -00000010100000000000010000001100 -01011000000000000001011110101100 -00101000100000000101001111101100 -00000011010000000000100110001100 -01011011111111111111100110000000 -00101001100000000101001111111010 -00000000010000001000101101101111 -00000010100000001100000001101100 -00000000000100000011110110001111 -00101000101111111100000111100101 -00000010100000000101000000001000 -00000010100000110000000000000111 -00000000000101010000001100100110 -00000010100000000000010000000100 -01010100000000111011000000000000 -00101000100000000101001011001100 -00000011010000000000100110001100 -01011011111111111111100110000000 -00000010100000001100000001101100 -00101001100000000101001011011010 -00000000000100000101110110010111 -00101000101111111110001011101100 -00000010100000000000011110111101 -00000010100000100000001100011000 -00101001100000000000001110001100 -00101000100000000001000001101100 -00000010100000110000001100111001 -01011111111111110101011110101100 -01010100000000111011100000000000 -00101000100000000011000001101100 -00000000000100010011000010011111 -01010100000000111010110000000000 -00010101011111101010000000001110 -00000000000101010000000010010111 -00000011100000000001000111001110 -00101000100000000000000111001100 -00000011010000000000100110001100 -01011011111111111111100110000000 -00000010100000000000100000001100 -00010101011111100110000000001101 -00101001100000000000000111001100 -00000011100000010000000110101101 -00101000100000000101000110101100 -00000011010000000000100110001100 -01011011111111111111100110000000 -00000010100000000000100000001100 -00101001100000000101000110101100 -00101000100000001001000001100101 -00010100001110001011000011000110 -00000010100000000101000000001000 -00000010100000110000000000000111 -00000011101001010000000011000110 -00000010100000000000010000000100 -01010100000000110001010000000000 -00010101011111100110000000001101 -00000011100000010000000110101101 -00101000100000000101000110101100 -00000011010000000000100110001100 -01011011111111111111100110000000 -00000010100000000000100000001100 -00101001100000000101000110101100 -01010100000000110011010000000000 -00010101011111101010000000001100 -00000011100000000100000110001100 -00101000100000000000000110000101 -00000000000100010101110010010111 -00011100000000000001000000000100 -00000010101011011100000010000100 -01010100000000110101100000000000 -00101000100000000010000001111000 -00011100000000000001000000000100 -00000010101011011101000010000100 -00000000000101010000001100000101 -01010100000000110100010000000000 -00000000000101010000001111100101 -00011100000000000001000000000100 -00000010101011011101000010000100 -01010100000000110011010000000000 -00010100000000000000000000100101 -00000011100011100010000010100101 -00000000001000010001011111101100 -01011100000000000000100010100000 -00000000001010100000000000000111 -00011100000000000001000000000100 -00000010101011011001000010000100 -00000000000101010000000110000101 -01010100000000110001000000000000 -00000000000101010000001011100101 -00011100000000000001000000000100 -00000010101011011001000010000100 -01010100000000110000000000000000 -00000000000100000111111100011111 -00000000000100000101111111100101 -00011100000000000001000000000100 -00000010101011011001000010000100 -01010100000000101110110000000000 -00011100000000000001000000000100 -00000010101011011010000010000100 -01010100000000101110000000000000 -00101000100000010111000001100001 -00101000100000010110000001110110 -00101000100000010101000001110111 -00101000100000010100000001111000 -00101000100000010011000001111001 -00101000100000010010000001111010 -00101000100000010001000001111011 -00101000100000010000000001111100 -00101000100000001111000001111101 -00101000100000001110000001111110 -00101000100000001101000001111111 -00000000000101010000000000000100 -00000010100000011000000001100011 -01001100000000000000000000100000 +00010101011111101000000000001110 +00000000000101010000000110001101 +00101001100000000000001011110000 +00000011010000000000000000000000 +00101000100000000000000110101100 +00000011010000000000100110001100 +01011011111111111111100110000000 +00010101011111101000000000010010 +00000011100001000011000111001101 +00011100000000000001000000110111 +00000010100011000110001011110111 +00101001100000000000000110100000 +00000000000101010000000000001100 +00000000000101010000001011101101 +00000011100001000100001001010001 +00000011100001000101001001010000 +00000010100011001000000000001111 +00101001100000000000001000101100 +00101000100000000000001000001110 +00000010100000000000010110101101 +00000010100000000000010110001100 +00101001001111111111110110101110 +01011111111111111110110110001111 +00010101011111101000000000011001 +00000010100000000000100000001100 +00000011100001000011001001010010 +00011100000000000001000000111000 +00000010101100011101001100011000 +00101001100000000000001001001100 +00000000000101010000001100001101 +00000000000101010000000000001100 +00000011100001000100001100110001 +00000011100001000101001100110000 +00000010100110011000000000001111 +00101001100000000000001000101100 +00101000100000000000001000001110 +00000010100000000000010110101101 +00000010100000000000010110001100 +00101001001111111111110110101110 +01011111111111111110110110001111 +00011100000000000001000000100101 +00000010100010100111000010100101 +00011100000000000001000000000100 +00000010101100110101000010000100 +01010100000001011010000000000000 +00000011100001000000001100101100 +00010101011111101000000000011010 +00000011100001000001001100111001 +00101001100000000000000110000000 +00000010100011001000001011101110 +00000011100001000010001101001101 +00101001100000000000001100100000 +00101010000000000000001011101100 +00000010100000000000011011110111 +00101001100000000000000110101100 +01011111111111111111011011101110 +00011100000000000001000000000101 +00000010101100111111000010100101 +00000011100000010100001101000100 +00010101011111101000000000010100 +01010100000000111111000000000000 +00000011100000000010001101001101 +00000010100000000100100000001110 +00101001100000000000000110101110 +00000011100000000001001101001100 +00000010100000000000100000001111 +00000010100000000000010000001110 +00101001100000000000000110001111 +00000000000101010000000110001101 +00101001100000000000001101001110 +00101000100000000000000110101100 +00000011010000000000100110001100 +01011011111111111111100110000000 +00011100000000000001000000100100 +00000010101000100110000010000100 +01010100000001011001010000000000 +00010101011111101000000000011001 +00000010100000000000110000001100 +00011100000000000001000000110111 +00000010101000101001001011110111 +00000011100001000011001010010100 +00101001100000000000001010001100 +00000000000101010000001011101101 +00000000000101010000000000001100 +00000011100001000100001100110001 +00000011100001000101001100110000 +00000010100011000000000000001111 +00000011010000000000000000000000 +00101001100000000000001000101100 +00101000100000000000001000001110 +00000010100000000000010110101101 +00000010100000000000010110001100 +00101001001111111111110110101110 +01011111111111111110110110001111 +00011100000000000001000000100101 +00000010101000010001000010100101 +00011100000000000001000000000100 +00000010101100000001000010000100 +01010100000001001100100000000000 +00000011100001000000001100101100 +00000010100000000000010000001101 +00101001100000000000000110001101 +00000011100001000001001100111001 +00010101011111101000000000001111 +00000010100110011000001100001110 +00101001100000000000001100100000 +00000011100001000010000111101101 +00000011010000000000000000000000 +00101010000000000000001100001100 +00000010100000000000011100011000 +00101001100000000000000110101100 +01011111111111111111011100001110 +00000011100001000000000111101100 +00000010100000000000100000001101 +00101001100000000000000110001101 +00000011100001000001000111101111 +00010101011111101000000000010000 +00000010100011000000001011101110 +00000011100001000010001000001101 +00101001100000000000000111100000 +00101010000000000000001011101100 +00000010100000000000011011110111 +00101001100000000000000110101100 +01011111111111111111011011101110 +00000011100000000010001000001101 +00000010100000001000100000001110 +00101001100000000000000110101110 +00000011100000000001001000001100 +00000010100000000000100000001111 +00000010100000000000010000001110 +00101001100000000000000110001111 +00000000000101010000000110001101 +00101001100000000000001000001110 +00101000100000000000000110101100 +00000011010000000000100110001100 +01011011111111111111100110000000 +00011100000000000001000000000100 +00000010100111011111000010000100 +01010100000001001001100000000000 +00011100000000000001000000000101 +00000010100111011100000010100101 +00011100000000000001000000000100 +00000010101011010110000010000100 +01010100000001000001010000000000 +00011100000000000001000000001101 +00000010100111011111000110101101 +00011100000000000001000000001110 +00000010100111010101000111001110 +00000000000101010000000000000101 +00000010100000001000000110110000 +00101010000000000000000111001100 +00101010000000000000000110101111 +00000010100000000000010110101101 +00000010100000000000010111001110 +00000000000101011011110110001100 +00000000000100101011000000001100 +00000000000100000011000010100101 +01011111111111111110011000001101 +01011100000000000011110010100000 +00011100000000000001000000000100 +00000010101011000110000010000100 +01010100000001001010110000000000 +00011100000000000001000000000100 +00000010101011010010000010000100 +01010100000001001010000000000000 +00101000100000000111000001100001 +00101000100000000110000001110111 +00101000100000000101000001111000 +00101000100000000100000001111001 +00101000100000000011000001111010 +00000000000101010000000000000100 +00000010100000001000000001100011 +01001100000000000000000000100000 +00011100000000000001000000000100 +00000010101010111101000010000100 +01010100000001000111010000000000 +01010011111111111100101111111111 +00000011010000000000000000000000 +00000011010000000000000000000000 00000011010000000000000000000000 -00000000000000000000000000000000 -00000000000000000000000000000000 -00000000000000000000000000000000 -00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 @@ -478,41 +478,157 @@ 00000011010000000000000000000000 00000011010000000000000000000000 00000011010000000000000000000000 -00010101011111100110000000001100 -00000000010000001001100010000100 -00000000000100000011000010000100 -00101000100000000101000010001100 -00000011010000000000010110001100 -01011100000000000001110110000000 -00101001100000000000000010000101 -00000011101111110100010000001100 -00101001100000000001000010000110 -00101001100000000010000010000111 -00101001100000000011000010001000 +00101010000000000000100010101100 +00101010000000000000010010101110 +00101010000000000000000010101111 +00101010000000000000110010101101 +00000000010000001010000111001110 +00000000010000001100000110001100 +00000000000101010011100110001100 +00000000010000001110000110101101 +00000000000101010011110110001100 +00000000000101010011010110001100 +00101001100000000000000010001100 +00101010000000000001010010101100 +00101010000000000001100010101110 +00101010000000000001000010101111 +00101010000000000001110010101101 +00000000010000001100000111001110 +00000000010000001010000110001100 +00000000000101010011100110001100 +00000000010000001110000110101101 +00000000000101010011110110001100 +00000000000101010011010110001100 +00101001100000000001000010001100 +00101010000000000010010010101100 +00101010000000000010100010101110 +00101010000000000010000010101111 +00101010000000000010110010101101 +00000000010000001100000111001110 +00000000010000001010000110001100 +00000000000101010011100110001100 +00000000010000001110000110101101 +00000000000101010011110110001100 +00000000000101010011010110001100 +00101001100000000010000010001100 +00101010000000000011010010101100 +00101010000000000011100010101110 +00101010000000000011000010101111 +00101010000000000011110010101101 +00000000010000001100000111001110 +00000000010000001010000110001100 +00000000000101010011100110001100 +00000000010000001110000110101101 +00000000000101010011110110001100 +00000000000101010011010110001100 +00101001100000000011000010001100 +00101010000000000100010010101100 +00101010000000000100100010101110 +00101010000000000100000010101111 +00101010000000000100110010101101 +00000000010000001100000111001110 +00000000010000001010000110001100 +00000000000101010011100110001100 +00000000010000001110000110101101 +00000000000101010011110110001100 +00000000000101010011010110001100 00101001100000000100000010001100 +00101010000000000101010010101100 +00101010000000000101100010101110 +00101010000000000101000010101111 +00101010000000000101110010101101 +00000000010000001100000111001110 +00000000010000001010000110001100 +00000000000101010011100110001100 +00000000010000001110000110101101 +00000000000101010011110110001100 +00000000000101010011010110001100 +00101001100000000101000010001100 +00101010000000000110010010101100 +00101010000000000110100010101110 +00101010000000000110000010101111 +00101010000000000110110010101101 +00000000010000001100000111001110 +00000000010000001010000110001100 +00000000000101010011100110001100 +00000000010000001110000110101101 +00000000000101010011110110001100 +00000000000101010011010110001100 +00101001100000000110000010001100 +00101010000000000111010010101100 +00101010000000000111100010101110 +00101010000000000111000010101111 +00101010000000000111110010101101 +00000000010000001010000110001100 +00000000010000001100000111001110 +00000000000101010011100110001100 +00000000010000001110000110101101 +00000000000101010011110110001100 +00000000000101010011010110001100 +00101001100000000111000010001100 01001100000000000000000000100000 00000011010000000000000000000000 00000011010000000000000000000000 00000011010000000000000000000000 -00000000000000000110000000001101 -00011100000000000001000000001110 -00000010101111010001000111001110 -00101000100000000000000111010000 -00010100000000000001111010001100 -00000010100011111010000000001111 -00000011100010010000000110001100 -00000000001000010011001000001110 -01011100000000000000100110000000 -00000000001010100000000000000111 -00000000001000010011100111100100 -01011100000000000000100111000000 -00000000001010100000000000000111 -00000000000111000011010010000100 +00000010101111111100000001100011 +00101001100000000010000001110111 +00000000000101010000000010110111 +00000000000101010000000010000101 +00011100000000000000111111100100 +00000010100111000000000010000100 +00101001100000000001000001111000 +00101001100000000000000001111001 +00101001100000000011000001100001 +00011100000000000000111111111001 +00000010100110111100001100111001 +01010100000000001011010000000000 +00000010100000001000001011111000 +00101010000000000000001011100101 +00000000000101010000001100100100 +00000010100000000000011011110111 +01010100000000001010000000000000 +01011111111111111111001011111000 +00101000100000000011000001100001 +00101000100000000010000001110111 +00101000100000000001000001111000 +00101000100000000000000001111001 +00011100000000000000111111100100 +00000010100111001001000010000100 +00000010100000000100000001100011 +01010000000000000111110000000000 +00000011010000000000000000000000 +00000011010000000000000000000000 +00010101011111101000000000001100 +00000011100000011100000110001101 +00101000100000000000000110110011 +00000011100000011101000110010010 +00000011100000011110000110010001 +00101001100000000000000010010011 +00101000100000000000001001010010 +00000011100000011111000110010000 +00000011100000100000000110001111 +00101001100000000001000010010010 +00101000100000000000001000110001 +00000011100000100001000110001110 +00000011100000100010000110001101 +00101001100000000010000010010001 +00101000100000000000001000010000 +00000011100000100011000110001100 +00101001100000000011000010010000 +00101000100000000000000111101111 +00101001100000000100000010001111 +00101000100000000000000111001110 +00101001100000000101000010001110 +00101000100000000000000110101101 +00101001100000000110000010001101 +00101000100000000000000110001100 +00101001100000000111000010001100 01001100000000000000000000100000 00000011010000000000000000000000 +00000011010000000000000000000000 00000010101111110000000001100011 00011100000000000001000000001100 -00101000100000101111000110001100 +00101000101111001111000110001100 00101001100000001001000001100101 00101001100000001010000001100110 00000000000101010000000010000101 @@ -550,7 +666,7 @@ 00101001100000001110000001101100 01010100001111110101100000000000 00011100000000000001000000001100 -00101000100000001110000110001100 +00101000101110101110000110001100 00101000100000000000000110001100 00101001100000000110000001100100 00101001010000011101000001100000 @@ -619,7 +735,7 @@ 01101000000100011010101000101110 00000000010000001000100111001110 00011100000000000000111111101101 -00000010100111001001000110101101 +00000010100101101000000110101101 00000000000100000011100110101110 00101000100000000000000111001110 01001100000000000000000111000000 @@ -850,10 +966,10 @@ 00101000100000000010000001101110 00000010100000010001110000001101 00011100000000000000111111111000 -00000010100011010001001100011000 +00000010100001110000001100011000 01100100000000000000110110101110 00011100000000000000111111111000 -00000010100011001111001100011000 +00000010100001101110001100011000 00000010101111011111110000001101 00000000000101001011011011110111 00000000000101010000000000010110 @@ -886,10 +1002,10 @@ 00101000100000000010000001101110 00000010100000010001110000001101 00011100000000000000111111111000 -00000010100010101111001100011000 +00000010100001001110001100011000 01100100000000000000110110101110 00011100000000000000111111111000 -00000010100010101101001100011000 +00000010100001001100001100011000 00000010101111011111110000001101 00000000000101001011011011110111 00000000000101010000000000001111 @@ -919,7 +1035,7 @@ 01100100000000000110010000010000 00000010100000000100000000000110 00011100000000000000111111110100 -00000010100011111100001010010100 +00000010100010011011001010010100 00000010100000000001110000000111 00101000100000100110000001110010 00101000100000100101000001110001 @@ -993,7 +1109,7 @@ 01100100000000000110010000011110 00000010100000000100000000010011 00011100000000000000111111101101 -00000010100010101110000110101101 +00000010100001001101000110101101 00000010100000000001110000010100 00101000100000100110000001110001 00101000100000100101000001110000 @@ -1019,7 +1135,7 @@ 01100100000000000101110000011110 00000010100000000100000000010010 00011100000000000000111111101101 -00000010100010010100000110101101 +00000010100000110011000110101101 00000010100000000001110000010011 00101000100000100110000001101111 00101000100000100101000001110000 @@ -1111,7 +1227,7 @@ 00101001100000010110000001101100 01010100000101000110100000000000 00011100000000000000111111101110 -00000010100001000000000111001110 +00000010101111100000000111001110 00101000100000000000000111000110 00101000100000000001000111000111 01010100011010001011000000000000 @@ -1127,12 +1243,12 @@ 00101000100000000010000001101101 00000010100000011000010000001110 00011100000000000000111111111100 -00000010101111000000001110011100 +00000010101101011111001110011100 01011000000000000000110110101110 00011100000000000000111111111100 -00000010101111000010001110011100 +00000010101101100001001110011100 00011100000000000000111111101110 -00000010100000101101000111001110 +00000010101111001101000111001110 00101000100000000001000111001111 00101000100000000000000111001110 00000010101111111111111101011111 @@ -1172,7 +1288,7 @@ 00101000100000010111000001101100 01011111111111111000010010000000 00011100000000000000111111111111 -00000010100000000111001111111111 +00000010101110100111001111111111 00101000100000000000001111100110 00101000100000000001001111100111 00101000100000001010000001100100 @@ -1517,8 +1633,8 @@ 00000010100000000001001101101101 00101001100000000100000001101101 00010100000000000000000011101110 -00011100000000000000111111101101 -00000010101000111001000110101101 +00011100000000000000111111001101 +00000010100111011000000110101101 00000011101000001100000111001110 00101001100000010001000001101101 00000010100000011110000000001101 @@ -1542,8 +1658,8 @@ 00000000000101010000000000011101 00000000000101010000000000011011 00000000000101010000000000011111 -00011100000000000000111111111000 -00000010101000101010001100011000 +00011100000000000000111111011000 +00000010100111001001001100011000 01010011111101011110011111111111 00000010101111111111110000001110 00101001100000001010000001101100 @@ -1596,7 +1712,7 @@ 00101010000000000000001101111111 01010011111111111110111111111111 00011100000000000000111111001101 -00000010100111110000000110101101 +00000010100110001111000110101101 00101001100000010001000001101101 00000011010000001000001011101110 01011000000000000110000111000000 @@ -1621,7 +1737,7 @@ 00000010100000000000100000001110 01010011111111100001101111111111 00011100000000000000111111001101 -00000010100111010010000110101101 +00000010100101110001000110101101 01010011111111111001111111111111 00000010100000000001001101101101 00101001100000000100000001101101 @@ -1768,7 +1884,7 @@ 00000010100000100111000001110011 00000010100000000001110000000111 00011100000000000000111111010100 -00000010100110101011001010010100 +00000010100101001010001010010100 00000010100000000100000000000110 00000010101111111100001000010000 00000000000101010000001001101100 @@ -1787,7 +1903,7 @@ 00000010100000100111000001110010 00000010100000000001110000010100 00011100000000000000111111001101 -00000010100110010100000110101101 +00000010100100110011000110101101 00000010100000000100000000010011 00000010101111111100001111011110 00000000000101010000001001001100 @@ -1804,7 +1920,7 @@ 00000010100000100111000001110001 00000010100000000001110000010011 00011100000000000000111111001101 -00000010100110000011000110101101 +00000010100100100010000110101101 00000010100000000100000000010010 00000010101111111100001111011110 00000000000101010000001000101100 @@ -1823,7 +1939,7 @@ 00101000100000000010000001101100 01011100000000010111010010000000 00011100000000000000111111001101 -00000010100100010100000110101101 +00000010100010110011000110101101 00101001100000000000000110001101 00000010100000000000010000001101 00101001100000000001000110001101 @@ -1867,7 +1983,7 @@ 01100100000000000100100000011000 00000010100000000100000000011011 00011100000000000000111111011010 -00000010100101000100001101011010 +00000010100011100011001101011010 00000010100000000001110000011101 00101000100000100110000001101110 00101000100000100101000001101101 @@ -1917,7 +2033,7 @@ 00101000100000011110000001101101 01100000000000010101010000001101 00011100000000000000111111001101 -00000010100010110110000110101101 +00000010100001010101000110101101 00101001100000000000000110001101 00000010100000000000010000001101 00101001100000000001000110001101 @@ -1963,7 +2079,7 @@ 00000000000101010000000110001110 00000010100000000100000000011101 00011100000000000000111111011011 -00000010100011100100001101111011 +00000010100010000011001101111011 00000010100000000001110000011110 00101000100000100110000001101111 00101000100000100101000001101101 @@ -2025,7 +2141,7 @@ 01100100000000000101110000011010 00000010100000000100000000001110 00011100000000000000111111011110 -00000010100010100110001111011110 +00000010100001000101001111011110 00000010100000000001110000010001 00101000100000100110000001101111 00101000100000100101000001101101 @@ -2052,7 +2168,7 @@ 00000010100000000001110000011110 00101001100000000010000001101101 00011100000000000000111111011111 -00000010100010001011001111111111 +00000010100000101010001111111111 01011100000000011000001101100000 01011100000000011000001110100000 00000000000100000111001100001101 @@ -2113,7 +2229,7 @@ 01100111111111000111000000011000 00000010100000000100000000011011 00011100000000000000111111011010 -00000010100001001110001101011010 +00000010101111101101001101011010 00000010100000000001110000011101 00101000100000100110000001101110 00101000100000100101000001101101 @@ -2327,7 +2443,7 @@ 01100111111111111100010000011011 00000010100000000100000000011101 00011100000000000000111111011000 -00000010101101111000001100011000 +00000010101100010111001100011000 00000010100000000001110000011110 00101000100000100110000001101100 00101000100000100101000001101101 @@ -2366,7 +2482,7 @@ 01100111111110001000010000010111 00000010100000000100000000011010 00011100000000000000111111011000 -00000010101101010101001100011000 +00000010101011110100001100011000 00000010100000000001110000011011 00101000100000100110000001101110 00101000100000100101000001101101 @@ -2444,7 +2560,7 @@ 00000000000101010000000010101110 01011100000000000010111000000000 00011100000000000000111111001100 -00000010101100010001000110001100 +00000010101010110001000110001100 00101000100000000000000110000110 00101000100000000001000110000111 01010100010100111101110000000000 @@ -2488,7 +2604,7 @@ 00000010101111111111000010001101 00101001100000000000000010000000 00011100000000000000111111001110 -00101000100010000000000111001110 +00101000100000100000000111001110 00101000100000000000000111001100 01011100000000000001000110000000 00101001100000000000000010001100 @@ -2514,7 +2630,7 @@ 01001100000000000000000000100000 01011100000000000001100110001101 00011100000000000000111111001100 -00101000100001011000000110001100 +00101000101111111000000110001100 00000010100000000011000000001101 00101001100000000000000110001101 01001100000000000000000000100000 @@ -2544,7 +2660,7 @@ 00000010101111111110000000001100 00000000000100000101110010010111 00011100000000000000111111011010 -00000010100001001011001101011010 +00000010101111101011001101011010 00000000000101001011001100011000 00101001100000000000001101010111 00000010101111111111001100011000 @@ -2556,7 +2672,7 @@ 00000000000100000110011011110111 00101001100000000000001101010111 00011100000000000000111111001100 -00000010100001000000000110001100 +00000010101111100000000110001100 00101000100000000000000110001101 01011111111111111000100110100000 00101001100000000000000110011000 @@ -2564,7 +2680,7 @@ 00000010101111111100000001100011 00101001100000000010000001110111 00011100000000000000111111001100 -00000010100000110111000110001100 +00000010101111010111000110001100 00101000100000000000000010010111 00101000100000000000000110001100 00101001100000000000000001111001 @@ -2607,7 +2723,7 @@ 00000010101111111010110000001100 01101100000000000011100110000100 00011100000000000000111111001100 -00101000101111111011000110001100 +00101000101110011011000110001100 00000010100000000011000000001101 00101001100000000000000110001101 00000000000101010000000000010111 @@ -2624,7 +2740,7 @@ 00000000000101001001001100011000 00000010100000000010001100011001 00011100000000000000111111011010 -00000010101111111101001101011010 +00000010101110011101001101011010 00101000100000000000001101010111 01011100000000000001111011100000 00000000000101010000001100100100 @@ -2816,7 +2932,7 @@ 01011000000011111111011101000000 00101000100000000111000001101101 00011100000000000000111110101100 -00000010100110100010000110001100 +00000010100101000010000110001100 00101001100000000001000001101100 01011000000000000001000110100000 00000010100000000000110110001100 @@ -2852,7 +2968,7 @@ 00101001100000000000000110101100 00101000100000000111000001101101 00011100000000000000111110101100 -00000010100100001111000110001100 +00000010100010101110000110001100 00101001100000000001000001101100 01011011111111111000000110100000 00101000100000000111000001101110 @@ -2881,17 +2997,17 @@ 00000010101100000000011100011000 00101001100000010010000001100000 00011100000000000000111110101100 -00000010100101100010000110001100 +00000010100100000010000110001100 00101000100000000000000110000110 00101000100000000001000110000111 01010100010100111011100000000000 00011100000000000000111110101100 -00000010100101011111000110001100 +00000010100011111111000110001100 00101000100000000000000110000110 00101000100000000001000110000111 01010100010011001111010000000000 00011100000000000000111110101100 -00000010100101011100000110001100 +00000010100011111100000110001100 00101000100000000000000110000110 00101000100000000001000110000111 01010100001110000111000000000000 @@ -2900,7 +3016,7 @@ 00000000000101010000000010111011 01010100010111011001000000000000 00011100000000000000111110101100 -00000010100101010101000110001100 +00000010100011110101000110001100 00101000100000000000000110000110 00101000100000000001000110000111 01010100010011001011110000000000 @@ -2932,7 +3048,7 @@ 01101000000000000011010110010110 00000000010000001000111011001101 00011100000000000000111111001100 -00101000101010110111000110001100 +00101000101001010111000110001100 00000000000100000011010110001100 00101000100000000000000110000110 00101000100000000001000110000111 @@ -3052,16 +3168,16 @@ 00000011010000000011111011001100 00000000010000001000110110001101 00000000010010001001001011011101 -00011100000000000000111111001100 -00101000101000111110000110001100 +00011100000000000000111110101100 +00101000100111011110000110001100 00000000000100000011010110001100 00000011010000000100001110101110 00101000100000000001000110001101 00000010100000000000100000011000 00101000100000000000000110001100 01011000000000000100000111000000 -00011100000000000000111111001110 -00101000101000111000000111001110 +00011100000000000000111110101110 +00101000100111011000000111001110 00101000100000001000000111000110 00101000100000001001000111000111 00101000100000001011000001100100 @@ -3075,8 +3191,8 @@ 00000000000101010000000010011001 00000000000101010000000010111100 00000010100000000000110000011000 -00011100000000000000111111011110 -00101000101000101001001111011110 +00011100000000000000111110111110 +00101000100111001001001111011110 01010000000000000011010000000000 00000011010000000000011110101111 01011000000000000010010111100000 @@ -3104,16 +3220,16 @@ 00000000000100010101100000011101 00000011010000000011111110101100 00000000010000001000110110001101 -00011100000000000000111111001100 -00101000101000001010000110001100 +00011100000000000000111110101100 +00101000100110101010000110001100 00000000000100000011010110001100 00101000100000000000000110000110 00101000100000000001000110000111 00101000100000001011000001100100 00101000100000001110000001100101 00000000010010001001001110111101 -00011100000000000000111111011110 -00101000101000000100001111011110 +00011100000000000000111110111110 +00101000100110100100001111011110 01010100010010010111000000000000 00000000000101010000000010011001 00000000000101010000000010111100 @@ -3123,7 +3239,7 @@ 00101000100000001111000001101100 01011000000000011100110110000000 00011100000000000000111110101110 -00000010100001111000000111001110 +00000010100000011000000111001110 00101000100000000000000111000110 00101000100000000001000111000111 00000000000101010000001100100100 @@ -3135,7 +3251,7 @@ 00101000100000000100000001101100 01100100000000001110010000001100 00011100000000000000111110101110 -00000010100001101110000111001110 +00000010100000001110000111001110 00101000100000001000000001101101 00101000100000000000000111000110 00101000100000000001000111000111 @@ -3160,7 +3276,7 @@ 00000000000101010000000110100111 01010100010010001100000000000000 00011100000000000000111110101111 -00000010100001010111000111101111 +00000010101111110111000111101111 00101000100000000000000111100110 00101000100000000001000111100111 01010100001101000011110000000000 @@ -3168,7 +3284,7 @@ 00000000000100000001011100011000 01011100000000010011001111000000 00011100000000000000111110101100 -00000010100001010001000110001100 +00000010101111110001000110001100 00101000100000010001000001101110 00101000100000001100000001101101 00101000100000000000000110000110 @@ -3198,7 +3314,7 @@ 01100000000001000010110110110110 00000000010000001000111011001101 00011100000000000000111110101100 -00101000100110101101000110001100 +00101000100101001101000110001100 00000000000100000011010110001100 00101000100000000000000110011010 00101000100000000001000110011011 @@ -3207,7 +3323,7 @@ 01100000000000101100000000011111 01011100000001110010001111100000 00011100000000000000111110101100 -00000010100000101010000110001100 +00000010101111001010000110001100 00101000100000000000000110000110 00101000100000000001000110000111 00000000000101010000001101000100 @@ -3249,23 +3365,23 @@ 00101001100000010001000001101100 00101000100000000110000001101100 00011100000000000000111110101101 -00101000100101111010000110101101 +00101000100100011010000110101101 00000000000100000011100110101101 00101000100000000000000110100110 00101000100000000001000110100111 01011000000000001111110110000000 00011100000000000000111110101100 -00000010101111100100000110001100 +00000010101110000100000110001100 00101000100000000000000110000100 00101000100000000001000110000101 00101001100000001100000001111000 00011100000000000000111110111000 -00000010101111110001001100011000 +00000010101110010001001100011000 01010100001111000000010000000000 00101000100000001100000001101111 00000000000101010000001100100110 00011100000000000000111110111001 -00000010101111101010001100111001 +00000010101110001010001100111001 00000000000101010000000111100111 01010100010011011011110000000000 00101000100000000001000001111110 @@ -3341,7 +3457,7 @@ 00000000000101010000000010111001 01011100000000001000011110001100 00011100000000000000111110111100 -00000010101110001110001110011100 +00000010101100101110001110011100 00101000100000000000001110000110 00101000100000000001001110000111 00101000100000001100000001100100 @@ -3373,7 +3489,7 @@ 00000000000101010000000111011110 01010011111111111110101111111111 00011100000000000000111110101100 -00000010101110000000000110001100 +00000010101100100000000110001100 00101000100000000000000110000110 00101000100000000001000110000111 01010100010001010101100000000000 @@ -3450,7 +3566,7 @@ 00000000000101010000000110011110 01010011111111111100111111111111 00011100000000000000111110101100 -00000010101100110011000110001100 +00000010101011010011000110001100 00101000100000000000000110000110 00101000100000000001000110000111 00000010100000000000011100011000 @@ -3836,7 +3952,7 @@ 01010011111111010010101111111111 00101000100000000111000001101101 00011100000000000000111110001100 -00000010100110100011000110001100 +00000010100101000011000110001100 00101001100000000001000001101100 00000010100000000010000110001100 01011111111100000001010110100000 @@ -3869,13 +3985,13 @@ 00000010101111111100000001100011 00101001100000000010000001110111 00011100000000000000111110110111 -00000010101100100100001011110111 +00000010101011000100001011110111 00101000100000000000001011100100 00101001100000000011000001100001 01011000000000000001100010000000 01010111111010100100111111111111 00011100000000000000111110101100 -00000010101100011101000110001100 +00000010101010111101000110001100 00101001100000000000001011100000 00101001100000000000000110000000 00101000100000000011000001100001 @@ -3883,7 +3999,7 @@ 00000010100000000100000001100011 01001100000000000000000000100000 00011100000000000000111110101100 -00000010101100010100000110001100 +00000010101010110100000110001100 00101000100000000000000110001101 01011100000000000001100110100000 00000010100000000000010000001101 @@ -3894,7 +4010,7 @@ 00000000000101010000000000000100 01001100000000000000000000100000 00011100000000000000111110101100 -00000010101100001010000110001100 +00000010101010101010000110001100 00101000100000000000000110001101 01100100000000001000000110100100 00000010101111111100000001100011 @@ -3908,7 +4024,7 @@ 00000000000101010000000000001100 01011100000000000011110010000000 00011100000000000000111110101100 -00000010101011111101000110001100 +00000010101010011101000110001100 00101000100000000000000110000100 00000000000101010000000110011001 01011000000000000000100010000000 @@ -3919,7 +4035,7 @@ 01011000000000000000100010000000 00101001100000000000001100010111 00011100000000000000111110101100 -00000010101011110010000110001100 +00000010101010010010000110001100 00101000100000000000000110001100 00101000100000000011000001100001 00101000100000000010000001110111 @@ -3929,7 +4045,7 @@ 00000010100000000100000001100011 01001100000000000000000000100000 00011100000000000000111110101100 -00000010101011101000000110001100 +00000010101010001000000110001100 00101000100000000000000110001100 00000000000101010000000110000100 01001100000000000000000000100000 @@ -4243,7 +4359,7 @@ 00000010101111111111110110001100 00000000010000001000100110001100 00011100000000000000111110001101 -00000010100000100000000110101101 +00000010101111000000000110101101 00000000000100000011000110101100 00101000100000000000000110000101 00000000000101010000000000000110 @@ -4554,7 +4670,7 @@ 00000010100000000000100000000100 01010000000000000000010000000000 00011100000000000000111110001110 -00000010100001111000000111001110 +00000010100000011000000111001110 00000000000101010000000000001100 00000000000101010000000111001101 00000010100000001000000000010000 @@ -4624,48 +4740,48 @@ 00101001001111111111110110000000 01010011111111111111001111111111 00011100000000000000111110000100 -00101000100000101001000010000100 +00101000101111001001000010000100 00000010100000111100000010000100 01001100000000000000000000100000 00000000000101010000000010001100 00011100000000000000111110001101 -00000010101110101110000110101101 +00000010101101001101000110101101 00101000100000000000000110100100 01100100000000000011000110000000 00011100000000000000111110001110 -00101000100000011101000111001110 +00101000101110111101000111001110 00000000000100010011100010001110 00000000000100010011000000001111 01101100000000000010110111001111 00011100000000000000111110001100 -00101000100000001100000110001100 +00101000101110101100000110001100 00000010100000000011000000001101 00101001100000000000000110001101 00000010101111111111110000000100 01001100000000000000000000100000 00011100000000000000111110001110 -00101000100000001111000111001110 +00101000101110101111000111001110 00000000000100010001000111001110 01101011111111111101110111001100 00000000000100000011000010001100 00101001100000000000000110101100 01001100000000000000000000100000 00011100000000000000111110001100 -00101000100000000110000110001100 +00101000101110100110000110001100 00101001100000001000000010001100 00011100000000000000111110001100 -00101000100000000000000110001100 +00101000101110100000000110001100 00101001100000001001000010001100 00011100000000000000111110001100 -00101000101111111111000110001100 +00101000101110011111000110001100 00101001100000011000000010001100 00010101111111111111111100001100 00000000000101010011000010100101 00011100000000000000111110001100 -00101000101111110010000110001100 +00101000101110010010000110001100 00101001100000001010000010001100 00011100000000000000111110001100 -00101000101111111001000110001100 +00101000101110011001000110001100 00101001100000000000000010000000 00101001100000000001000010000000 00101001100000000010000010000000 @@ -4681,28 +4797,28 @@ 00101001100000001011000010001100 01001100000000000000000000100000 00011100000000000000111110000101 -00000010101101111110000010100101 +00000010101100011101000010100101 00011100000000000000111110000100 -00101000101111100001000010000100 +00101000101110000001000010000100 01010000000000010000110000000000 00011100000000000000111110001100 -00000010101101111000000110001100 +00000010101100010111000110001100 00101000100000000000000110000100 00000010101111111100000001100011 00101001100000000010000001110111 00101001100000000011000001100001 00011100000000000000111110010111 -00000010100001010001001011110111 +00000010101111110001001011110111 01011000000000000000100010010111 01010100000001110000010000000000 00011100000000000000111110001100 -00000010101101101101000110001100 +00000010101100001100000110001100 00101000100000000000000110000100 00000010100000011100001011101100 01011000000000000000100010001100 01010100000001101110110000000000 00011100000000000000111110001100 -00000010101101100110000110001100 +00000010101100000101000110001100 00101000100000000000000110000100 00000010100000111000001011110111 01011000000000000001010010010111 @@ -4716,18 +4832,18 @@ 01001100000000000000000000100000 00000010101111111100000001100011 00011100000000000000111110001100 -00000010100010001101000110001100 +00000010100000101101000110001100 00011100000000000000000000001101 00000010101111011011000110101101 00000000000101010000000000000110 00000010100000000001000000000101 00011100000000000000111110000100 -00000010100000110011000010000100 +00000010101111010011000010000100 00101001100000000011000001100001 00101001100000000000000110001101 01010111111111101101011111111111 00011100000000000000111110001101 -00000010100000101110000110101101 +00000010101111001110000110101101 00000010100000000000010000000110 00000010100000000010010000000101 00000010100000011100000110100100 @@ -4739,14 +4855,14 @@ 00000010100000000100000001100011 01010011111111101010011111111111 00011100000000000000111110001100 -00000010100000100000000110001100 +00000010101111000000000110001100 00101000100000000000000110001101 01011100000000000010010110100000 00011100000000000000000000001101 00000010101111000111000110101101 00101001100000000000000110001101 00011100000000000000111110001100 -00000010100001101111000110001100 +00000010100000001111000110001100 00101000100000000000000110001100 01011100000000000000100110000000 01010011111111110111011111111111 @@ -4860,7 +4976,7 @@ 00101000010000000011100010000100 01010000000011100111000000000000 00011100000000000000111110001100 -00101000101100111000000110001100 +00101000101011011000000110001100 00101000100000000000000110001100 00000010101111111100000001100011 00101001100000000010000001110111 @@ -4874,7 +4990,7 @@ 00000011010000000100000110001101 01011100000000000010010110100000 00011100000000000000111110001101 -00101000101100100000000110101101 +00101000101011000000000110101101 00000010100000000010010000001110 00101001100000000000000110101110 00000011100000010000000110001100 @@ -4989,7 +5105,7 @@ 01011100000000000000100110000000 01010011110110101010111111111111 00011100000000000000111110001100 -00101000101010101101000110001100 +00101000101001001101000110001100 00000010100000000011000000001101 00101001100000000000000110001101 00000000000101010000000000000100 @@ -5017,7 +5133,7 @@ 00101000100000001010001011101110 01011011111111111110000111000000 00011100000000000000111110011000 -00101000101010010001001100011000 +00101000101000110001001100011000 00000000010001001011000110001101 00101000100000000000001100011001 00000011010000000000010110101101 @@ -5144,13 +5260,13 @@ 00000000000100010001001100011000 01010011111111111100111111111111 01011100000000000001100010000000 -00011100000000000000111110000101 -00101000101000011110000010100101 +00011100000000000000111101100101 +00101000100110111110000010100101 00011100000000000000000000000100 00000010101111111101000010000100 01010011111110011100111111111111 -00011100000000000000111110001100 -00101000101000010110000110001100 +00011100000000000000111101101100 +00101000100110110110000110001100 00101000100000000000000110001100 00000010101111111100000001100011 00101001100000000010000001110111 @@ -5321,7 +5437,7 @@ 00101000100000000011000001101110 01011100000000000100000010000000 00011100000000000000111101101100 -00101000100101100001000110001100 +00101000100100000001000110001100 00000010100000000011000000001101 00101001100000000000000110001101 00101010010000000011001011101100 @@ -5556,7 +5672,7 @@ 00000010101111111010110000001100 01101100000000000100010110000101 00011100000000000000111101101100 -00101000100001110110000110001100 +00101000100000010110000110001100 00000010100000000011000000001101 00101001100000000000000110001101 00000000000101010000000000011010 @@ -5585,7 +5701,7 @@ 01010111110100001100111111111111 01011100000000000110010010000000 00011100000000000000111101101101 -00101000100001100111000110101101 +00101000100000000111000110101101 00101000100000000000000110101100 01011000000000000011000110000000 01011100000000001000111110001100 @@ -5655,7 +5771,7 @@ 00000010100000111111110000001100 01101100000000000001110110000101 00011100000000000000111101101100 -00101000100000010011000110001100 +00101000101110110011000110001100 00000010100000100010100000001101 00101001100000000000000110001101 00000010101111111111110000000100 @@ -5691,7 +5807,7 @@ 00000010100000000000100000001100 01101100000000000001110110000100 00011100000000000000111101101100 -00101000101111101111000110001100 +00101000101110001111000110001100 00000010100000000010010000001101 00101001100000000000000110001101 00000010101111111111110000000100 @@ -5701,7 +5817,7 @@ 00000010100000000000100000001100 01101000000000000110000110000100 00011100000000000000111101101100 -00101000101111100100000110001100 +00101000101110000100000110001100 00101000100000000000000110001100 00000010101111111000000001100011 00101001100000000110000001110111 @@ -5724,7 +5840,7 @@ 01010100000000011010010000000000 01010011111111111110001111111111 00011100000000000000111101101100 -00101000101111001110000110001100 +00101000101101101110000110001100 00000010100000000010010000001101 00101001100000000000000110001101 00000010101111111111110000000100 @@ -5747,7 +5863,7 @@ 01001100000000000000000000100000 01011100000000000111100010000000 00011100000000000000111101101100 -00101000101110110110000110001100 +00101000101101010110000110001100 00101000100000000000000110001100 01011000000000001000000110000000 00000010101111111000000001100011 @@ -5776,14 +5892,14 @@ 00000010100000000000011011110111 01010011111111111100101111111111 00011100000000000000111101101100 -00101000101110011010000110001100 +00101000101100111010000110001100 00000010100000000010010000001101 00101001100000000000000110001101 00000010101111111111110000000100 01001100000000000000000000100000 01001100000000000000000000100000 00011100000000000000111101101100 -00101000101110010011000110001100 +00101000101100110011000110001100 00000010100000000010010000001101 00101001100000000000000110001101 00000010101111111111110000000100 @@ -5795,7 +5911,7 @@ 00000000000101010000000000000100 01001100000000000000000000100000 00011100000000000000111101101100 -00101000101110000111000110001100 +00101000101100100111000110001100 00000010100000000010010000001101 00101001100000000000000110001101 00000010101111111111110000000100 @@ -5803,7 +5919,7 @@ 00000010100000000000100000001100 01101100000000000001110110000100 00011100000000000000111101101100 -00101000101101111111000110001100 +00101000101100011111000110001100 00000010100000000010010000001101 00101001100000000000000110001101 00000010101111111111110000000100 @@ -5813,7 +5929,7 @@ 00000010100000000000100000001100 01101100000000000010000110000100 00011100000000000000111101101100 -00101000101101110101000110001100 +00101000101100010101000110001100 00000010100000000010010000001101 00101001100000000000000110001101 00000010101111111111110000000100 @@ -5822,12 +5938,12 @@ 00000000000101010000000000000100 01010011111111111111011111111111 00011100000000000000111101101100 -00000010101101101000000110001100 +00000010101100000111000110001100 00101000100000000000000110001100 00101001000000000000000110000100 01001100000000000000000000100000 00011100000000000000111101101100 -00000010101011111111000110001100 +00000010101010011110000110001100 00101000100000000000000110001101 00000010100000000001010110101110 00101010000000000000000111001100 @@ -5836,7 +5952,7 @@ 00101001000000000000000110100100 01001100000000000000000000100000 00011100000000000000111101101100 -00000010101011110110000110001100 +00000010101010010101000110001100 00101000100000000000000110001101 00000010101111111100000001100011 00000010100000000001010110101110 @@ -5865,7 +5981,7 @@ 00000000010001001010000011010010 00000010100000000010000000001111 00011100000000000000111101101100 -00101000101101001100000110001100 +00101000101011101100000110001100 00000000000100000100100110001100 00101010000000000000000110001100 00000010100000001000000000010000 @@ -5936,7 +6052,7 @@ 00000000010001001110000111010010 00000010100000000110000000001111 00011100000000000000111101110000 -00101000101100000101001000010000 +00101000101010100101001000010000 00000000000100000100101000010000 00101010000000000000001000010000 00000010100000001000000000001100 @@ -6000,7 +6116,7 @@ 00000000010001001110000011101110 00000010100000000110000000010001 00011100000000000000111101101111 -00101000101011000101000111101111 +00101000101001100101000111101111 00000000000100000011100111101111 00101010000000000000000111101110 00000010100000001000000000010000 @@ -6202,7 +6318,7 @@ 00000000010001001110000011010010 00000010100000000110000000001111 00011100000000000000111101010000 -00101000100111111011001000010000 +00101000100110011011001000010000 00000000000100000100101000010000 00101010000000000000001000010000 00000010100000001000000000001110 @@ -6268,7 +6384,7 @@ 00000000010001001110000110110001 00000010100000000110000000001111 00011100000000000000111101010000 -00101000100110111001001000010000 +00101000100101011001001000010000 00000000000100000100011000010000 00101010000000000000001000010001 00000010100000001000000000001110 @@ -6320,7 +6436,7 @@ 00000000010001001110000011110001 00000010100000000110000000001110 00011100000000000000111101001100 -00101000100110000101000110001100 +00101000100100100101000110001100 00000000000100000100010110001100 00101010000000000000000110001100 00000010100000001000000000001111 @@ -7153,7 +7269,7 @@ 00000000000101011110001110110000 01101000000000101001010110011011 00011100000000000000111100101111 -00000010100101110000000111101111 +00000010100100010000000111101111 00000000010000001000101101101110 00000000000100000011100111101110 00101000100000000000000111001100 @@ -7866,7 +7982,7 @@ 00000010100000000000011101110001 01101000000000100100000110011001 00011100000000000000111100101110 -00000010101010110111000111001110 +00000010101001010111000111001110 00000000010000001000101100111001 00000000000100000110010111011001 00101000100000000000001100101100 @@ -9243,16 +9359,16 @@ 00000010100000111111110000001100 00000010100000001000000000001101 01101000000000000010000110000100 -00011100000000000000111100001100 -00101000101000011001000110001100 +00011100000000000000111011101100 +00101000100110111001000110001100 00000000000100000001000110001100 00101010000000000000000110000100 00000000000100010001000110100100 01001100000000000000000000100000 00000011010000000000000000000000 00000000010001001010000010000100 -00011100000000000000111100001100 -00101000101000010001000110001100 +00011100000000000000111011101100 +00101000100110110001000110001100 00000000000100000001000110001100 00101010000000000000000110000100 00000010100000000110000000001101 @@ -9261,8 +9377,8 @@ 00010100000000100000000000001100 01101000000000000010010010001100 00000000010001001110000010000100 -00011100000000000000111100001100 -00101000101000000111000110001100 +00011100000000000000111011101100 +00101000100110100111000110001100 00000000000100000001000110001100 00101010000000000000000110000100 00000010100000000010000000001101 @@ -9270,7 +9386,7 @@ 01001100000000000000000000100000 00000000010001001100000010000100 00011100000000000000111011101100 -00101000100111111111000110001100 +00101000100110011111000110001100 00000000000100000001000110001100 00101010000000000000000110000100 00000010100000000100000000001101 @@ -9598,42 +9714,61 @@ 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 -01001101010101000100000101001101 -01010011010111110100110001010101 -01010100010100100100000101010100 -00000000000000000000000000001010 -01001101010101000100000101001101 -01000011010111110100110001010101 -00110010001100110100001101010010 -00111000001100000010010100111101 -00000000000010100111100001101100 -01000101010011010100100101010100 -01001111010100100101000001011111 -01010101010001110100111101001100 -01101100001001010011110101000101 -00000000000000000000101001110101 -01000101010011010100100101010100 -01001111010011110100110001011111 -01101100001001010011110101010000 -00000000000000000000101001110101 -01000101010011010100100101010100 -01001111010011110100110001011111 -01000101010100000101111101010000 -01101100001001010011110101010010 -00000000000000000000101001110101 -01000101010011010100100101010100 -01001001010100000100010101011111 -01010101010001110100111101001100 -01101100001001010011110101000101 -00000000000000000000101001110101 -01000101010011010100100101010100 -01010100010011110101010001011111 -00100101001111010100110001000001 -00000000000010100111010101101100 -01001101010101000100000101001101 -01000100010111110100110001010101 -00001010010001010100111001001111 +00000000000000000111001100100101 +01111000001100100011000000100101 00000000000000000000000000000000 +01000101010010110100110001001101 +01010100010100110101111101001101 +00001010010101000101001001000001 +00000000000000000000000000000000 +00110010001100110100101101000101 +00000000000000000000000000111101 +01000101010111110101001101010011 +00000000001111010100001101001110 +01000100010111110101001101010011 +00000000001111010100001101000101 +01000101010010110100110001001101 +01000101010100100101111101001101 +01010100010011000101010101010011 +01010011010000010101000000111101 +00000000000000000000101001010011 +01000101010010110100110001001101 +01000101010100100101111101001101 +01010100010011000101010101010011 +01001001010000010100011000111101 +00100101001010000010000001001100 +01111001011000100010000001100100 +01101101001000000110010101110100 +01100001011011010111001101101001 +00101001011010000110001101110100 +00000000000000000000000000001010 +01000101010010110100110001001101 +01001111010001000101111101001101 +00000000000010100100010101001110 +10100011101000101010000110100000 +10100111101001101010010110100100 +10101011101010101010100110101000 +10101111101011101010110110101100 +10110011101100101011000110110000 +10110111101101101011010110110100 +10111011101110101011100110111000 +10111111101111101011110110111100 +00100011001000100010000100100000 +00100111001001100010010100100100 +00101011001010100010100100101000 +00101111001011100010110100101100 +00110011001100100011000100110000 +00110111001101100011010100110100 +00111011001110100011100100111000 +00111111001111100011110100111100 +00000011000000100000000100000000 +00000111000001100000010100000100 +00001011000010100000100100001000 +00001111000011100000110100001100 +00010011000100100001000100010000 +00010111000101100001010100010100 +00011011000110100001100100011000 +00011111000111100001110100011100 00000000010001100100111001001001 00000000011001100110111001101001 00000000010011100100000101001110 @@ -9651,97 +9786,97 @@ 01101100011101010110111000101000 00000000000000000010100101101100 00000000000000000000000000110000 -00011100000000000000101001101000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000000101001111100 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000000101000011000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000000101010000100 -00011100000000000000101010100100 -00011100000000000001101101010000 -00011100000000000000101010011100 -00011100000000000000101010101100 -00011100000000000001101101010000 -00011100000000000000101100010100 -00011100000000000000101100011100 -00011100000000000000101100011100 -00011100000000000000101100011100 -00011100000000000000101100011100 -00011100000000000000101100011100 -00011100000000000000101100011100 -00011100000000000000101100011100 -00011100000000000000101100011100 -00011100000000000000101100011100 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000000110010101000 -00011100000000000001101101010000 -00011100000000000000101110110100 +00011100000000000000110000111000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000000110001001100 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 00011100000000000000101111101000 -00011100000000000000110010101000 -00011100000000000000110010101000 -00011100000000000000110010101000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000000101101011100 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001011100111000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001011111101100 -00011100000000000001101101010000 -00011100000000000001100010001000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001100011110100 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000000110010101000 -00011100000000000001101101010000 -00011100000000000000101110110100 -00011100000000000000101111101100 -00011100000000000000110010101000 -00011100000000000000110010101000 -00011100000000000000110010101000 -00011100000000000000101101100100 -00011100000000000000101111101100 -00011100000000000000101110100100 -00011100000000000001101101010000 -00011100000000000000101110001100 -00011100000000000001101101010000 -00011100000000000001011011001100 -00011100000000000001011100111100 -00011100000000000001011110110000 -00011100000000000000101110100100 -00011100000000000001101101010000 -00011100000000000001011111101100 -00011100000000000000101001100000 -00011100000000000001100010001100 -00011100000000000001101101010000 -00011100000000000001101101010000 -00011100000000000001100101011000 -00011100000000000001101101010000 -00011100000000000000101001100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000000110001010100 +00011100000000000000110001110100 +00011100000000000001110100100000 +00011100000000000000110001101100 +00011100000000000000110001111100 +00011100000000000001110100100000 +00011100000000000000110011100100 +00011100000000000000110011101100 +00011100000000000000110011101100 +00011100000000000000110011101100 +00011100000000000000110011101100 +00011100000000000000110011101100 +00011100000000000000110011101100 +00011100000000000000110011101100 +00011100000000000000110011101100 +00011100000000000000110011101100 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000000111001111000 +00011100000000000001110100100000 +00011100000000000000110110000100 +00011100000000000000110110111000 +00011100000000000000111001111000 +00011100000000000000111001111000 +00011100000000000000111001111000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000000110100101100 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001100100001000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001100110111100 +00011100000000000001110100100000 +00011100000000000001101001011000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001101011000100 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000000111001111000 +00011100000000000001110100100000 +00011100000000000000110110000100 +00011100000000000000110110111100 +00011100000000000000111001111000 +00011100000000000000111001111000 +00011100000000000000111001111000 +00011100000000000000110100110100 +00011100000000000000110110111100 +00011100000000000000110101110100 +00011100000000000001110100100000 +00011100000000000000110101011100 +00011100000000000001110100100000 +00011100000000000001100010011100 +00011100000000000001100100001100 +00011100000000000001100110000000 +00011100000000000000110101110100 +00011100000000000001110100100000 +00011100000000000001100110111100 +00011100000000000000110000110000 +00011100000000000001101001011100 +00011100000000000001110100100000 +00011100000000000001110100100000 +00011100000000000001101100101000 +00011100000000000001110100100000 +00011100000000000000110000110000 00110000001100000011000000110000 00110000001100000011000000110000 00110000001100000011000000110000 @@ -9751,6 +9886,7 @@ 00100000001000000010000000100000 00100000001000000010000000100000 00000000000000000000000000000000 +00000000000000000000000000000000 00111111110000000000000000000000 00000000000000000000000000000000 01000000001100000000000000000000 @@ -9952,38 +10088,38 @@ 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 -11111111111110000110110011010000 -11111111111110000110101001111100 -11111111111110000110101101111000 -11111111111110000110101011011000 -11111111111110000110101101111000 -11111111111110000110110010011000 -11111111111110000110101101111000 -11111111111110000110101011011000 -11111111111110000110101001111100 -11111111111110000110101001111100 -11111111111110000110110010011000 -11111111111110000110101011011000 -11111111111110000110101011101000 -11111111111110000110101011101000 -11111111111110000110101011101000 -11111111111110000110110010110000 -11111111111110000111011101100000 -11111111111110000111010101100000 -11111111111110000111010101100000 -11111111111110000111010101011100 -11111111111110000111010101101100 -11111111111110000111010101101100 -11111111111110000111011100101000 -11111111111110000111010101011100 -11111111111110000111010101101100 -11111111111110000111011100101000 -11111111111110000111010101101100 -11111111111110000111010101011100 -11111111111110000111011100100000 -11111111111110000111011100100000 -11111111111110000111011100100000 -11111111111110000111011101000000 +11111111111110000110111001010000 +11111111111110000110101111111100 +11111111111110000110110011111000 +11111111111110000110110001011000 +11111111111110000110110011111000 +11111111111110000110111000011000 +11111111111110000110110011111000 +11111111111110000110110001011000 +11111111111110000110101111111100 +11111111111110000110101111111100 +11111111111110000110111000011000 +11111111111110000110110001011000 +11111111111110000110110001101000 +11111111111110000110110001101000 +11111111111110000110110001101000 +11111111111110000110111000110000 +11111111111110000111100011100000 +11111111111110000111011011100000 +11111111111110000111011011100000 +11111111111110000111011011011100 +11111111111110000111011011101100 +11111111111110000111011011101100 +11111111111110000111100010101000 +11111111111110000111011011011100 +11111111111110000111011011101100 +11111111111110000111100010101000 +11111111111110000111011011101100 +11111111111110000111011011011100 +11111111111110000111100010100000 +11111111111110000111100010100000 +11111111111110000111100010100000 +11111111111110000111100011000000 00000010000000100000000100000000 00000011000000110000001100000011 00000100000001000000010000000100 @@ -10048,15 +10184,14 @@ 00001000000010000000100000001000 00001000000010000000100000001000 00001000000010000000100000001000 -00000001111101111000101001000000 10111111000000000000000000000000 -00011100000010000000101111110000 -00011100000010000000101101111000 -00011100000010000000101100001000 -00011100000010000000101010011000 +00011100000010000001100100000000 +00011100000010000000101111001000 +00011100000010000000101101011000 +00011100000010000000101011101000 00000000000000000000000000000000 00000000000000000000000000000011 -00011100000010000000101010011000 +00011100000010000000101011101000 00000000000000000000000001000011 00000000000000000000000000000000 00000000000000000000000000000000 @@ -10113,20 +10248,20 @@ 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 -00011100000000000101100001010100 -00011100000000000101011111110100 +00011100000000000101101000100100 +00011100000000000101100111000100 00000000000000000000000000000000 -00011100000010000000010010000111 -00011100000010000000010000000100 -00011100000010000000000010001100 -00011100000010000000000010001100 -00011100000010000000000010001100 -00011100000010000000000010001100 -00011100000010000000000010001100 -00011100000010000000000010001100 -00011100000010000000000010001100 -00011100000010000000000010001100 -00011100000010000000000010001100 +00011100000010000000010011010111 +00011100000010000000010001010100 +00011100000010000000000000011000 +00011100000010000000000000011000 +00011100000010000000000000011000 +00011100000010000000000000011000 +00011100000010000000000000011000 +00011100000010000000000000011000 +00011100000010000000000000011000 +00011100000010000000000000011000 +00011100000010000000000000011000 01111111011111110111111101111111 01111111011111110111111101111111 01111111011111110111111101111111 @@ -10151,22 +10286,23 @@ 10111111111000000000000111100000 10111111101011111111111100010000 00000000000000000000000000000000 -00011100000000000100101110001100 -00011100000010000000011100001100 -00011100000010000000100011111100 -00011100000010000000001100110000 -00011100000000000101000001100100 -00011100000010000000001100001000 -00011100000000000100110101101100 -00011100000010000000011100011000 -00011100000000000100110100001100 -00011100000000000100101100100100 -00011100000000000100101111101100 +00000000000000000000000000000000 +00011100000000000100110101011100 +00011100000010000000011101011000 +00011100000010000000100101001100 +00011100000010000000001110000000 +00011100000000000101001000110100 +00011100000010000000001101011000 +00011100000000000100111100111100 +00011100000010000000011101100100 +00011100000000000100111011011100 +00011100000000000100110011110100 +00011100000000000100110110111100 00011100000011110000000000000000 -00011100000010000000101010010000 -00011100000010000000011000001000 -00011100000010000000101111110000 -00011100000010000000011100100000 -00011100000010000000100011111000 -00011100000010000000011100101100 -00011100000010000000011100101100 +00011100000010000000101011100000 +00011100000010000000011001011000 +00011100000010000001100100000000 +00011100000010000000011101101100 +00011100000010000000100101001000 +00011100000010000000011101111000 +00011100000010000000011101111000 diff --git a/sdk/mlkem_test.bin b/sdk/mlkem_test.bin new file mode 100755 index 0000000000000000000000000000000000000000..df216e292462b82a83a6f9f92223e2fda24213cd GIT binary patch literal 41228 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 Ymw5n;uLw3^`~l-L2Pp3W)K>wd0cZ<+mH+?% literal 0 HcmV?d00001 diff --git a/sdk/user-sample.bin b/sdk/user-sample.bin index dbb16fd51a57cc77c80f68dc5635144409350532..2e9e06632f6366e2972a2306225a26d68eedd5db 100755 GIT binary patch delta 905 zcma))T}TvB6vxlKcX!ckW_D)VH4BL?`j{(Ah)Vb(?55H~T4)7Qgn|)8YiYi_XH_C% zbaz{O-##H&Z5N@3SQ&*73NfU5=&=ZTXu*8+X*%Op)|&$}b3e}ichCQvTUq2w`!k>F z02-{)JXdvSn9G*AM*p?Z#q5uRjhp4_>Ux<^8<0ST(lU@wZ#g%Wt02A-Omlf7kLF&|`Uw6OC<#6x zP7wUs2%28vD8xAyM0xZu%Gq37sD|QH;vEMF&GJlAjPWU;Pgr8clQ=(oF!27v2FJGkdN^RULe>D zg3a3wp$`L0kKp)wyqZv3>X!q@x2YLAKZl@#yx z!}av?|Cc8~muGF$=IfuGf$G83qU}pp*v-M)=XyX3!w{7(0?_UDD7VfcPtZ%{%sQT& o^H6P7{Qy1j3q2RR2RiyXTAJGdK=uD#={$F~%MAdq-Or!r7yOzNZ2$lO literal 40684 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 D