--- VHDL generated by LogSynth framework (c) Petr Fiser
Library IEEE;
use IEEE.std_logic_1164.all;

entity DFF is
  Port ( D, CLK: in std_logic;
     Q: out std_logic);
end DFF;

architecture Behavior of DFF is
begin
  process(CLK)
  begin
    if CLK'event and CLK = '1' then
      Q <= D;
    end if;
  end process;
end Behavior;

Library IEEE;
use IEEE.std_logic_1164.all;

entity barrel16a is 
  Port (
    pi00,pi01,pi02,pi03,pi04,pi05,pi06,pi07,pi08,pi09,pi10,pi11,pi12,pi13,pi14,pi15,pi16,pi17,pi18,pi19,pi20,pi21, CLK: in std_logic;
    po00,po01,po02,po03,po04,po05,po06,po07,po08,po09,po10,po11,po12,po13,po14,po15: inout std_logic
  );
end barrel16a;

architecture barrel16a_behav of barrel16a is
component DFF
  Port ( D, CLK: in std_logic;
     Q: out std_logic);
end component;

signal lo00,lo01,lo02,lo03,lo04,lo05,lo06,lo07,lo08,lo09,lo10,lo11,lo12,lo13,lo14,lo15,lo16,lo17,lo18,lo19,lo20,lo21,lo22,lo23,lo24,lo25,lo26,lo27,lo28,lo29,lo30,lo31,lo32,lo33,lo34,lo35,lo36,n149,n150,n151,n152,n153,n154,n155,n156,n157,n158,n159,n160,n161,n162,n163,n164,n165,li00,n167,n168,n169,n170,n171,n172,n173,n174,n175,n176,n177,n178,n179,li01,n181,n182,n183,n184,n185,n186,n187,n188,n189,n190,n191,n192,n193,li02,n195,n196,n197,n198,n199,n200,n201,n202,n203,li03,n205,n206,n207,n208,n209,n210,n211,n212,n213,li04,n215,n216,n217,n218,n219,n220,li05,n222,n223,n224,n225,n226,li06,n228,n229,n230,n231,n232,n233,n234,li07,n236,n237,n238,n239,n240,n241,li08,n243,n244,n245,n246,li09,n248,n249,n250,n251,n252,li10,n254,n255,n256,n257,n258,li11,n260,n261,n262,li12,n264,n265,n266,li13,n268,n269,n270,li14,n272,n273,n274,li15,n276,n277,li16,li17,li18,li19,li20,li21,li22,li23,li24,li25,li26,li27,li28,li29,li30,li31,li32,li33,li34,li35,li36: std_logic;
begin
    DFF0: DFF port map (li00, CLK, lo00);
    DFF1: DFF port map (li01, CLK, lo01);
    DFF2: DFF port map (li02, CLK, lo02);
    DFF3: DFF port map (li03, CLK, lo03);
    DFF4: DFF port map (li04, CLK, lo04);
    DFF5: DFF port map (li05, CLK, lo05);
    DFF6: DFF port map (li06, CLK, lo06);
    DFF7: DFF port map (li07, CLK, lo07);
    DFF8: DFF port map (li08, CLK, lo08);
    DFF9: DFF port map (li09, CLK, lo09);
    DFF10: DFF port map (li10, CLK, lo10);
    DFF11: DFF port map (li11, CLK, lo11);
    DFF12: DFF port map (li12, CLK, lo12);
    DFF13: DFF port map (li13, CLK, lo13);
    DFF14: DFF port map (li14, CLK, lo14);
    DFF15: DFF port map (li15, CLK, lo15);
    DFF16: DFF port map (li16, CLK, lo16);
    DFF17: DFF port map (li17, CLK, lo17);
    DFF18: DFF port map (li18, CLK, lo18);
    DFF19: DFF port map (li19, CLK, lo19);
    DFF20: DFF port map (li20, CLK, lo20);
    DFF21: DFF port map (li21, CLK, lo21);
    DFF22: DFF port map (li22, CLK, lo22);
    DFF23: DFF port map (li23, CLK, lo23);
    DFF24: DFF port map (li24, CLK, lo24);
    DFF25: DFF port map (li25, CLK, lo25);
    DFF26: DFF port map (li26, CLK, lo26);
    DFF27: DFF port map (li27, CLK, lo27);
    DFF28: DFF port map (li28, CLK, lo28);
    DFF29: DFF port map (li29, CLK, lo29);
    DFF30: DFF port map (li30, CLK, lo30);
    DFF31: DFF port map (li31, CLK, lo31);
    DFF32: DFF port map (li32, CLK, lo32);
    DFF33: DFF port map (li33, CLK, lo33);
    DFF34: DFF port map (li34, CLK, lo34);
    DFF35: DFF port map (li35, CLK, lo35);
    DFF36: DFF port map (li36, CLK, lo36);
    n149 <= ( lo17 and not lo18 and not lo19 )
      or ( not lo17 and lo18 and not lo19 )
      or ( lo17 and lo18 and not lo19 )
      or ( lo17 and not lo18 and lo19 )
      or ( lo17 and lo18 and lo19 );
    n150 <= ( not lo20 and lo21 and not lo18 )
      or ( lo20 and lo21 and not lo18 )
      or ( lo20 and not lo21 and lo18 )
      or ( lo20 and lo21 and lo18 );
    n151 <= ( not lo17 and not lo19 );
    n152 <= ( n149 and not n150 and not n151 and not lo22 )
      or ( not n149 and n150 and not n151 and not lo22 )
      or ( n149 and n150 and not n151 and not lo22 )
      or ( n149 and not n150 and not n151 and lo22 )
      or ( not n149 and n150 and not n151 and lo22 )
      or ( n149 and n150 and not n151 and lo22 )
      or ( not n149 and not n150 and n151 and lo22 )
      or ( not n149 and n150 and n151 and lo22 );
    n153 <= ( not lo23 and lo24 and not lo18 )
      or ( lo23 and lo24 and not lo18 )
      or ( lo23 and not lo24 and lo18 )
      or ( lo23 and lo24 and lo18 );
    n154 <= ( not lo25 and lo26 and not lo18 )
      or ( lo25 and lo26 and not lo18 )
      or ( lo25 and not lo26 and lo18 )
      or ( lo25 and lo26 and lo18 );
    n155 <= ( not n153 and n154 and not lo19 )
      or ( n153 and n154 and not lo19 )
      or ( n153 and not n154 and lo19 )
      or ( n153 and n154 and lo19 );
    n156 <= ( lo16 and n149 and not n152 and not n155 )
      or ( not lo16 and not n149 and n152 and not n155 )
      or ( lo16 and not n149 and n152 and not n155 )
      or ( lo16 and n149 and not n152 and n155 )
      or ( not lo16 and not n149 and n152 and n155 )
      or ( lo16 and not n149 and n152 and n155 )
      or ( not lo16 and n149 and n152 and n155 )
      or ( lo16 and n149 and n152 and n155 );
    n157 <= ( not lo27 and lo28 and not lo18 )
      or ( lo27 and lo28 and not lo18 )
      or ( lo27 and not lo28 and lo18 )
      or ( lo27 and lo28 and lo18 );
    n158 <= ( not lo29 and lo30 and not lo18 )
      or ( lo29 and lo30 and not lo18 )
      or ( lo29 and not lo30 and lo18 )
      or ( lo29 and lo30 and lo18 );
    n159 <= ( not n157 and n158 and not lo19 )
      or ( n157 and n158 and not lo19 )
      or ( n157 and not n158 and lo19 )
      or ( n157 and n158 and lo19 );
    n160 <= ( not lo31 and lo32 and not lo19 )
      or ( lo31 and lo32 and not lo19 )
      or ( lo31 and not lo32 and lo19 )
      or ( lo31 and lo32 and lo19 );
    n161 <= ( not lo33 and lo34 and not lo19 )
      or ( lo33 and lo34 and not lo19 )
      or ( lo33 and not lo34 and lo19 )
      or ( lo33 and lo34 and lo19 );
    n162 <= ( not n160 and n161 and not lo18 )
      or ( n160 and n161 and not lo18 )
      or ( n160 and not n161 and lo18 )
      or ( n160 and n161 and lo18 );
    n163 <= ( not n159 and n162 and not lo17 )
      or ( n159 and n162 and not lo17 )
      or ( n159 and not n162 and lo17 )
      or ( n159 and n162 and lo17 );
    n164 <= ( n156 and not n163 and not lo35 )
      or ( n156 and n163 and not lo35 )
      or ( not n156 and n163 and lo35 )
      or ( n156 and n163 and lo35 );
    n165 <= ( lo22 and not lo17 and not lo18 and not lo19 );
    li00 <= ( n164 and not n165 and not lo36 and not lo35 )
      or ( n164 and n165 and not lo36 and not lo35 )
      or ( not n164 and n165 and lo36 and not lo35 )
      or ( n164 and n165 and lo36 and not lo35 )
      or ( n164 and not n165 and not lo36 and lo35 )
      or ( n164 and n165 and not lo36 and lo35 );
    n167 <= ( not lo26 and lo20 and not lo18 )
      or ( lo26 and lo20 and not lo18 )
      or ( lo26 and not lo20 and lo18 )
      or ( lo26 and lo20 and lo18 );
    n168 <= ( n149 and not n167 and not n151 and not lo16 )
      or ( not n149 and n167 and not n151 and not lo16 )
      or ( n149 and n167 and not n151 and not lo16 )
      or ( n149 and not n167 and not n151 and lo16 )
      or ( not n149 and n167 and not n151 and lo16 )
      or ( n149 and n167 and not n151 and lo16 )
      or ( not n149 and not n167 and n151 and lo16 )
      or ( not n149 and n167 and n151 and lo16 );
    n169 <= ( not lo34 and lo23 and not lo18 )
      or ( lo34 and lo23 and not lo18 )
      or ( lo34 and not lo23 and lo18 )
      or ( lo34 and lo23 and lo18 );
    n170 <= ( not lo24 and lo25 and not lo18 )
      or ( lo24 and lo25 and not lo18 )
      or ( lo24 and not lo25 and lo18 )
      or ( lo24 and lo25 and lo18 );
    n171 <= ( not n169 and n170 and not lo19 )
      or ( n169 and n170 and not lo19 )
      or ( n169 and not n170 and lo19 )
      or ( n169 and n170 and lo19 );
    n172 <= ( lo21 and n149 and not n168 and not n171 )
      or ( not lo21 and not n149 and n168 and not n171 )
      or ( lo21 and not n149 and n168 and not n171 )
      or ( lo21 and n149 and not n168 and n171 )
      or ( not lo21 and not n149 and n168 and n171 )
      or ( lo21 and not n149 and n168 and n171 )
      or ( not lo21 and n149 and n168 and n171 )
      or ( lo21 and n149 and n168 and n171 );
    n173 <= ( not lo27 and lo29 and not lo19 )
      or ( lo27 and lo29 and not lo19 )
      or ( lo27 and not lo29 and lo19 )
      or ( lo27 and lo29 and lo19 );
    n174 <= ( n173 and not lo28 and not lo18 and not lo19 )
      or ( n173 and lo28 and not lo18 and not lo19 )
      or ( not n173 and lo28 and lo18 and not lo19 )
      or ( n173 and lo28 and lo18 and not lo19 )
      or ( n173 and not lo28 and not lo18 and lo19 )
      or ( n173 and lo28 and not lo18 and lo19 );
    n175 <= ( not lo30 and lo33 and not lo19 )
      or ( lo30 and lo33 and not lo19 )
      or ( lo30 and not lo33 and lo19 )
      or ( lo30 and lo33 and lo19 );
    n176 <= ( not n175 and n160 and not lo18 )
      or ( n175 and n160 and not lo18 )
      or ( n175 and not n160 and lo18 )
      or ( n175 and n160 and lo18 );
    n177 <= ( not n174 and n176 and not lo17 )
      or ( n174 and n176 and not lo17 )
      or ( n174 and not n176 and lo17 )
      or ( n174 and n176 and lo17 );
    n178 <= ( n172 and not n177 and not lo35 )
      or ( n172 and n177 and not lo35 )
      or ( not n172 and n177 and lo35 )
      or ( n172 and n177 and lo35 );
    n179 <= ( not lo22 and lo16 and not lo18 )
      or ( lo22 and lo16 and not lo18 )
      or ( lo22 and not lo16 and lo18 )
      or ( lo22 and lo16 and lo18 );
    li01 <= ( n178 and not n276 and not lo36 and not lo35 )
      or ( n178 and n276 and not lo36 and not lo35 )
      or ( not n178 and n276 and lo36 and not lo35 )
      or ( n178 and n276 and lo36 and not lo35 )
      or ( n178 and not n276 and not lo36 and lo35 )
      or ( n178 and n276 and not lo36 and lo35 );
    n181 <= ( not lo32 and lo23 and not lo19 )
      or ( lo32 and lo23 and not lo19 )
      or ( lo32 and not lo23 and lo19 )
      or ( lo32 and lo23 and lo19 );
    n182 <= ( not lo34 and lo24 and not lo19 )
      or ( lo34 and lo24 and not lo19 )
      or ( lo34 and not lo24 and lo19 )
      or ( lo34 and lo24 and lo19 );
    n183 <= ( not n181 and n182 and not lo18 )
      or ( n181 and n182 and not lo18 )
      or ( n181 and not n182 and lo18 )
      or ( n181 and n182 and lo18 );
    n184 <= ( lo35 and not lo17 )
      or ( not lo35 and lo17 )
      or ( lo35 and lo17 );
    n185 <= ( lo35 and not lo19 and not lo17 )
      or ( not lo35 and lo19 and not lo17 )
      or ( lo35 and lo19 and not lo17 )
      or ( lo35 and not lo19 and lo17 )
      or ( lo35 and lo19 and lo17 );
    n186 <= ( n184 and not n154 and n185 and not n150 )
      or ( not n184 and n154 and n185 and not n150 )
      or ( n184 and n154 and n185 and not n150 )
      or ( not n184 and not n154 and not n185 and n150 )
      or ( not n184 and n154 and not n185 and n150 )
      or ( n184 and not n154 and n185 and n150 )
      or ( not n184 and n154 and n185 and n150 )
      or ( n184 and n154 and n185 and n150 );
    n187 <= ( not lo29 and lo31 and not lo19 )
      or ( lo29 and lo31 and not lo19 )
      or ( lo29 and not lo31 and lo19 )
      or ( lo29 and lo31 and lo19 );
    n188 <= ( not n187 and n175 and not lo18 )
      or ( n187 and n175 and not lo18 )
      or ( n187 and not n175 and lo18 )
      or ( n187 and n175 and lo18 );
    n189 <= ( n188 and not n157 and not lo17 and not lo19 )
      or ( n188 and n157 and not lo17 and not lo19 )
      or ( not n188 and n157 and lo17 and not lo19 )
      or ( n188 and n157 and lo17 and not lo19 )
      or ( n188 and not n157 and not lo17 and lo19 )
      or ( n188 and n157 and not lo17 and lo19 );
    n190 <= ( n183 and n184 and not n186 and not n189 )
      or ( not n183 and not n184 and n186 and not n189 )
      or ( n183 and not n184 and n186 and not n189 )
      or ( n183 and n184 and not n186 and n189 )
      or ( not n183 and not n184 and n186 and n189 )
      or ( n183 and not n184 and n186 and n189 )
      or ( not n183 and n184 and n186 and n189 )
      or ( n183 and n184 and n186 and n189 );
    n191 <= ( not lo22 and lo21 and not lo19 )
      or ( lo22 and lo21 and not lo19 )
      or ( lo22 and not lo21 and lo19 )
      or ( lo22 and lo21 and lo19 );
    n192 <= ( n191 and not lo16 and not lo18 and not lo19 )
      or ( n191 and lo16 and not lo18 and not lo19 )
      or ( not n191 and lo16 and lo18 and not lo19 )
      or ( n191 and lo16 and lo18 and not lo19 )
      or ( n191 and not lo16 and not lo18 and lo19 )
      or ( n191 and lo16 and not lo18 and lo19 );
    n193 <= ( n192 and not lo17 );
    li02 <= ( n190 and not n193 and not lo36 and not lo35 )
      or ( n190 and n193 and not lo36 and not lo35 )
      or ( not n190 and n193 and lo36 and not lo35 )
      or ( n190 and n193 and lo36 and not lo35 )
      or ( n190 and not n193 and not lo36 and lo35 )
      or ( n190 and n193 and not lo36 and lo35 );
    n195 <= ( not n161 and n181 and not lo18 )
      or ( n161 and n181 and not lo18 )
      or ( n161 and not n181 and lo18 )
      or ( n161 and n181 and lo18 );
    n196 <= ( n185 and not n195 and n184 and not n167 )
      or ( not n185 and n195 and n184 and not n167 )
      or ( n185 and n195 and n184 and not n167 )
      or ( not n185 and not n195 and not n184 and n167 )
      or ( not n185 and n195 and not n184 and n167 )
      or ( n185 and not n195 and n184 and n167 )
      or ( not n185 and n195 and n184 and n167 )
      or ( n185 and n195 and n184 and n167 );
    n197 <= ( lo17 and not lo18 and not lo19 );
    n198 <= ( not lo28 and lo30 and not lo19 )
      or ( lo28 and lo30 and not lo19 )
      or ( lo28 and not lo30 and lo19 )
      or ( lo28 and lo30 and lo19 );
    n199 <= ( not n198 and n187 and not lo18 )
      or ( n198 and n187 and not lo18 )
      or ( n198 and not n187 and lo18 )
      or ( n198 and n187 and lo18 );
    n200 <= ( lo27 and n197 and not n199 and not lo17 )
      or ( not lo27 and not n197 and n199 and not lo17 )
      or ( lo27 and not n197 and n199 and not lo17 )
      or ( not lo27 and n197 and n199 and not lo17 )
      or ( lo27 and n197 and n199 and not lo17 )
      or ( lo27 and n197 and not n199 and lo17 )
      or ( lo27 and n197 and n199 and lo17 );
    n201 <= ( n170 and n185 and not n196 and not n200 )
      or ( not n170 and not n185 and n196 and not n200 )
      or ( n170 and not n185 and n196 and not n200 )
      or ( n170 and n185 and not n196 and n200 )
      or ( not n170 and not n185 and n196 and n200 )
      or ( n170 and not n185 and n196 and n200 )
      or ( not n170 and n185 and n196 and n200 )
      or ( n170 and n185 and n196 and n200 );
    n202 <= ( not lo21 and lo20 and not lo18 )
      or ( lo21 and lo20 and not lo18 )
      or ( lo21 and not lo20 and lo18 )
      or ( lo21 and lo20 and lo18 );
    n203 <= ( not n179 and n202 and not lo19 and not lo17 )
      or ( n179 and n202 and not lo19 and not lo17 )
      or ( n179 and not n202 and lo19 and not lo17 )
      or ( n179 and n202 and lo19 and not lo17 );
    li03 <= ( n201 and not n203 and not lo36 and not lo35 )
      or ( n201 and n203 and not lo36 and not lo35 )
      or ( not n201 and n203 and lo36 and not lo35 )
      or ( n201 and n203 and lo36 and not lo35 )
      or ( n201 and not n203 and not lo36 and lo35 )
      or ( n201 and n203 and not lo36 and lo35 );
    n205 <= ( not n157 and n158 and not lo19 and not lo17 )
      or ( n157 and n158 and not lo19 and not lo17 )
      or ( n157 and not n158 and lo19 and not lo17 )
      or ( n157 and n158 and lo19 and not lo17 );
    n206 <= ( lo35 and not lo36 )
      or ( not lo35 and lo36 )
      or ( lo35 and lo36 );
    n207 <= ( lo36 and not lo17 and not lo35 )
      or ( not lo36 and lo17 and not lo35 )
      or ( lo36 and lo17 and not lo35 )
      or ( lo36 and not lo17 and lo35 )
      or ( lo36 and lo17 and lo35 );
    n208 <= ( n206 and not n162 and n207 and not n155 )
      or ( not n206 and n162 and n207 and not n155 )
      or ( n206 and n162 and n207 and not n155 )
      or ( not n206 and not n162 and not n207 and n155 )
      or ( not n206 and n162 and not n207 and n155 )
      or ( n206 and not n162 and n207 and n155 )
      or ( not n206 and n162 and n207 and n155 )
      or ( n206 and n162 and n207 and n155 );
    n209 <= ( not lo16 and lo20 and not lo19 )
      or ( lo16 and lo20 and not lo19 )
      or ( lo16 and not lo20 and lo19 )
      or ( lo16 and lo20 and lo19 );
    n210 <= ( not lo21 and lo26 and not lo19 )
      or ( lo21 and lo26 and not lo19 )
      or ( lo21 and not lo26 and lo19 )
      or ( lo21 and lo26 and lo19 );
    n211 <= ( not n209 and n210 and not lo18 )
      or ( n209 and n210 and not lo18 )
      or ( n209 and not n210 and lo18 )
      or ( n209 and n210 and lo18 );
    n212 <= ( lo22 and n197 and not n211 and not lo17 )
      or ( not lo22 and not n197 and n211 and not lo17 )
      or ( lo22 and not n197 and n211 and not lo17 )
      or ( not lo22 and n197 and n211 and not lo17 )
      or ( lo22 and n197 and n211 and not lo17 )
      or ( lo22 and n197 and not n211 and lo17 )
      or ( lo22 and n197 and n211 and lo17 );
    n213 <= ( n205 and n206 and not n208 and not n212 )
      or ( not n205 and not n206 and n208 and not n212 )
      or ( n205 and not n206 and n208 and not n212 )
      or ( n205 and n206 and not n208 and n212 )
      or ( not n205 and not n206 and n208 and n212 )
      or ( n205 and not n206 and n208 and n212 )
      or ( not n205 and n206 and n208 and n212 )
      or ( n205 and n206 and n208 and n212 );
    li04 <= ( n213 and not lo35 and not lo36 )
      or ( n213 and lo35 and not lo36 )
      or ( n213 and not lo35 and lo36 );
    n215 <= ( n174 and not lo17 );
    n216 <= ( n206 and not n176 and n207 and not n171 )
      or ( not n206 and n176 and n207 and not n171 )
      or ( n206 and n176 and n207 and not n171 )
      or ( not n206 and not n176 and not n207 and n171 )
      or ( not n206 and n176 and not n207 and n171 )
      or ( n206 and not n176 and n207 and n171 )
      or ( not n206 and n176 and n207 and n171 )
      or ( n206 and n176 and n207 and n171 );
    n217 <= ( not lo20 and lo25 and not lo19 )
      or ( lo20 and lo25 and not lo19 )
      or ( lo20 and not lo25 and lo19 )
      or ( lo20 and lo25 and lo19 );
    n218 <= ( not n210 and n217 and not lo18 )
      or ( n210 and n217 and not lo18 )
      or ( n210 and not n217 and lo18 )
      or ( n210 and n217 and lo18 );
    n219 <= ( n218 and not n179 and not lo17 and not lo19 )
      or ( n218 and n179 and not lo17 and not lo19 )
      or ( not n218 and n179 and lo17 and not lo19 )
      or ( n218 and n179 and lo17 and not lo19 )
      or ( n218 and not n179 and not lo17 and lo19 )
      or ( n218 and n179 and not lo17 and lo19 );
    n220 <= ( n215 and n206 and not n216 and not n219 )
      or ( not n215 and not n206 and n216 and not n219 )
      or ( n215 and not n206 and n216 and not n219 )
      or ( n215 and n206 and not n216 and n219 )
      or ( not n215 and not n206 and n216 and n219 )
      or ( n215 and not n206 and n216 and n219 )
      or ( not n215 and n206 and n216 and n219 )
      or ( n215 and n206 and n216 and n219 );
    li05 <= ( n220 and not lo35 and not lo36 )
      or ( n220 and lo35 and not lo36 )
      or ( n220 and not lo35 and lo36 );
    n222 <= ( n207 and not n277 and n206 and not n183 )
      or ( not n207 and n277 and n206 and not n183 )
      or ( n207 and n277 and n206 and not n183 )
      or ( not n207 and not n277 and not n206 and n183 )
      or ( not n207 and n277 and not n206 and n183 )
      or ( n207 and not n277 and n206 and n183 )
      or ( not n207 and n277 and n206 and n183 )
      or ( n207 and n277 and n206 and n183 );
    n223 <= ( not lo26 and lo24 and not lo19 )
      or ( lo26 and lo24 and not lo19 )
      or ( lo26 and not lo24 and lo19 )
      or ( lo26 and lo24 and lo19 );
    n224 <= ( not n217 and n223 and not lo18 )
      or ( n217 and n223 and not lo18 )
      or ( n217 and not n223 and lo18 )
      or ( n217 and n223 and lo18 );
    n225 <= ( not n192 and n224 and not lo17 )
      or ( n192 and n224 and not lo17 )
      or ( n192 and not n224 and lo17 )
      or ( n192 and n224 and lo17 );
    n226 <= ( n188 and n207 and not n222 and not n225 )
      or ( not n188 and not n207 and n222 and not n225 )
      or ( n188 and not n207 and n222 and not n225 )
      or ( n188 and n207 and not n222 and n225 )
      or ( not n188 and not n207 and n222 and n225 )
      or ( n188 and not n207 and n222 and n225 )
      or ( not n188 and n207 and n222 and n225 )
      or ( n188 and n207 and n222 and n225 );
    li06 <= ( n226 and not lo35 and not lo36 )
      or ( n226 and lo35 and not lo36 )
      or ( n226 and not lo35 and lo36 );
    n228 <= ( lo27 and not lo17 and not lo18 and not lo19 );
    n229 <= ( n206 and not n199 and n207 and not n195 )
      or ( not n206 and n199 and n207 and not n195 )
      or ( n206 and n199 and n207 and not n195 )
      or ( not n206 and not n199 and not n207 and n195 )
      or ( not n206 and n199 and not n207 and n195 )
      or ( n206 and not n199 and n207 and n195 )
      or ( not n206 and n199 and n207 and n195 )
      or ( n206 and n199 and n207 and n195 );
    n230 <= ( not n179 and n202 and not lo19 )
      or ( n179 and n202 and not lo19 )
      or ( n179 and not n202 and lo19 )
      or ( n179 and n202 and lo19 );
    n231 <= ( not lo25 and lo23 and not lo19 )
      or ( lo25 and lo23 and not lo19 )
      or ( lo25 and not lo23 and lo19 )
      or ( lo25 and lo23 and lo19 );
    n232 <= ( not n223 and n231 and not lo18 )
      or ( n223 and n231 and not lo18 )
      or ( n223 and not n231 and lo18 )
      or ( n223 and n231 and lo18 );
    n233 <= ( not n230 and n232 and not lo17 )
      or ( n230 and n232 and not lo17 )
      or ( n230 and not n232 and lo17 )
      or ( n230 and n232 and lo17 );
    n234 <= ( n228 and n206 and not n229 and not n233 )
      or ( not n228 and not n206 and n229 and not n233 )
      or ( n228 and not n206 and n229 and not n233 )
      or ( n228 and n206 and not n229 and n233 )
      or ( not n228 and not n206 and n229 and n233 )
      or ( n228 and not n206 and n229 and n233 )
      or ( not n228 and n206 and n229 and n233 )
      or ( n228 and n206 and n229 and n233 );
    li07 <= ( n234 and not lo35 and not lo36 )
      or ( n234 and lo35 and not lo36 )
      or ( n234 and not lo35 and lo36 );
    n236 <= ( not lo35 and not lo36 )
      or ( lo35 and not lo36 )
      or ( lo35 and lo36 );
    n237 <= ( lo36 and lo35 and not lo17 )
      or ( lo36 and not lo35 and lo17 )
      or ( lo36 and lo35 and lo17 );
    n238 <= ( not lo24 and lo34 and not lo19 )
      or ( lo24 and lo34 and not lo19 )
      or ( lo24 and not lo34 and lo19 )
      or ( lo24 and lo34 and lo19 );
    n239 <= ( not n231 and n238 and not lo18 )
      or ( n231 and n238 and not lo18 )
      or ( n231 and not n238 and lo18 )
      or ( n231 and n238 and lo18 );
    n240 <= ( n236 and not n211 and n237 and not n239 )
      or ( not n236 and n211 and n237 and not n239 )
      or ( n236 and n211 and n237 and not n239 )
      or ( not n236 and not n211 and not n237 and n239 )
      or ( not n236 and n211 and not n237 and n239 )
      or ( n236 and not n211 and n237 and n239 )
      or ( not n236 and n211 and n237 and n239 )
      or ( n236 and n211 and n237 and n239 );
    n241 <= ( n163 and n236 and not n240 and not n165 )
      or ( not n163 and not n236 and n240 and not n165 )
      or ( n163 and not n236 and n240 and not n165 )
      or ( n163 and n236 and not n240 and n165 )
      or ( not n163 and not n236 and n240 and n165 )
      or ( n163 and not n236 and n240 and n165 )
      or ( not n163 and n236 and n240 and n165 )
      or ( n163 and n236 and n240 and n165 );
    li08 <= ( n241 and not lo36 and not lo35 )
      or ( n241 and lo36 and not lo35 )
      or ( n241 and lo36 and lo35 );
    n243 <= ( not lo23 and lo32 and not lo19 )
      or ( lo23 and lo32 and not lo19 )
      or ( lo23 and not lo32 and lo19 )
      or ( lo23 and lo32 and lo19 );
    n244 <= ( not n238 and n243 and not lo18 )
      or ( n238 and n243 and not lo18 )
      or ( n238 and not n243 and lo18 )
      or ( n238 and n243 and lo18 );
    n245 <= ( n237 and not n177 and n236 and not n244 )
      or ( not n237 and n177 and n236 and not n244 )
      or ( n237 and n177 and n236 and not n244 )
      or ( not n237 and not n177 and not n236 and n244 )
      or ( not n237 and n177 and not n236 and n244 )
      or ( n237 and not n177 and n236 and n244 )
      or ( not n237 and n177 and n236 and n244 )
      or ( n237 and n177 and n236 and n244 );
    n246 <= ( n218 and n237 and not n245 and not n276 )
      or ( not n218 and not n237 and n245 and not n276 )
      or ( n218 and not n237 and n245 and not n276 )
      or ( n218 and n237 and not n245 and n276 )
      or ( not n218 and not n237 and n245 and n276 )
      or ( n218 and not n237 and n245 and n276 )
      or ( not n218 and n237 and n245 and n276 )
      or ( n218 and n237 and n245 and n276 );
    li09 <= ( n246 and not lo36 and not lo35 )
      or ( n246 and lo36 and not lo35 )
      or ( n246 and lo36 and lo35 );
    n248 <= ( not lo23 and lo34 and not lo18 )
      or ( lo23 and lo34 and not lo18 )
      or ( lo23 and not lo34 and lo18 )
      or ( lo23 and lo34 and lo18 );
    n249 <= ( not lo32 and lo33 and not lo18 )
      or ( lo32 and lo33 and not lo18 )
      or ( lo32 and not lo33 and lo18 )
      or ( lo32 and lo33 and lo18 );
    n250 <= ( not n248 and n249 and not lo19 )
      or ( n248 and n249 and not lo19 )
      or ( n248 and not n249 and lo19 )
      or ( n248 and n249 and lo19 );
    n251 <= ( n236 and not n224 and n237 and not n250 )
      or ( not n236 and n224 and n237 and not n250 )
      or ( n236 and n224 and n237 and not n250 )
      or ( not n236 and not n224 and not n237 and n250 )
      or ( not n236 and n224 and not n237 and n250 )
      or ( n236 and not n224 and n237 and n250 )
      or ( not n236 and n224 and n237 and n250 )
      or ( n236 and n224 and n237 and n250 );
    n252 <= ( n189 and n236 and not n251 and not n193 )
      or ( not n189 and not n236 and n251 and not n193 )
      or ( n189 and not n236 and n251 and not n193 )
      or ( n189 and n236 and not n251 and n193 )
      or ( not n189 and not n236 and n251 and n193 )
      or ( n189 and not n236 and n251 and n193 )
      or ( not n189 and n236 and n251 and n193 )
      or ( n189 and n236 and n251 and n193 );
    li10 <= ( n252 and not lo36 and not lo35 )
      or ( n252 and lo36 and not lo35 )
      or ( n252 and lo36 and lo35 );
    n254 <= ( not lo34 and lo32 and not lo18 )
      or ( lo34 and lo32 and not lo18 )
      or ( lo34 and not lo32 and lo18 )
      or ( lo34 and lo32 and lo18 );
    n255 <= ( not lo33 and lo31 and not lo18 )
      or ( lo33 and lo31 and not lo18 )
      or ( lo33 and not lo31 and lo18 )
      or ( lo33 and lo31 and lo18 );
    n256 <= ( not n254 and n255 and not lo19 )
      or ( n254 and n255 and not lo19 )
      or ( n254 and not n255 and lo19 )
      or ( n254 and n255 and lo19 );
    n257 <= ( n237 and not n200 and n236 and not n256 )
      or ( not n237 and n200 and n236 and not n256 )
      or ( n237 and n200 and n236 and not n256 )
      or ( not n237 and not n200 and not n236 and n256 )
      or ( not n237 and n200 and not n236 and n256 )
      or ( n237 and not n200 and n236 and n256 )
      or ( not n237 and n200 and n236 and n256 )
      or ( n237 and n200 and n236 and n256 );
    n258 <= ( n232 and n237 and not n257 and not n203 )
      or ( not n232 and not n237 and n257 and not n203 )
      or ( n232 and not n237 and n257 and not n203 )
      or ( n232 and n237 and not n257 and n203 )
      or ( not n232 and not n237 and n257 and n203 )
      or ( n232 and not n237 and n257 and n203 )
      or ( not n232 and n237 and n257 and n203 )
      or ( n232 and n237 and n257 and n203 );
    li11 <= ( n258 and not lo36 and not lo35 )
      or ( n258 and lo36 and not lo35 )
      or ( n258 and lo36 and lo35 );
    n260 <= ( not lo31 and lo30 and not lo18 )
      or ( lo31 and lo30 and not lo18 )
      or ( lo31 and not lo30 and lo18 )
      or ( lo31 and lo30 and lo18 );
    n261 <= ( n184 and not n249 and n185 and not n260 )
      or ( not n184 and n249 and n185 and not n260 )
      or ( n184 and n249 and n185 and not n260 )
      or ( not n184 and not n249 and not n185 and n260 )
      or ( not n184 and n249 and not n185 and n260 )
      or ( n184 and not n249 and n185 and n260 )
      or ( not n184 and n249 and n185 and n260 )
      or ( n184 and n249 and n185 and n260 );
    n262 <= ( n239 and n184 and not n261 and not n212 )
      or ( not n239 and not n184 and n261 and not n212 )
      or ( n239 and not n184 and n261 and not n212 )
      or ( n239 and n184 and not n261 and n212 )
      or ( not n239 and not n184 and n261 and n212 )
      or ( n239 and not n184 and n261 and n212 )
      or ( not n239 and n184 and n261 and n212 )
      or ( n239 and n184 and n261 and n212 );
    li12 <= ( n262 and lo36 and not n205 and not lo35 )
      or ( not n262 and not lo36 and n205 and not lo35 )
      or ( n262 and not lo36 and n205 and not lo35 )
      or ( n262 and lo36 and n205 and not lo35 )
      or ( n262 and lo36 and not n205 and lo35 )
      or ( n262 and lo36 and n205 and lo35 );
    n264 <= ( not lo30 and lo29 and not lo18 )
      or ( lo30 and lo29 and not lo18 )
      or ( lo30 and not lo29 and lo18 )
      or ( lo30 and lo29 and lo18 );
    n265 <= ( n185 and not n244 and n184 and not n264 )
      or ( not n185 and n244 and n184 and not n264 )
      or ( n185 and n244 and n184 and not n264 )
      or ( not n185 and not n244 and not n184 and n264 )
      or ( not n185 and n244 and not n184 and n264 )
      or ( n185 and not n244 and n184 and n264 )
      or ( not n185 and n244 and n184 and n264 )
      or ( n185 and n244 and n184 and n264 );
    n266 <= ( n255 and n185 and not n265 and not n219 )
      or ( not n255 and not n185 and n265 and not n219 )
      or ( n255 and not n185 and n265 and not n219 )
      or ( n255 and n185 and not n265 and n219 )
      or ( not n255 and not n185 and n265 and n219 )
      or ( n255 and not n185 and n265 and n219 )
      or ( not n255 and n185 and n265 and n219 )
      or ( n255 and n185 and n265 and n219 );
    li13 <= ( n266 and lo36 and not n215 and not lo35 )
      or ( not n266 and not lo36 and n215 and not lo35 )
      or ( n266 and not lo36 and n215 and not lo35 )
      or ( n266 and lo36 and n215 and not lo35 )
      or ( n266 and lo36 and not n215 and lo35 )
      or ( n266 and lo36 and n215 and lo35 );
    n268 <= ( not n151 and not lo29 and n149 and not lo28 )
      or ( not n151 and lo29 and n149 and not lo28 )
      or ( n151 and lo29 and n149 and not lo28 )
      or ( n151 and not lo29 and not n149 and lo28 )
      or ( n151 and lo29 and not n149 and lo28 )
      or ( not n151 and not lo29 and n149 and lo28 )
      or ( not n151 and lo29 and n149 and lo28 )
      or ( n151 and lo29 and n149 and lo28 );
    n269 <= ( n260 and not n151 and not n268 and not n250 )
      or ( not n260 and n151 and n268 and not n250 )
      or ( n260 and n151 and n268 and not n250 )
      or ( n260 and not n151 and not n268 and n250 )
      or ( not n260 and not n151 and n268 and n250 )
      or ( n260 and not n151 and n268 and n250 )
      or ( not n260 and n151 and n268 and n250 )
      or ( n260 and n151 and n268 and n250 );
    n270 <= ( n269 and not n225 and not lo35 )
      or ( n269 and n225 and not lo35 )
      or ( not n269 and n225 and lo35 )
      or ( n269 and n225 and lo35 );
    li14 <= ( n270 and lo36 and not n277 and not lo35 )
      or ( not n270 and not lo36 and n277 and not lo35 )
      or ( n270 and not lo36 and n277 and not lo35 )
      or ( n270 and lo36 and n277 and not lo35 )
      or ( n270 and lo36 and not n277 and lo35 )
      or ( n270 and lo36 and n277 and lo35 );
    n272 <= ( n149 and not n264 and not n151 and not lo27 )
      or ( not n149 and n264 and not n151 and not lo27 )
      or ( n149 and n264 and not n151 and not lo27 )
      or ( n149 and not n264 and not n151 and lo27 )
      or ( not n149 and n264 and not n151 and lo27 )
      or ( n149 and n264 and not n151 and lo27 )
      or ( not n149 and not n264 and n151 and lo27 )
      or ( not n149 and n264 and n151 and lo27 );
    n273 <= ( lo28 and n149 and not n272 and not n256 )
      or ( not lo28 and not n149 and n272 and not n256 )
      or ( lo28 and not n149 and n272 and not n256 )
      or ( lo28 and n149 and not n272 and n256 )
      or ( not lo28 and not n149 and n272 and n256 )
      or ( lo28 and not n149 and n272 and n256 )
      or ( not lo28 and n149 and n272 and n256 )
      or ( lo28 and n149 and n272 and n256 );
    n274 <= ( n273 and not n233 and not lo35 )
      or ( n273 and n233 and not lo35 )
      or ( not n273 and n233 and lo35 )
      or ( n273 and n233 and lo35 );
    li15 <= ( n274 and lo36 and not n228 and not lo35 )
      or ( not n274 and not lo36 and n228 and not lo35 )
      or ( n274 and not lo36 and n228 and not lo35 )
      or ( n274 and lo36 and n228 and not lo35 )
      or ( n274 and lo36 and not n228 and lo35 )
      or ( n274 and lo36 and n228 and lo35 );
    n276 <= ( not lo17 and not lo19 and n179 );
    n277 <= ( not lo17 and not lo19 and n157 );
    li16 <= ( pi01 );
    li17 <= ( pi02 );
    li18 <= ( pi03 );
    li19 <= ( pi04 );
    li20 <= ( pi05 );
    li21 <= ( pi06 );
    li22 <= ( pi07 );
    li23 <= ( pi08 );
    li24 <= ( pi09 );
    li25 <= ( pi10 );
    li26 <= ( pi11 );
    li27 <= ( pi12 );
    li28 <= ( pi13 );
    li29 <= ( pi14 );
    li30 <= ( pi15 );
    li31 <= ( pi16 );
    li32 <= ( pi17 );
    li33 <= ( pi18 );
    li34 <= ( pi19 );
    li35 <= ( pi20 );
    li36 <= ( pi21 );
    po00 <= ( lo00 );
    po01 <= ( lo01 );
    po02 <= ( lo02 );
    po03 <= ( lo03 );
    po04 <= ( lo04 );
    po05 <= ( lo05 );
    po06 <= ( lo06 );
    po07 <= ( lo07 );
    po08 <= ( lo08 );
    po09 <= ( lo09 );
    po10 <= ( lo10 );
    po11 <= ( lo11 );
    po12 <= ( lo12 );
    po13 <= ( lo13 );
    po14 <= ( lo14 );
    po15 <= ( lo15 );
end barrel16a_behav;
