diff --git a/research/balanced-nullity-banks-163/AUDIT-TARGETS.json b/research/balanced-nullity-banks-163/AUDIT-TARGETS.json new file mode 100644 index 0000000000..31acd84088 --- /dev/null +++ b/research/balanced-nullity-banks-163/AUDIT-TARGETS.json @@ -0,0 +1,54 @@ +[ + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_apply", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_zero", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_comp_disjoint", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_involutive", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_id", + "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_commute", + "Mathproof.BeyondNLogN.TakeoverBit.bankSwap_eq_sum", + "Mathproof.BeyondNLogN.TakeoverBit.bankSwap_full", + "Mathproof.BeyondNLogN.TakeoverBit.weighted_apply", + "Mathproof.BeyondNLogN.TakeoverBit.weighted_comp", + "Mathproof.BeyondNLogN.TakeoverBit.weighted_id", + "Mathproof.BeyondNLogN.TakeoverBit.weightedBank_eq", + "Mathproof.BeyondNLogN.TakeoverBit.weightedBank_full", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_apply", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_idempotent", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_disjoint", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_sum", + "Mathproof.BeyondNLogN.TakeoverBit.coordinateBank_full", + "Mathproof.BeyondNLogN.TakeoverBit.bankAddress_bijective", + "Mathproof.BeyondNLogN.TakeoverBit.bankAddress_roles_injective", + "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_block_capacity", + "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_block_capacity", + "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_bank_full", + "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_bank_full", + "Mathproof.BeyondNLogN.TakeoverBit.P12.inherited_rank_mass", + "Mathproof.BeyondNLogN.TakeoverBit.P12.removed_exterior_count", + "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_rank_mass", + "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_max_rank", + "Mathproof.BeyondNLogN.TakeoverBit.P12.normalized_volume", + "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_deficit", + "Mathproof.BeyondNLogN.TakeoverBit.P12.actual_role_counts", + "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_weighted_bank_full", + "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_weighted_bank_full", + "Mathproof.BeyondNLogN.TakeoverBit.Contents.run_eq_address", + "Mathproof.BeyondNLogN.TakeoverBit.Contents.run_full", + "Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_selected_contents", + "Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_undeferred_contents", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.inherited_rank_mass", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.removed_exterior_count", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_rank_mass", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_max_rank", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.normalized_volume", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_deficit", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_role_counts", + "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_bank_and_inventory_certificate", + "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.literal_charge_lt", + "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.finite_row_reserve", + "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.row_reserve_value", + "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.core_slacks_positive", + "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_slacks_positive", + "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.strengthened_public_margin", + "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_concrete_guards" +] diff --git a/research/balanced-nullity-banks-163/BankAndBalanced.lean b/research/balanced-nullity-banks-163/BankAndBalanced.lean new file mode 100644 index 0000000000..b681bd7acf --- /dev/null +++ b/research/balanced-nullity-banks-163/BankAndBalanced.lean @@ -0,0 +1,625 @@ +/- Publication snapshot: actual bank endpoints and conditional finite arithmetic only. -/ +import Mathlib.LinearAlgebra.Prod +import Mathlib.Tactic.Abel +import Mathlib.Algebra.BigOperators.Group.List.Defs +import Mathlib.Data.List.Pairwise +import Mathlib.Data.List.FinRange +import Mathlib.Data.Fintype.Card +import Mathlib.Data.Nat.Basic +import Mathlib.Tactic.NormNum +import Mathlib.Tactic.FinCases +import Mathlib.Tactic.GCongr +import Mathlib.Tactic.Linarith +import Mathlib.Tactic.Positivity +import Mathlib.Data.Real.Basic +import Mathlib.Tactic.NormNum + + +/-! Exact partial bit address interchanges for split-projector bank packing. +No supplier, routing, recurrence, precision, or tape theorem is assumed here. -/ +namespace Mathproof.BeyondNLogN.TakeoverBit + +variable {R V : Type*} [CommRing R] [AddCommGroup V] [Module R V] + +/-- Exchange the P-address component between two arbitrary incoming banks. -/ +def partialSwap (P : V →ₗ[R] V) : (V × V) →ₗ[R] (V × V) where + toFun z := (z.1 - P z.1 + P z.2, z.2 - P z.2 + P z.1) + map_add' a b := by + apply Prod.ext <;> simp only [Prod.fst_add, Prod.snd_add, map_add] <;> abel + map_smul' r z := by + apply Prod.ext <;> simp only [Prod.smul_fst, Prod.smul_snd, map_smul, + RingHom.id_apply, smul_add, smul_sub] + +@[simp] theorem partialSwap_apply (P : V →ₗ[R] V) (z : V × V) : + partialSwap P z = (z.1 - P z.1 + P z.2, z.2 - P z.2 + P z.1) := rfl + +@[simp] theorem partialSwap_zero : partialSwap (0 : V →ₗ[R] V) = LinearMap.id := by + apply LinearMap.ext + intro z + simp + +/-- Every disjoint projector pair composes by adding its exchanged components. +The incoming pair is arbitrary, so correlated dirty contents are included. -/ +theorem partialSwap_comp_disjoint (P Q : V →ₗ[R] V) + (hPQ : P.comp Q = 0) (hQP : Q.comp P = 0) : + (partialSwap P).comp (partialSwap Q) = partialSwap (P + Q) := by + have hpq (z : V) : P (Q z) = 0 := by + simpa using LinearMap.congr_fun hPQ z + have hqp (z : V) : Q (P z) = 0 := by + simpa using LinearMap.congr_fun hQP z + apply LinearMap.ext + intro z + rcases z with ⟨x,y⟩ + apply Prod.ext <;> + simp only [LinearMap.comp_apply, partialSwap_apply, map_add, map_sub, + LinearMap.add_apply, hpq] <;> abel + +/-- A completed split-projector core is its own exact inverse. -/ +theorem partialSwap_involutive (P : V →ₗ[R] V) (hP : P.comp P = P) : + Function.Involutive (partialSwap P) := by + have hpp (z : V) : P (P z) = P z := by + simpa using LinearMap.congr_fun hP z + intro z + rcases z with ⟨x,y⟩ + apply Prod.ext <;> simp only [partialSwap_apply, map_add, map_sub, hpp] <;> abel + +@[simp] theorem partialSwap_id (z : V × V) : + partialSwap (LinearMap.id : V →ₗ[R] V) z = (z.2,z.1) := by + simp + +/-- Split-projector factors commute at the actual address-map level. -/ +theorem partialSwap_commute (P Q : V →ₗ[R] V) + (hPQ : P.comp Q = 0) (hQP : Q.comp P = 0) : + (partialSwap P).comp (partialSwap Q) = + (partialSwap Q).comp (partialSwap P) := by + rw [partialSwap_comp_disjoint P Q hPQ hQP, + partialSwap_comp_disjoint Q P hQP hPQ, add_comm] + + + + +/-- Execute completed cores in any explicit chronological bank schedule. -/ +def bankSwap : List (V →ₗ[R] V) → ((V × V) →ₗ[R] (V × V)) + | [] => LinearMap.id + | P :: Ps => (partialSwap P).comp (bankSwap Ps) + +private theorem comp_sum_zero (P : V →ₗ[R] V) (Ps : List (V →ₗ[R] V)) + (h : ∀ Q ∈ Ps, P.comp Q = 0) : P.comp Ps.sum = 0 := by + induction Ps with + | nil => simp + | cons Q Ps ih => + have hQ := h Q (by simp) + have ht : ∀ A ∈ Ps, P.comp A = 0 := fun A hA => h A (by simp [hA]) + simp only [List.sum_cons, LinearMap.comp_add, hQ, ih ht, zero_add] + +private theorem sum_comp_zero (P : V →ₗ[R] V) (Ps : List (V →ₗ[R] V)) + (h : ∀ Q ∈ Ps, Q.comp P = 0) : Ps.sum.comp P = 0 := by + induction Ps with + | nil => simp + | cons Q Ps ih => + have hQ := h Q (by simp) + have ht : ∀ A ∈ Ps, A.comp P = 0 := fun A hA => h A (by simp [hA]) + simp only [List.sum_cons, LinearMap.add_comp, hQ, ih ht, zero_add] + +/-- A whole shared bank executes exactly the swap on the sum of its disjoint +address blocks. The statement is on every input, not only clean scratch. -/ +theorem bankSwap_eq_sum (Ps : List (V →ₗ[R] V)) + (h : Ps.Pairwise (fun P Q => P.comp Q = 0 ∧ Q.comp P = 0)) : + bankSwap Ps = partialSwap Ps.sum := by + induction Ps with + | nil => simp [bankSwap] + | cons P Ps ih => + rcases List.pairwise_cons.mp h with ⟨hp, ht⟩ + rw [bankSwap, ih ht, List.sum_cons] + exact partialSwap_comp_disjoint P Ps.sum + (comp_sum_zero P Ps (fun Q hQ => (hp Q hQ).1)) + (sum_comp_zero P Ps (fun Q hQ => (hp Q hQ).2)) + +/-- A complete split partition needs no exterior auxiliary child. -/ +theorem bankSwap_full (Ps : List (V →ₗ[R] V)) + (h : Ps.Pairwise (fun P Q => P.comp Q = 0 ∧ Q.comp P = 0)) + (hsum : Ps.sum = LinearMap.id) (z : V × V) : + bankSwap Ps z = (z.2,z.1) := by + rw [bankSwap_eq_sum Ps h, hsum] + exact partialSwap_id z + +/-- One common ancestor-dependent weighted chart, retained for the whole bank. -/ +def weighted (A : (V × V) ≃ₗ[R] (V × V)) + (T : (V × V) →ₗ[R] (V × V)) : (V × V) →ₗ[R] (V × V) := + A.toLinearMap.comp (T.comp A.symm.toLinearMap) + +@[simp] theorem weighted_apply (A : (V × V) ≃ₗ[R] (V × V)) + (T : (V × V) →ₗ[R] (V × V)) (z : V × V) : + weighted A T z = A (T (A.symm z)) := rfl + +/-- Chart conjugations telescope exactly, with no restriction on dirty data. -/ +theorem weighted_comp (A : (V × V) ≃ₗ[R] (V × V)) + (T U : (V × V) →ₗ[R] (V × V)) : + (weighted A T).comp (weighted A U) = weighted A (T.comp U) := by + apply LinearMap.ext + intro z + simp + +@[simp] theorem weighted_id (A : (V × V) ≃ₗ[R] (V × V)) : + weighted A (LinearMap.id : (V × V) →ₗ[R] (V × V)) = LinearMap.id := by + apply LinearMap.ext + intro z + simp + +def weightedBank (A : (V × V) ≃ₗ[R] (V × V)) : + List (V →ₗ[R] V) → ((V × V) →ₗ[R] (V × V)) + | [] => LinearMap.id + | P :: Ps => (weighted A (partialSwap P)).comp (weightedBank A Ps) + +/-- Every paid weighted core is retained in its chronological product. -/ +theorem weightedBank_eq (A : (V × V) ≃ₗ[R] (V × V)) + (Ps : List (V →ₗ[R] V)) : weightedBank A Ps = weighted A (bankSwap Ps) := by + induction Ps with + | nil => simp [weightedBank, bankSwap] + | cons P Ps ih => + rw [weightedBank, ih, weighted_comp, bankSwap] + +/-- Heterogeneous completed-core packing has the exact full weighted endpoint. -/ +theorem weightedBank_full (A : (V × V) ≃ₗ[R] (V × V)) + (Ps : List (V →ₗ[R] V)) + (h : Ps.Pairwise (fun P Q => P.comp Q = 0 ∧ Q.comp P = 0)) + (hsum : Ps.sum = LinearMap.id) (z : V × V) : + weightedBank A Ps z = A ((A.symm z).2,(A.symm z).1) := by + rw [weightedBank_eq, weighted_apply, bankSwap_full Ps h hsum] + + + +section CoordinateBanks +variable {ι κ : Type*} [DecidableEq ι] + +/-- Explicit split address blocks from an actual coordinate-owner ledger. -/ +def coordinateProjector (owner : κ → ι) (s : ι) : + (κ → R) →ₗ[R] (κ → R) where + toFun v k := if owner k = s then v k else 0 + map_add' v w := by + funext k + by_cases h : owner k = s <;> simp [h] + map_smul' r v := by + funext k + by_cases h : owner k = s <;> simp [h] + +@[simp] theorem coordinateProjector_apply (owner : κ → ι) (s : ι) + (v : κ → R) (k : κ) : + coordinateProjector (R := R) owner s v k = if owner k = s then v k else 0 := rfl + +theorem coordinateProjector_idempotent (owner : κ → ι) (s : ι) : + (coordinateProjector (R := R) owner s).comp (coordinateProjector (R := R) owner s) = + coordinateProjector (R := R) owner s := by + apply LinearMap.ext + intro v + funext k + by_cases h : owner k = s <;> simp [h] + +theorem coordinateProjector_disjoint (owner : κ → ι) (s t : ι) (hst : s ≠ t) : + (coordinateProjector (R := R) owner s).comp (coordinateProjector (R := R) owner t) = 0 := by + apply LinearMap.ext + intro v + funext k + by_cases h : owner k = s + · have ht : owner k ≠ t := by simpa [h] using hst + simp [h,hst] + · simp [h] + +private theorem coordinateProjector_sum_apply (owner : κ → ι) + (roles : List ι) (hroles : roles.Nodup) (v : κ → R) (k : κ) : + (roles.map (coordinateProjector (R := R) owner)).sum v k = + if owner k ∈ roles then v k else 0 := by + induction roles with + | nil => simp + | cons s roles ih => + rcases List.nodup_cons.mp hroles with ⟨hs, ht⟩ + simp only [List.map_cons, List.sum_cons, LinearMap.add_apply, Pi.add_apply, + coordinateProjector_apply, ih ht, List.mem_cons] + by_cases he : owner k = s + · have hn : owner k ∉ roles := by simpa [he] using hs + simp [he,hs] + · simp [he] + +/-- A disjoint exhaustive coordinate ledger gives an actual identity projector. -/ +theorem coordinateProjector_sum (owner : κ → ι) (roles : List ι) + (hroles : roles.Nodup) (hcover : ∀ k, owner k ∈ roles) : + (roles.map (coordinateProjector (R := R) owner)).sum = LinearMap.id := by + apply LinearMap.ext + intro v + funext k + rw [coordinateProjector_sum_apply owner roles hroles v k] + simp [hcover k] + +/-- The concrete coordinate-owner construction supplies every projector premise +of the heterogeneous bank endpoint, including arbitrary incoming correlations. -/ +theorem coordinateBank_full (owner : κ → ι) (roles : List ι) + (hroles : roles.Nodup) (hcover : ∀ k, owner k ∈ roles) + (z : (κ → R) × (κ → R)) : + bankSwap (roles.map (coordinateProjector (R := R) owner)) z = (z.2,z.1) := by + apply bankSwap_full + · rw [List.pairwise_map] + exact (List.nodup_iff_pairwise_ne.mp hroles).imp (fun hst => + ⟨coordinateProjector_disjoint owner _ _ hst, + coordinateProjector_disjoint owner _ _ (Ne.symm hst)⟩) + · exact coordinateProjector_sum owner roles hroles hcover + +end CoordinateBanks + +section Routing +variable {G S : Type*} [Group G] + +/-- Actual bank address for invocation g and fixed role embedding H_s. -/ +def bankAddress (H : S → G) (g : G) (s : S) : G := g * (H s)⁻¹ + +/-- Every role visits every physical bank once; no favorable subset is selected. -/ +theorem bankAddress_bijective (H : S → G) (s : S) : + Function.Bijective (fun g => bankAddress H g s) := by + constructor + · intro g g' h + exact mul_right_cancel h + · intro b + refine ⟨b * H s, ?_⟩ + simp [bankAddress, mul_assoc] + +/-- Distinct role embeddings rule out within-invocation physical aliasing. -/ +theorem bankAddress_roles_injective (H : S → G) (hH : Function.Injective H) + (g : G) : Function.Injective (bankAddress H g) := by + intro s t h + apply hH + have hi : (H s)⁻¹ = (H t)⁻¹ := mul_left_cancel h + exact inv_injective hi + +end Routing +end Mathproof.BeyondNLogN.TakeoverBit + + + + + +/-! Concrete PR155 p12 bit orbit-bank construction and complete paid ledger. +The inherited all-input local word, stage cover and routing contracts remain +explicit upstream dependencies; this file proves the new address endpoints, +coordinate capacities and exact inventory, not an all-size running-time claim. -/ +namespace Mathproof.BeyondNLogN.TakeoverBit.P12 +open Mathproof.BeyondNLogN.TakeoverBit + +variable {R : Type*} [CommRing R] + +/-- The 18 actual disjoint four-coordinate blocks for retained-gauge cores. -/ +def selectedOwner (j : Fin 72) : Fin 18 := ⟨j.val / 4, by omega⟩ + +/-- The three actual disjoint 24-coordinate blocks for undeferred cores. -/ +def undeferredOwner (j : Fin 72) : Fin 3 := ⟨j.val / 24, by omega⟩ + +theorem selected_block_capacity (s : Fin 18) : + (Finset.univ.filter (fun j : Fin 72 => selectedOwner j = s)).card = 4 := by + fin_cases s <;> decide + +theorem undeferred_block_capacity (s : Fin 3) : + (Finset.univ.filter (fun j : Fin 72 => undeferredOwner j = s)).card = 24 := by + fin_cases s <;> decide + +/-- Eighteen completed selected cores cover the entire address module. -/ +theorem selected_bank_full (z : (Fin 72 → R) × (Fin 72 → R)) : + bankSwap ((List.finRange 18).map (coordinateProjector (R := R) selectedOwner)) z = + (z.2,z.1) := by + exact coordinateBank_full selectedOwner (List.finRange 18) + (List.nodup_finRange 18) (fun k => by simp) z + +/-- Three completed undeferred cores also cover the entire address module. -/ +theorem undeferred_bank_full (z : (Fin 72 → R) × (Fin 72 → R)) : + bankSwap ((List.finRange 3).map (coordinateProjector (R := R) undeferredOwner)) z = + (z.2,z.1) := by + exact coordinateBank_full undeferredOwner (List.finRange 3) + (List.nodup_finRange 3) (fun k => by simp) z + +/-- Every child in the immutable freshly replayed p12 profile, including rank60. -/ +def inheritedHistogram : List (Nat × Nat) := + [(1,120468),(2,68080),(3,28824),(4,7200),(5,11952),(6,3312), + (7,6120),(8,4464),(9,1440),(10,2016),(11,2664),(12,3528), + (13,1944),(14,2736),(15,1152),(16,4104),(17,6192),(18,5832), + (19,4536),(20,7260),(21,8580),(22,15912),(60,5720)] + +/-- The actual coordinate-full orbit banks remove precisely auxiliary exteriors; +all internal, source, target, center and data exterior entries remain charged. -/ +def packedHistogram : List (Nat × Nat) := + inheritedHistogram.filter (fun p => p.1 != 60) + +def rankMass (H : List (Nat × Nat)) : Nat := + (H.map (fun p => p.1*p.2)).sum + +theorem inherited_rank_mass : rankMass inheritedHistogram = 2096432 := by decide + +theorem removed_exterior_count : + (inheritedHistogram.filter (fun p => p.1 == 60)).map Prod.snd = [5720] := by decide + +theorem packed_rank_mass : rankMass packedHistogram = 1753232 := by decide + +theorem packed_max_rank : ∀ p ∈ packedHistogram, p.1 ≤ 22 := by decide + +/-- Three private stage banks for every full orbit, including fractional stock. -/ +def normalizedVolume : ℚ := 2*1760 + 3*((5720:ℚ)/18 + (19904:ℚ)/3) + +theorem normalized_volume : normalizedVolume = 73132/3 := by + norm_num [normalizedVolume] + +theorem packed_deficit : (72:ℚ)*normalizedVolume - rankMass packedHistogram = 1936 := by + rw [packed_rank_mass, normalized_volume] + norm_num + +theorem actual_role_counts : + 5720 + 19904 = (25624:Nat) ∧ 18*4 = (72:Nat) ∧ 3*24 = (72:Nat) := by decide + + + + +/-- The actual common weighted chart retains the selected-bank full endpoint. -/ +theorem selected_weighted_bank_full + (A : ((Fin 72 → R) × (Fin 72 → R)) ≃ₗ[R] ((Fin 72 → R) × (Fin 72 → R))) + (z : (Fin 72 → R) × (Fin 72 → R)) : + weightedBank A ((List.finRange 18).map (coordinateProjector (R := R) selectedOwner)) z = + A ((A.symm z).2,(A.symm z).1) := by + rw [weightedBank_eq, weighted_apply, selected_bank_full] + +/-- The same exact weighted endpoint holds for every undeferred bank. -/ +theorem undeferred_weighted_bank_full + (A : ((Fin 72 → R) × (Fin 72 → R)) ≃ₗ[R] ((Fin 72 → R) × (Fin 72 → R))) + (z : (Fin 72 → R) × (Fin 72 → R)) : + weightedBank A ((List.finRange 3).map (coordinateProjector (R := R) undeferredOwner)) z = + A ((A.symm z).2,(A.symm z).1) := by + rw [weightedBank_eq, weighted_apply, undeferred_bank_full] + +end Mathproof.BeyondNLogN.TakeoverBit.P12 + + + +/-! Lift the checked address maps to actual arbitrary register contents. +No clean-scratch or independence assumption occurs in these statements. -/ +namespace Mathproof.BeyondNLogN.TakeoverBit.Contents +open Mathproof.BeyondNLogN.TakeoverBit + +variable {R V B : Type*} [CommRing R] [AddCommGroup V] [Module R V] + +/-- Chronological execution on the complete contents of a physical bank. -/ +def run : List (V →ₗ[R] V) → ((V × V) → B) → ((V × V) → B) + | [], contents => contents + | P :: Ps, contents => run Ps (fun z => contents (partialSwap P z)) + +theorem run_eq_address (Ps : List (V →ₗ[R] V)) (contents : (V × V) → B) + (z : V × V) : run Ps contents z = contents (bankSwap Ps z) := by + induction Ps generalizing contents with + | nil => rfl + | cons P Ps ih => + simp only [run, ih, bankSwap, LinearMap.comp_apply] + +/-- A complete split partition executes the full transform on every dirty table. -/ +theorem run_full (Ps : List (V →ₗ[R] V)) + (h : Ps.Pairwise (fun P Q => P.comp Q = 0 ∧ Q.comp P = 0)) + (hsum : Ps.sum = LinearMap.id) (contents : (V × V) → B) (z : V × V) : + run Ps contents z = contents (z.2,z.1) := by + rw [run_eq_address, bankSwap_full Ps h hsum] + +/-- The actual p12 selected orbit bank works for arbitrary full bank contents. -/ +theorem p12_selected_contents + (contents : ((Fin 72 → R) × (Fin 72 → R)) → B) + (z : (Fin 72 → R) × (Fin 72 → R)) : + run ((List.finRange 18).map (coordinateProjector (R := R) P12.selectedOwner)) contents z = + contents (z.2,z.1) := by + rw [run_eq_address, P12.selected_bank_full] + +/-- The actual p12 undeferred orbit bank has the same unconditional endpoint. -/ +theorem p12_undeferred_contents + (contents : ((Fin 72 → R) × (Fin 72 → R)) → B) + (z : (Fin 72 → R) × (Fin 72 → R)) : + run ((List.finRange 3).map (coordinateProjector (R := R) P12.undeferredOwner)) contents z = + contents (z.2,z.1) := by + rw [run_eq_address, P12.undeferred_bank_full] + +end Mathproof.BeyondNLogN.TakeoverBit.Contents + + + +/-! Immutable PR161 p12 bank specialization. The actual coordinate-owner, +weighted-chart and dirty-content endpoints are reused from the independently +checked P12 construction; only the new frozen supplier inventory is specialized. +The retained all-input local word, charts, stage cover, routing, fallback and +sharp all-size framework are upstream contracts, not proved by this ledger. -/ +namespace Mathproof.BeyondNLogN.TakeoverBit.PR161P12 +open Mathproof.BeyondNLogN.TakeoverBit + +/-- Complete child inventory from immutable PR161 head +`d14e29157bc905be1ced0776dd893d0714013f3a`, profile_p12.json. -/ +def inheritedHistogram : List (Nat × Nat) := + [(1,120972),(2,73336),(3,29832),(4,8208),(5,12096),(6,4392), + (7,4824),(8,2736),(9,648),(10,2160),(11,2016),(12,4464), + (13,1080),(14,2232),(15,216),(16,2808),(17,2736),(18,3888), + (19,3672),(20,7260),(21,8580),(22,15912),(60,5720)] + +/-- Eighteen actual four-coordinate selected cores cover Fin72, so their +auxiliary rank60 exterior is removed; all other children remain charged. -/ +def packedHistogram : List (Nat × Nat) := + inheritedHistogram.filter (fun p => p.1 != 60) + +/-- Three stage banks, with selected roles grouped eighteen at a time and +undeferred roles grouped three at a time. -/ +def normalizedVolume : ℚ := 2*1760 + 3*((5720:ℚ)/18 + (17648:ℚ)/3) + +theorem inherited_rank_mass : P12.rankMass inheritedHistogram = 1934000 := by decide + +theorem removed_exterior_count : + (inheritedHistogram.filter (fun p => p.1 == 60)).map Prod.snd = [5720] := by decide + +theorem packed_rank_mass : P12.rankMass packedHistogram = 1590800 := by decide + +theorem packed_max_rank : ∀ p ∈ packedHistogram, p.1 ≤ 22 := by decide + +theorem normalized_volume : normalizedVolume = 66364/3 := by + norm_num [normalizedVolume] + +theorem packed_deficit : + (72:ℚ)*normalizedVolume - P12.rankMass packedHistogram = 1936 := by + rw [packed_rank_mass, normalized_volume] + norm_num + +theorem actual_role_counts : + 5720 + 17648 = (23368:Nat) ∧ 18*4 = (72:Nat) ∧ 3*24 = (72:Nat) := by decide + +/-- New source binding assembled with actual reused coordinate projectors; +no new abstract packing gadget or independence of register contents is assumed. -/ +theorem actual_bank_and_inventory_certificate + {R : Type*} [CommRing R] (z : (Fin 72 → R) × (Fin 72 → R)) : + (∀ s : Fin 18, (Finset.univ.filter + (fun j : Fin 72 => P12.selectedOwner j = s)).card = 4) ∧ + (∀ s : Fin 3, (Finset.univ.filter + (fun j : Fin 72 => P12.undeferredOwner j = s)).card = 24) ∧ + bankSwap ((List.finRange 18).map + (coordinateProjector (R := R) P12.selectedOwner)) z = (z.2,z.1) ∧ + bankSwap ((List.finRange 3).map + (coordinateProjector (R := R) P12.undeferredOwner)) z = (z.2,z.1) ∧ + normalizedVolume = 66364/3 ∧ + P12.rankMass packedHistogram = 1590800 ∧ + (72:ℚ)*normalizedVolume - P12.rankMass packedHistogram = 1936 := by + exact ⟨P12.selected_block_capacity, P12.undeferred_block_capacity, + P12.selected_bank_full z, P12.undeferred_bank_full z, + normalized_volume, packed_rank_mass, packed_deficit⟩ + +end Mathproof.BeyondNLogN.TakeoverBit.PR161P12 + + + +/-! The finite literal guard is discharged by an elementary universal charge +bound. No positive-guard oracle is used. The condition s ≤ mW is the ordinary +rank-mass bound of a finite supplier, not an unknown algorithm interface. -/ +namespace Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008 + +theorem literal_charge_lt (W m G s : ℝ) + (hW : 0 ≤ W) (hm : 0 ≤ m) (hG : 0 ≤ G) (hs : s ≤ m*W) : + 2*G*W*W+8*s+4*W+4+32*m < 64*(W+m+G+1)^3 := by + let X := W+m+G+1 + have hX : 1 ≤ X := by dsimp [X]; linarith + have hX0 : 0 ≤ X := by linarith + have hWX : W ≤ X := by dsimp [X]; linarith + have hmX : m ≤ X := by dsimp [X]; linarith + have hGX : G ≤ X := by dsimp [X]; linarith + have hcube : 0 < X^3 := by positivity + have hquad : X ≤ X^2 := by nlinarith + have hquad_cube : X^2 ≤ X^3 := by + have hp := mul_nonneg (show 0 ≤ X-1 by linarith) (sq_nonneg X) + nlinarith + have hfirst : 2*G*W*W ≤ 2*X*X*X := by gcongr + have hsecond : m*W ≤ X*X := by gcongr + have hlarge : 2*G*W*W+8*s+4*W+4+32*m ≤ 50*X^3 := by + nlinarith + dsimp [X] at hlarge hcube + linarith + +theorem finite_row_reserve : (0 : ℝ) < 70000-(51*12320/25) := by norm_num + +theorem row_reserve_value : (70000-(51*12320/25) : ℝ) = 224336/5 := by norm_num + + +end Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008 + + + +/- Source-bound arithmetic for PR163 paid balanced transfer and our new nullity-bank refinement. + This is not a formalization of all-size integer multiplication. -/ +namespace Mathproof.BeyondNLogN.TakeoverBalanced16320261009 +noncomputable def a : ℝ := (297370240363722999999999702129759636277/500000000000000000000000000000000000000000) +noncomputable def b : ℝ := (297370240363723/500000000000000000) +noncomputable def eta : ℝ := (1/1000000000000000000000000) +noncomputable def beta : ℝ := (1/1000000000000000000000000) +noncomputable def kappa : ℝ := (118877394946471/200000000000000000) +noncomputable def tau : ℝ := 1-a +noncomputable def sigma : ℝ := 1-b +noncomputable def q : ℝ := a*(1-2*eta) +noncomputable def c : ℝ := q+eta/4 +noncomputable def eps : ℝ := (1-eta)/(1+q) +noncomputable def lp : ℝ := 1-q +noncomputable def lam : ℝ := (tau+lp)/2 +noncomputable def g : ℝ := eps*q +noncomputable def r : ℝ := (g+1-eps)/2 +noncomputable def delta : ℝ := eta/8 +noncomputable def internal : ℝ := tau+(1-beta)*max (sigma-tau) 0 +noncomputable def leaf : ℝ := sigma+beta*(1-sigma) +noncomputable def coreSlacks : List ℝ := [ + (a) /- bit_positive -/, + (b-a) /- complex_above_bit -/, + (1/32-b) /- complex_below_one_over32 -/, + (beta) /- beta_positive -/, + (1-beta) /- beta_below_one -/, + ((1-beta)*b-a) /- leaf_saving_above_bit -/, + (q) /- q_positive -/, + (1-internal-q) /- q_below_internal -/, + (1-leaf-q) /- q_below_leaf -/, + (c) /- c_positive -/, + (1-c) /- c_below_one -/, + (c-q) /- q_below_reservations -/, + (lam-tau) /- lambda_above_tau -/, + (lam-sigma) /- lambda_above_sigma -/, + (lam-internal) /- lambda_above_internal -/, + (lp-lam) /- lambda_prime_above_lambda -/, + (lp-leaf) /- compact_leaf -/, + (lp-(1-c)) /- compact_reservations -/, + (q) /- lambda_prime_below_one -/, + (eps) /- epsilon_positive -/, + (1-eps) /- epsilon_below_one -/, + (1-eps) /- guard_width -/, + (1-eps*(1+c)) /- K_geometry -/, + (eps*c) /- K_dominates_log -/, + (1-eps) /- record_suffix -/, + (1-eps-delta) /- phase_local -/, + (r-delta) /- phase_boundary -/, + (1-eps-r) /- gamma_sublinear -/, + (eps-(1-r)/2) /- cell_above_band -/, + (1-eps) /- prime_interval_packing -/, + (r) /- alpha_positive -/, + (1-r) /- alpha_below_one -/, + (1/4-r) /- alpha_below_one_fourth -/, + (delta) /- delta_positive -/, + (1/8-delta) /- delta_below_one_eighth -/, + (eps-a) /- short_record_fallback -/, + (1-eps-g) /- small_field_exposure -/, + (8-eps+r-delta-g) /- artificial_boundary -/, + ((1-eps)-kappa) /- paid_balanced_prefix_above_kappa -/, + ((a)-kappa) /- coordinate_movement_above_kappa -/, + ((g)-kappa) /- compact_phase_layer_above_kappa -/, + ((a)-kappa) /- bulk_exposure_above_kappa -/, + ((min (1-eps-delta) (r-delta))-kappa) /- Gaussian_arithmetic_above_kappa -/, + ((1-eps-delta)-kappa) /- scalar_work_above_kappa -/, + ((eps)-kappa) /- dimension_above_kappa -/ +] +theorem core_slacks_positive : ∀ x ∈ coreSlacks, 0 < x := by + norm_num [coreSlacks, a, b, eta, beta, kappa, tau, sigma, q, c, eps, lp, lam, g, r, delta, internal, leaf] + +theorem all_47_slacks_positive (literal row : ℝ) + (hl : 0 < literal) (hr : 0 < row) : + ∀ x ∈ coreSlacks ++ [literal, row], 0 < x := by + intro x hx + rcases List.mem_append.mp hx with h | h + · exact core_slacks_positive x h + · simp only [List.mem_cons, List.not_mem_nil, or_false] at h + rcases h with h | h + · simpa [h] using hl + · simpa [h] using hr + +theorem strengthened_public_margin : + (148492550769873/250000000000000000 : ℝ) < kappa ∧ kappa < g := by + norm_num [kappa, g, eps, c, q, a, eta] + +/-- Complete arithmetic composition of our certified bit bank with the +pinned PR163 paid balanced transfer physical complex supplier. All finite guards are proved, subject +only to explicit nonnegative counts and their standard rank-mass bound. +This theorem does not claim the retained analytic/tape interfaces. -/ +theorem all_47_concrete_guards (W m G s : ℝ) + (hW : 0 ≤ W) (hm : 0 ≤ m) (hG : 0 ≤ G) (hs : s ≤ m*W) : + ∀ x ∈ coreSlacks ++ + [64*(W+m+G+1)^3-(2*G*W*W+8*s+4*W+4+32*m), + 70000-(51*12320/25)], 0 < x := by + apply all_47_slacks_positive + · exact sub_pos.mpr + (Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.literal_charge_lt + W m G s hW hm hG hs) + · exact Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.finite_row_reserve + +end Mathproof.BeyondNLogN.TakeoverBalanced16320261009 diff --git a/research/balanced-nullity-banks-163/LICENSE b/research/balanced-nullity-banks-163/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/balanced-nullity-banks-163/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/balanced-nullity-banks-163/MANIFEST.json b/research/balanced-nullity-banks-163/MANIFEST.json new file mode 100644 index 0000000000..6d4996ea27 --- /dev/null +++ b/research/balanced-nullity-banks-163/MANIFEST.json @@ -0,0 +1,14 @@ +{ + "arithmetic-replay.log": "393570c538268eb8ef36dd89a007861a7c4e6a6c7782f5fdd0c060e99bc37df0", + "AUDIT-TARGETS.json": "1fb48f1e81cbc806c2e08a4ed58ea75a87f6a533138a014a13bb31e7bac0db14", + "BankAndBalanced.lean": "8f32bce76e47da3c6165ea94f179ddf351ed50271996ab179505f588333b5867", + "expected.json": "0c94f8a31170b953ca0c35f4904e80f4f38dd4a553a60249b224520a6d590a1b", + "lean-audit.log": "d4b24c5a28ebe4db51f41fba151500fa4c0ce4a739069e0cc1fc180b8d2117e4", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "NOTICE": "2d192a690294292eaed715da43ed74951a1130de7f38a6c5084816798f4d0c72", + "PROOF-ORIGINS.json": "53a97d25d58611056a51a00b6cc5d2e0cefc9b16a968f297d4b8a92baaa990c8", + "PROOF.md": "6e6e82b2918a440b4ae556e8fef439ac641be138f8edfb2ee803342cb6e8c56e", + "README.md": "10e3f5a2fc7909cde95c7d25204cf0819f638f5a66202b74ef7f645da531a267", + "VERIFICATION.json": "991a11ba4f6efadf7927578818c26b109e71d82379c22636ad9cf5d2f507c5d3", + "verify.py": "37d317bcc1185db9a08163dd325e9cd95e55007d1db45b7ed5a4d060ec85978e" +} diff --git a/research/balanced-nullity-banks-163/NOTICE b/research/balanced-nullity-banks-163/NOTICE new file mode 100644 index 0000000000..7f827029f3 --- /dev/null +++ b/research/balanced-nullity-banks-163/NOTICE @@ -0,0 +1,13 @@ +Conditional balanced transfer with completed-core nullity banks. +Prepared with substantial OpenAI Codex assistance. No personal author name has been added by this package. +Upstream framework: OpenAI integer multiplication manuscript; Douglas Colkitt/CrocSwap. +PR161 annealed modules, paired word and signed merging: eumemic, with Anthropic Claude assistance. +Paired-cube decoder, shared ledger and pricing: icekylinx/William Porter. +Full lineage remains in the pinned PR161 NOTICE and SOURCES.json. +PR163 fused supplier and adapter: chafreaky; paid layout lineage PR23/29 (Zhihao Chen), RaD, +PR34 (James Chang), PR100/103 (Rohan Arun), and retained PR141 arithmetic body. +Bit local words and completed-core sharing retain their PR161 attribution, including +an664 PR128, eumemic PR117, and Zhihao Chen/Swapnil Jain PR97. +This contribution claims the displayed nullity-bank refinement and composition only, +not authorship of upstream suppliers, balanced layout, or the all-size framework. +Apache-2.0. Consult the pinned upstream notices for full attribution. diff --git a/research/balanced-nullity-banks-163/PROOF-ORIGINS.json b/research/balanced-nullity-banks-163/PROOF-ORIGINS.json new file mode 100644 index 0000000000..884821366c --- /dev/null +++ b/research/balanced-nullity-banks-163/PROOF-ORIGINS.json @@ -0,0 +1,32 @@ +[ + { + "filename": "TakeoverBit20261008.lean", + "sha256": "7f5d05001824fd59c4070be55786151777a03972499092b2222c5b673f8bbe0a", + "change": "proof bodies unchanged; imports removed and hoisted" + }, + { + "filename": "TakeoverBit20261008P12.lean", + "sha256": "52ae9bca980c634fcc206f94832a5b72ace2a47609e1d57c663424347d2944c4", + "change": "proof bodies unchanged; imports removed and hoisted" + }, + { + "filename": "TakeoverBit20261008Contents.lean", + "sha256": "8b9e75c1ab67d210e9a6385577c9ca965ccc42c930f5279e2ab2e23e96cc2664", + "change": "proof bodies unchanged; imports removed and hoisted" + }, + { + "filename": "TakeoverBit16120261008P12.lean", + "sha256": "2ea23c607c23a2590660f588b18eb9f3525d58f9ac6b9461a30331002ed18aae", + "change": "proof bodies unchanged; imports removed and hoisted" + }, + { + "filename": "TakeoverLiteralGuard20261008.lean", + "sha256": "8fe9acaccb68ff70eb43d308f0a8b34f38119779ba3514a35078d3a4348d47c6", + "change": "imports removed and hoisted; obsolete original-layout assembly wrapper omitted from literal guard" + }, + { + "filename": "TakeoverBalanced16320261009.lean", + "sha256": "ce2087d53c07e07324556e06e4a4b940905db137b4c723291a77bb2aae511fd7", + "change": "proof bodies unchanged; imports removed and hoisted" + } +] diff --git a/research/balanced-nullity-banks-163/PROOF.md b/research/balanced-nullity-banks-163/PROOF.md new file mode 100644 index 0000000000..f83a8192e0 --- /dev/null +++ b/research/balanced-nullity-banks-163/PROOF.md @@ -0,0 +1,64 @@ +# PR163 paid-balanced review and actual combination with our bit engine + +Pinned source: chafreaky/integer-mult-bounds e1813796ef5c3ca38c5dd7b9e8d81b3908ff5997, research/paired-cube-balanced-161. Full finite package replay is owned by the physical/PUBLIC lane. This lane read PROOF.md, the full reference ORIGINAL-PROOF.md, balanced_shared.py, shared_bridge.py, certificate.py, complex/prove.py and the fused verifier's exact signed decoder/frame checks. + +## New certified arithmetic point + +Use the pinned PR163 fused complex supplier b=297370240363723/(5*10^17) and our previously checked PR161 p12 completed-core nullity-sharing uniform-bit supplier. The latter's exact constants are + + coarse = 302618322217 / 500000000000000, + atom = 302446903 / 500000000000, + old = 384599 / 10^10, + A = (1-atom)*coarse + atom*old + = 151223451172976757106049 / 250000000000000000000000000. + +The paid atom inequalities A0 is RETAINED. This is not permission to delete the old prefix bill without providing the positional router. The existing completed ordinary supplier must expose the arbitrary-width interchange/complete-spectator/restored-row contract; the exact complex supplier must expose the completed tensor contract. Those are the explicit all-size interfaces assumed by this conditional combination. + +With c=q+eta/4, r=(g+1-epsilon)/2 and delta=eta/8, exact arithmetic gives + + 1-epsilon-g=eta, + 1-epsilon-r=eta/2, + 1-epsilon*(1+c)=eta-epsilon*eta/4 >0. + +The internal complex exponent and stopping-leaf exponent stay unchanged. Since a<(1-beta)*b, the leaf-ordering gap is strict. The tiny positive backoffs establish eventual asymptotic inequalities, not a usable practical input threshold. + +## Full fixed-tape / scalar / row bills retained + +The public fused word has scalar_R=15681, physical_R=13041, reuse_pairs=2640, c=19385, q=3157, matched=6861, M_operations=33746. The normalized complex inventory has m66,W15681,rank1033626,deficit1320,maxchild20. Compared with161, the rank mass is unchanged but the complete child histogram changes; that is why its strict complex moment improves. The scalar word and compensation counts are not replaced by the smaller physical role stock. + +Our replay recomputes the full |O(66,2)| group factor, complete local literal scalar bound, logical bill, finite router guard, E, B=s+E and C0=32*66*B^2. Its local scalar bill matches the exact source-bound physical scalar_bound field. The full group factor cancels only in normalized moments, never in scalar work, routing or row stock. + +The row validator retains both conservative external reserves9909 and252, the full complex wire-bit count2159, row coefficient12320, polynomial degree70000 and positive degree gap224336/5. Internally borrowed/restored q-adic rows are not reinterpreted as free external stock. The odd divisor remains3, scalar denominators divide6, children retain incoming odd exponents and no child boundary rounding is introduced. + +Replacing PR163's bit frame refinement by our already checked bit supplier does not change the complex finite bridge, complex scalar bill or physical word. It changes only the validated bit_uniform coarse/atom/ordinary fields. The strengthened bit construction and compatible weighted local-ring implementation are separate source-bound inputs; this arithmetic replay does not assert them from a numeric exponent. + +## Exact complex fused-broadcast phases + +The fused source combines signed channels feeding the SAME target before readout. For a singleton target T=(I,b0,b1,b2), the three last contributions are + + P/2 + (2*b0-1)Q/2 + (2*b1-1)R/2. + +Repeated application of our independently verified TakeoverMerge16120261008.decoder_merge gives exactly + + (P+(2*b0-1)Q+(2*b1-1)R)/2. + +This equality holds in every actual complex module. An actual common complex-linear frame transports it exactly by decoder_merge_common_frame; no scalar phase is discarded or inferred merely from a binary symplectic label. Signed additions are undone in literal reverse order. Conservative original-source supports are unioned and never shrunk by cancellation. The face2, edge02 and edge12 source-cube intersection classes are disjoint, so iterative disjoint_merge_support proves exact support preservation. The actual fused verifier checks every signed source/target coefficient, value span, common cap and chronological chain. + +The original22 complex/P18 certificates and11 merge certificates remain unchanged and reusable. P18 fourth-root Fourier/Gauss identities certify phase energy under their displayed hypotheses; they do not supply the fused histogram, paid positional router or new exponent by themselves. + +## Explicit conditional boundary + +The exact finite arithmetic point is established. General Clifford lifts and actual phase reconciliation, common generic bases, uniform weighted local-ring compilation, arbitrary-width routing, complete row/spectator restoration, positional layout applicability, prime supply, precision/recovery, uniform setup and analytic fixed-tape transfer remain inherited all-size proof contracts. No unconditional multiplication theorem, fully closed Lean multiplier root, or general optimality result is claimed here. The next-grid failure concerns only this fixed supported margin. diff --git a/research/balanced-nullity-banks-163/README.md b/research/balanced-nullity-banks-163/README.md new file mode 100644 index 0000000000..ee29fa8a62 --- /dev/null +++ b/research/balanced-nullity-banks-163/README.md @@ -0,0 +1,78 @@ +# Conditional paid-balanced transfer with nullity banks + +Under the explicitly retained all-size contracts, this composition supports +`T(n) = O(n (log n)^(1-kappa))` with + + kappa = 118877394946471 / 200000000000000000 + = 0.000594386974732355. + +This is about 0.0702% above pinned PR163's 0.000593970203079492. +It combines PR163's fused complex supplier and paid balanced positional transfer +with the PR161 completed-core nullity-bank bit refinement. Gains are not added. +The resulting supported saving is complex-limited. + +## What changes + +For PR161's bit word, eighteen explicit four-coordinate blocks and three explicit +24-coordinate blocks each partition Fin72. Applying completed-core bank sharing +removes exactly 5720 rank60 exterior children while retaining all other children. +The normalized volume is 66364/3, rank mass 1590800, deficit 1936, maximum child22. +The paid bit moment and positive atom toll yield ordinary saving +151223451172976757106049 / 250000000000000000000000000, +which clears the PR163 complex supplier. The full scalar, router, group and row +bills are retained; all47 strict constraints and seven margins pass. + +## Reproduce exact arithmetic (Python3.11+, standard library; assertions enabled) + +Obtain two separate source snapshots at these immutable commits: + +- PR161: https://github.com/eumemic/integer-mult-bounds , commit + d14e29157bc905be1ced0776dd893d0714013f3a. +- PR163: https://github.com/chafreaky/integer-mult-bounds , commit + e1813796ef5c3ca38c5dd7b9e8d81b3908ff5997. + +The verifier requires Git checkouts pinned to those exact commits, with unchanged +tracked sources. A reviewer can acquire them using Git; the submitter can upload +this folder using GitHub's website without using Git locally. + + python3 -B research/balanced-nullity-banks-163/verify.py --pr161 /path/to/pr161 --pr163 /path/to/pr163 + +The verifier does not download or modify sources. It reconstructs the packed +ledger, proves the finite coordinate partitions by enumeration, recomputes the +bit moment using two interval implementations, checks its adjacent-grid control, +recomputes the PR163 complex moment, and replays the unchanged paid-balanced +assembly and full finite bill against expected.json. It rejects the next final +10^-18 grid point at these fixed certificates and parameters. This is not a claim +of global optimality. The verifier checks arithmetic; it does not substitute for +upstream physical-word verification. + +## Lean scope + +BankAndBalanced.lean is a single-file Mathlib-importing snapshot of existing +proof bodies: actual split-projector address interchanges, explicit partitions, +weighted endpoints, arbitrary dirty-content semantics, PR161 packed inventory, +and the47 finite arithmetic guards. See PROOF-ORIGINS.json for provenance. +It does not assert an all-size multiplication theorem. The bit inventory theorem +is proved alongside actual bank endpoints; connecting them to the full physical +multiplier still uses the contracts below, not merely the histogram arithmetic. +The Lean version is4.33.0. The compatible Mathlib commit is +`db584cd6d46c92f209a44c0f1c829460d327499d`. VERIFICATION.json records the +independent source replay and axiom audit. In that Mathlib environment, run +`lake env lean research/balanced-nullity-banks-163/BankAndBalanced.lean`. +The52 audited theorem names are listed in AUDIT-TARGETS.json. + +## Dependency and publication scope + +This is an additive research package. It depends on the unmerged PR161/PR163 +snapshots above and changes no existing source. A PR to CrocSwap/main should +explicitly state those dependencies; it does not silently import their entire +diffs or claim they are already merged. + +The completed all-input word, split-frame charts, invocation/stage cover, +weighted local-ring implementation, arbitrary-width complete-spectator routing, +borrowed-row restoration, paid layout applicability, precision/recovery, +prime supply, uniform setup and sharp fixed-tape analytic transfer remain +inherited all-size contracts. PROOF.md states these boundaries. This is a +conditional finite witness, not a fully formalized unconditional multiplier. + +See NOTICE and LICENSE for attribution. diff --git a/research/balanced-nullity-banks-163/VERIFICATION.json b/research/balanced-nullity-banks-163/VERIFICATION.json new file mode 100644 index 0000000000..26b13611da --- /dev/null +++ b/research/balanced-nullity-banks-163/VERIFICATION.json @@ -0,0 +1,400 @@ +{ + "status": "PASS", + "source_sha256": "8f32bce76e47da3c6165ea94f179ddf351ed50271996ab179505f588333b5867", + "kernel_replay_exit_code": 0, + "theorem_count": 52, + "axiom_records": [ + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_apply", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_zero", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_comp_disjoint", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_involutive", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_id", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.partialSwap_commute", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.bankSwap_eq_sum", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.bankSwap_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weighted_apply", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weighted_comp", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weighted_id", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weightedBank_eq", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.weightedBank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_apply", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_idempotent", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_disjoint", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_sum", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.coordinateBank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.bankAddress_bijective", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.bankAddress_roles_injective", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_block_capacity", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_block_capacity", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_bank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_bank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.inherited_rank_mass", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.removed_exterior_count", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_rank_mass", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_max_rank", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.normalized_volume", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.packed_deficit", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.actual_role_counts", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.selected_weighted_bank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_weighted_bank_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.Contents.run_eq_address", + "axioms": [ + "propext", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.Contents.run_full", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_selected_contents", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_undeferred_contents", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.inherited_rank_mass", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.removed_exterior_count", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_rank_mass", + "axioms": [ + "propext" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_max_rank", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.normalized_volume", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_deficit", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_role_counts", + "axioms": [] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_bank_and_inventory_certificate", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.literal_charge_lt", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.finite_row_reserve", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.row_reserve_value", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.core_slacks_positive", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_slacks_positive", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.strengthened_public_margin", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + }, + { + "theorem": "Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_concrete_guards", + "axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ] + } + ], + "allowed_axioms": [ + "propext", + "Classical.choice", + "Quot.sound" + ], + "forbidden_axiom_count": 0, + "sorry_count": 0, + "imports": "Mathlib only", + "lean_version": "4.33.0", + "mathlib_commit": "db584cd6d46c92f209a44c0f1c829460d327499d", + "independent_replay_sha256": "4a843d015dd3fa5daa696fcea6beca654a52ef0773720e979928cdfaa605c512", + "log_sha256": "d4b24c5a28ebe4db51f41fba151500fa4c0ce4a739069e0cc1fc180b8d2117e4", + "portable_arithmetic_replay": { + "status": "PASS", + "kappa": "118877394946471/200000000000000000", + "decimal": "0.000594386974732355", + "strict_constraints": 47, + "margins": 7, + "bit_mass": 1590800, + "bit_volume": "66364/3", + "scope": "Exact conditional finite arithmetic plus ledger and coordinate partitions; full physical realization and all-size inherited contracts are separate." + }, + "arithmetic_log_sha256": "393570c538268eb8ef36dd89a007861a7c4e6a6c7782f5fdd0c060e99bc37df0", + "scope": "Actual universal bank/address/content endpoints, explicit inventory and finite balanced arithmetic. Does not certify all-size multiplication or discharge retained implementation/analytic contracts." +} diff --git a/research/balanced-nullity-banks-163/arithmetic-replay.log b/research/balanced-nullity-banks-163/arithmetic-replay.log new file mode 100644 index 0000000000..f543fe4f7a --- /dev/null +++ b/research/balanced-nullity-banks-163/arithmetic-replay.log @@ -0,0 +1,10 @@ +{ + "status": "PASS", + "kappa": "118877394946471/200000000000000000", + "decimal": "0.000594386974732355", + "strict_constraints": 47, + "margins": 7, + "bit_mass": 1590800, + "bit_volume": "66364/3", + "scope": "Exact conditional finite arithmetic plus ledger and coordinate partitions; full physical realization and all-size inherited contracts are separate." +} diff --git a/research/balanced-nullity-banks-163/expected.json b/research/balanced-nullity-banks-163/expected.json new file mode 100644 index 0000000000..ac35a985d5 --- /dev/null +++ b/research/balanced-nullity-banks-163/expected.json @@ -0,0 +1,203 @@ +{ + "public163_pin": "e1813796ef5c3ca38c5dd7b9e8d81b3908ff5997", + "public161_pin": "d14e29157bc905be1ced0776dd893d0714013f3a", + "public163_kappa": "148492550769873/250000000000000000", + "combo": { + "kappa": "118877394946471/200000000000000000", + "a": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "actual_bit_saving": "151223451172976757106049/250000000000000000000000000", + "complex_saving": "297370240363723/500000000000000000", + "beta": "1/1000000000000000000000000", + "eta": "1/1000000000000000000000000", + "weakening": "1/1000000000000000000000000000000", + "layout": "balanced", + "minimum_margin": "148684971496890003109996295013224259329740670260073915526993780506219493482636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "assembly": { + "parameters": { + "a_bit": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "a_complex": "297370240363723/500000000000000000", + "tau": "499702629759636277000000000297870240363723/500000000000000000000000000000000000000000", + "sigma": "499702629759636277/500000000000000000", + "beta": "1/1000000000000000000000000", + "h": "1/1000000000000000000000000", + "q": "148685120181861499999999553694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "c": "148685120181861500000062053694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "epsilon": "249999750000249999750000000000000000000000000000000000000000/250148434971746889753110246443448196006219493780506517363723", + "lambda_": "499702629759636277000000000595240480727445999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime": "249851314879818138500000000446305360545584499999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "alpha_squared_power": "297369942993780006220242738461420265549234450766591279249993780506219493482636277/500296869943493779506220492886896392012438987561013034727446000000000000000000000000", + "delta": "1/8000000000000000000000000", + "C0": 15357445252142475384911163534109733749112243072532294522627214699095583391747069453015536869130962499078425734735050481333032075445939872461101114599020281259562662258170998957393710556545542312921582989427662274485329899950952713421816526655381087895496287770401717512180475320952843251459839043969437072824418176476598623078938232301782899487631524354139162223639580645057575093319016585855883362749273644743912576511739029226257448474109965858904887293856764291085704378482705543642743582699731591570444837469622915711281339662658470902774835017037458988488465427440232940765537959710317013225810538280743923839280388812205072641314356183042305510202119080452038882983886354196012930374340242270064451211154894495324569137083000898569966031575646710562032417520201947651018953101854993681363189960785249652810224307734743971463556809632147992930336001223203564811609443757227524656025252388216924047943515945962482778639675007737223836113574809775087004312590457672098104266793767210167756881131965639249547242261291148431122961343360403035918690458833265034156684544796356167510554300142479682193629183865062842210966866215149599648498462817434065807036767215436665289411673287606221342876728596858067741247351856234749613414993233663835493244872205601246532717431247278978643837522429726763564699477565139989830162993792904825017556834099572873144396427277834450657333374574833299173306684498054377614210521174843157691339434589262930978708953435147709693441542734751423567341711456519766129441335525145009636510278620206606618209794045105354620973745461908604660963667829752812683312700672549783756754214552233059577108376206089929672765742129104305017830925877317891424412781058627609538441065590163871519733813521295972292820509613876578455153197023520481021955904081459150448579147689346491254684839330616470564185930346984119702983975598093101649606680541520115532695139801476595552027029210855155575196600447782752333381435538957578018977288201862206264112090275664328439187775588202657996802534361862135624185037906743769078511012940911463980555060014233048818444490840167403853163215385104422616916238868919628918778403209580385882406560804413513255451720252448720844597799642414708000459937671656880752317307055659864202740719808836383460822436051417926959028287097162092099007938524706426499022219987612421377685618112804927146994264711785488586945785240167906358606971515493555398014431315113674744516993964713115980076584660719851394498342169686372826455015602394963235298255680806317028517740356487467588715781959823030708305997323079365631473212928552712014279937214776239576755178846311358804891034559758183987193620048815717564222230865513538439338884621344923087514075350169161585349609388105164408746922628300667809990350305051223354729739822812129995940393395745640350844745819573328709538173363554960195158338995866276709837573496029679327812942222485449556678673125777666455090137482807140559773922418609324526787255729675040800350158797607624085938749314599411420196003926016504725906620356950693885263679243264052490544607997208757140999444813647887608959654628764349337892114095226304571857789139396466898635363442586061896314793675379741062568415395909939913943977136317328948408347609615543535512564503169158011616271574941760888432089126559441380397781088773287603708388049477480751957802564699863240969236556821061703731263632897651490586929653266366467291706368527258573537591028669351757400398782382265284209755153851379115839539496137737013322015801583949394550159190845504564731212984616154246766399046435315916222976505649709734514063608448483251885603227987957682811751663191162359019184715757781406281790773196003264023192654209596563950137688247087916589368222285411034466549961563557115776204401267967301165270992543082985572513692792426909810046918181026336695837380661651497464538789508981274975866827786282188643394146105416918552188235060621333938990665591245692616677386942733995634365414310892424158548377926109248344829250262571053273128114273482961861955931907159165987547320850251019496180176466947939804233110589080956648699901451009563092830097268279182515139935838755686481320150266773583823607795950175600293058153918922176713724781713948838069755302468035987154557922166892475240817070237232138607268077009545437619426503880355761114009591339994605794794001020508533353812023095543401163023553598034123651984728475700845230719800193547728212979750266531777619712504034289062401404471912280606648452063867661418518721755597512428441105329958686863698450773189135879342905939055200728680226524178989341579281469287968738753218733190329168543630558837211258512788608867957997649716905966190019892774232858317111012305788233386080635971307321348590093203803985837203396453462490275740114446711392084240374785770783585327623745983866417745215448806706527134306775572840392814771485415344282272482843176250638423656823721652312273641618331255312744608631482640679434692990453093038218751661188912535367976014847092473375070642639119056442888599065857113064310439832665052585587165241091396497414544032142227693438340921051880002870789544258849793092585095580790899673065792598706985721897653771206689510301984893168099247422374135978503568122299635339675065918102994876072375809509711150775518050087585980085325069140077184913015586175359019337743025669027927244848152107272301273067262691376709015428780463895666928989124225042956880949524533211251690395882039755731304981153887814565645405411900397423005512940778152666082607402587636759298020276808510614873583266382195368969224890666733086254355771008312637610026618355903351502769808366387593736061934748232796991615770783024671563763719542454781352666994026552783073123784018396222160158786816605307881507385028757943837389214039403426461434611574517852257349000356031985121905382498856750868918199508132162104567522590074676730760987195745020768236082884128122630148342264961239748929477501798139784402415127205172542327244416894961880786803728110441137009680011321834162388786910104956171468295563095870693590729676559075219589923557250351962364441277694690109649462859128711297095723665651874902259075309159943153354181071623322558233082961227775034116411246355622276901424070786239801653759438822545032352203714597472503214113891701408810938465667365295272014479273410555764948835826835122792038954777493155321759668029159339046444678258438237028780464512431952446756404202134123069358126602833074738914115280881265394956925042519719742254864757464671633488932767804886905962935123410904305756410662082136147393307842760175069163426907786642054294279311873356836112606312740305599291324422687990490545795545812059532270854504449419066760628338448507637939916466471613583443915561681938944424249779113633898424800938242658547592580923856316635856282162357370626816879881433584748872539622622853422351359643872530232947656470775138520290203420119185572443133104795316798772710482286558245567186725675849815631540830722653888491403493423443060393131821863586916609484230011646115685464367443398275352895293619823827863323136556675460547404174091772429632191887492365008909184202378563290373903254813967269490694854559640873914059518692310080149081039663908403718086857885210147883848059528409726403428887418564218652019563436630257802064848122477809365426495123394335736171321388417991767117679547216743041941836346074506859710017578776278788109363506858102700967586685748196455022373981926169183323741225222519434725920792541432893999983494325227182185092244901996248837194897240572613282419973589003317338625017050889002021070002769777316650328770344121868303589242995678709582278765760312990023597583514247312589173889615290579192486516917302514167501321935502959182264740119123521377099866661275494171245904230022237743976694727166412680344859737572180516479793720463078685637640402318419850891717371915598468157635047263413685668580942119759081941965831602550959400571237536843840535193152141567477133273110537734768756017966680955120328013636072286758016579258071030040371579496333832007082824570738597727860552041333955390542612368743460797584835113257753851285192191022579564897457782034348609573814424384289888402675185044794152324894126370010721368740083908524415346724351937463328391069605941636324825758897781601835558977301150912159233686345681635921682759680146028990945726210669889839326883284779019520061278939628614276787714132819691734200973877464955793192177860065926883684105036642674367696350940676574589508241654773564305565067668630337484189910744964067235887392483327931691754521855016731670994450150163647014734942723079944381859466896485395878592771374138417663001369849314179691759223902985720234051969165368004839893731942825286005684142045732699657089886590397398498986831566449111677499680518918803745231980917919265277073822198233285239596544992601050018533496646508885121602526922539416708605948360081833495404101232792778681794601164526648161849315737091737566798749678109962391366025769588294210539321836034371619765387462514950312425142182491691177765706992671620716490669928089752207092950497729875454688104468905565370280898977375418355615156707803881728996034523596985866434853484907807159064919361081355890264204779420941569173449467271606432837424442544420227487659623539045448425026290152503494341851942657150815680353988262964340222006263771357243438345526332133246028200718471116912958310286931605072641259722965559632751411512498885154644530548890064899825343993864741188240529641051471147106115302588461358750320137895532057138133467737935249581642953427506573814972345863114547924053256150485528767374483463122291625945137153172161327025467539142818243517536303827525417791007574653341564130918711311085531896227678539776530170238679927126702319821011263385977608771343408073426202981258643540211867388219042262538007452148966691040487530161851837596561883401593454928342396095885467977314649747046883758269398510352717065307273884193634422969311872697875000890912436359661916664935048436553578105273921278816417314399029184864454788428425627614701364738767523465831298023870607747739447662744061266852531990376222700908399781385118689730829590664138109913900309005281987384151050403927846221285453154694289125043140195404776526265600738437602000804869848968998676102524008244964461300914183123395815251942087562057986619495964610130833226909353447970972937837233555775086461065294394874766728980372166839176871737076174330015702453845154971317846497632360324802043776079095956306168573250001260885199678853881201955234066410001726231388027625225422715243160245854198188306055692197252175126275317936774434285411043479086977947059596666794762413671935284012671803336916557406465122064248009969067563401720526233760718514775567595961200678874789281653919655761992181520617297023628509177055050752246617905732073578257053720278658146132455501180628400116983864997500461632417381223379402150048550694528326574055213527639716298846521588292412547724565775422312583063721052265788766494620234777025544561761238025906585142316472661382975049089132305643848505238185757307655076532283710449323604870822029756812226427726940760785664204346137673733931449098447723507516817760950053209355628249927120024471829448213413264238549781112947108764781082095939899758148640281213832700546768589438192915105213835323714397430374658445260422890240100260285397802621578676962235478769106244526941267015755026726406375406335846615332686378682872757816474678365991850236570424736544109896918791697961698512124588860981756679337206275466315977955803425779013681759453021437049640621908136265351037900894054210158292196519993180127338953822532372490062848454169844546133791227679064800781921499194382945101698176137998507821685853634310683669394151569690187927102288551254986697187698812309950969450338777326132652208542733482528518379310056533809093795619536284636413952, + "C1": "1", + "kappa": "118877394946471/200000000000000000" + }, + "constraints": { + "a_positive": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "a_below_b": "297870240363723/500000000000000000000000000000000000000000", + "b_below_one_over32": "15327629759636277/500000000000000000", + "beta_positive": "1/1000000000000000000000000", + "beta_below_one": "999999999999999999999999/1000000000000000000000000", + "phase_leaf_above_bit": "1/1000000000000000000000000000000", + "q_positive": "148685120181861499999999553694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "q_below_internal": "297370240363722999999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "297620240363722999999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "148685120181861500000062053694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "249851314879818138499999937946305360545584499999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000000000", + "lambda_above_tau": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "595240480727445999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_internal": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000000000000000000000000000", + "compact_leaf": "297620240363722999999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000", + "compact_reservations": "1/4000000000000000000000000", + "lambda_prime_below_one": "148685120181861499999999553694639454415500000000297870240363723/250000000000000000000000000000000000000000000000000000000000000000", + "epsilon_positive": "249999750000249999750000000000000000000000000000000000000000/250148434971746889753110246443448196006219493780506517363723", + "epsilon_below_one": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "guard_width": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "K_geometry": "187648497471684389815610246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "K_dominates_log": "148684971496890003110058794950724321829678170260073915526993780506219493482636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "record_suffix": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "phase_local": "1189479771975120024881721399150596302866197133805695461587993780506219493482636277/2001187479773975118024881971547585568049755950244052138909784000000000000000000000000", + "phase_boundary": "237895954395024004976144161082141863061436938563984333760793780506219493482636277/400237495954795023604976394309517113609951190048810427781956800000000000000000000000", + "gamma_sublinear": "1/2000000000000000000000000", + "cell_above_band": "499999500000499999499999749851565028253110246889753556551803993780506219493482636277/1000593739886987559012440985773792784024877975122026069454892000000000000000000000000", + "prime_interval_packing": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "alpha_positive": "297369942993780006220242738461420265549234450766591279249993780506219493482636277/500296869943493779506220492886896392012438987561013034727446000000000000000000000000", + "alpha_below_one": "499999500000499999500000250148434971746889753110246443448196006219493780506517363723/500296869943493779506220492886896392012438987561013034727446000000000000000000000000", + "alpha_below_one_fourth": "124776847542879664870334880483262677737560512439486667402611506219493780506517363723/500296869943493779506220492886896392012438987561013034727446000000000000000000000000", + "delta_positive": "1/8000000000000000000000000", + "delta_below_one_eighth": "999999999999999999999999/8000000000000000000000000", + "short_record_fallback": "124925488299890842369961635445798756597002291642687025932913237091271344880319156585023509318605420729/125074217485873444876555123221724098003109746890253258681861500000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000000000", + "artificial_boundary": "14009501838189800946199056522825989459638716861283156441622860018658481341519552091169/2001187479773975118024881971547585568049755950244052138909784000000000000000000000000", + "literal_scalar_guard": "2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502300395295110268283892329629967641512881281845729875540877712855573167398062864660726534646659833991598092547912694840931849170819742026815806639063040684137169911800120578683941778569328977416763181455759212145572350284364135506480112435379335095161413824345820478188733746341084963929103360041005388269595885739821332245361687045503891959763361282446772643636538973819300570731621612448107802729341159183182224719977452000576259056408184433241944732592916458503799405444637653195130609403095897994777175230429371502589716999397156591089521384260227523750139521300555680630776750314492730894313419528350003663200896896481702508961659676115387976191534728268158033073202158986064397657271120884989619531686201785532856848838351726712990764953292692316577971542964860087221084056487258707983383332518175908038382452851367864764375676180836888990431510931422637200730393089024411300890026092445213475424149516345595246837739432327398879130444965683266277618654824387798668288690816269044032743497469868995933641353167029515326868491539231575130458506422958615046373874011666733977670718257738471087663982150036606588168403662962245014126762774523312082974353720939299325830027112686065596396563684379464760863567750505273663266990829240753164379423102212077882168324688369156584492035254641823850049703590923235698741657533537636810477245200716458249722687166289520444463964006588147040898324650333018052255000752196467076235591418337871170125941561043486459541844128813990337094548672191384555378319681919855034938897205066815832335470158493857210653871984346296307309842117077055129731285822941407416685330924399177974173734203191372995118224765989216126088603453990665599427063379734008006573341382441177436800904795845286897453339448957517014672032244437136857178259324151032125677177120918128175672196828221037371387876912147643394392267032178442074289027057699540962273982733407945128112662263877136909081555037579679923584487512471719463693350538951817320733737652868165778093968867346074886351599358000572250922402265392047599691810670843526930634894659260668428166977235050522614886812174154285898414975965282587010695944457807896392533688466876385946856562344785037017928926526152785906797654963567438134111874606692163098311245477678653723584189837562265768417631230303780300126531946276464630455798487584270866369218135646826058725022912444281636903127026716738879684634880350366516195078355590223401294487338543981736742044946094647939244580265859113411600499184949498262487709193814130417797950746654438711147973808745177521188545042267549153125846865570156725665992337342240005709594972881776846278825507183836670357616862251518086361085475353981057496736810752119163563435315645712635546526222890232935760672308845202925449459541733255275900029441154042797746485573679223116576752410107206763939514122826247482273843933808354919423106595573344274709187463476638670810429612549624988316174343774207945258010505356530006779332033584483072463542246663764304451715668563500690114549984070154387734421300481216580296167548256141444473938011836029321180323678958139862152768847387786256893726110891903381851864775785325062787037359338093253221694421539670115785909595101716672580654959371007544666521360790406146565887786436679029690991048454670532209479466620", + "row_product_gap": "224336/5", + "g1_above_kappa": "27344449988706228303267101317366475079462455075626377728467/50029686994349377950622049288689639201243898756101303472744600000000000000000", + "g2_above_kappa": "176752997545499999999702129759636277/500000000000000000000000000000000000000000", + "g3_above_kappa": "136721999795096169769445753476585931949116269158638108135817636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "g4_above_kappa": "176752997545499999999702129759636277/500000000000000000000000000000000000000000", + "g5_above_kappa": "218755349761214854679247057428685357187503634385517241321218636277/400237495954795023604976394309517113609951190048810427781956800000000000000000000000", + "g6_above_kappa": "1093777749399814160383794299584412559730302196805561328632162636277/2001187479773975118024881971547585568049755950244052138909784000000000000000000000000", + "g7_above_kappa": "49970213005750621976722400700016589102023202561265171606717855075626377728467/50029686994349377950622049288689639201243898756101303472744600000000000000000" + }, + "margins": { + "g1": "148684971496890003110246443448196006219493780506517363723/250148434971746889753110246443448196006219493780506517363723", + "g2": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "g3": "148684971496890003109996295013224259329740670260073915526993780506219493482636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "g4": "297370240363722999999999702129759636277/500000000000000000000000000000000000000000", + "g5": "237895954395024004976144161082141863061436938563984333760793780506219493482636277/400237495954795023604976394309517113609951190048810427781956800000000000000000000000", + "g6": "1189479771975120024881721399150596302866197133805695461587993780506219493482636277/2001187479773975118024881971547585568049755950244052138909784000000000000000000000000", + "g7": "249999750000249999750000000000000000000000000000000000000000/250148434971746889753110246443448196006219493780506517363723" + }, + "minimum_margin": "148684971496890003109996295013224259329740670260073915526993780506219493482636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "absorption_gap": "136721999795096169769445753476585931949116269158638108135817636277/250148434971746889753110246443448196006219493780506517363723000000000000000000000000", + "scoped_limit": "297370240363722999999999702129759636277/500297370240363722999999999702129759636277", + "recurrence": { + "internal": "499702629759636277000000000297870240363723/500000000000000000000000000000000000000000", + "leaf": "499702629759636277000000000297370240363723/500000000000000000000000000000000000000000", + "reservations": "249851314879818138499999937946305360545584499999999702129759636277/250000000000000000000000000000000000000000000000000000000000000000" + }, + "finite_bridge": { + "complex": { + "m": 66, + "W": 55289425308686917570667462003848984137279416792299224505861018216701799982771898723399775354204853295805961609794608399572705290217939777070394813229172091836043383807923346533454778535440750078150177937641654588341410324320198476949210412083427740588455832697819257181207769482758056564498236253792755202674345544977810552426328969761296772286351537105068425501021079545710610456960096042689826460881065698447986494944293748415427762989564601158820946190983705593808102814345665070822486126387326743650597711970103922799169299588653944130760944631434266279781137209771330745357342776869613754015075771348789372590506971494518620160000000000000000000, + "s": 3644447900268912943109414328243760606968916169973667382762266489079562190484827918491984962710627236319796752431959817716774254084995103629498368038952632650731597387401860658375660284323288102817298375165665000033733727943740161401384131203376384273546537116772918023288250872991855045885852556983788686252118684285009528095288355825425045440421681901139178392763115513456710378431594683516441206903555411875773132378246959377568071994633741498462308483362140404190134180191368688508000959433277660400012289435164252108106253839463173372623041397590132958210895843988718928193401491300595075958649748691803058735618605887251661455360000000000000000000, + "N": 4654170104423616554638164010272346091525338318081434624560713222756608378117397252400210666893081203396713814484336655024295069388921657147689634172725410447265943921080212832355099015801402340613368718684202796799353461392938077263755994129846605291547841283152950671461912870176687371031035766533157124388121683525968364849356178820541530477519547795337690304275736560189911727771655301087339514594924221793976288076428017850160362677522178019873965242784165001200605555445206166283124908285904680927159554862606796638919933387986940007180948084528616254659211856188901000183131972799431806345252217217039855354854231386567475200000000000000000000, + "maxchild": 20, + "invocations_per_stage": 3525886442745164056544063644145716736004044180364723200424782744512582104634391857878947474919000911664177132185103526533556870749183073596734571342973795793383290849303191539662953799849547227737400544457729391514661713176468240351330298583217125220869576729661326266259024901649005584114421035252391760900092184489369973370724377894349644301151172572225522957784648909234781611948223712944954177723427440753012339451839407462242698998122862136268155486957700758485307238973641035062973415368109606762999662774702118665848434384838590914531021276158042617166069588021894697108433312726842277534281982740181708602162296504975360000000000000000000, + "stages": 3, + "auxiliary_banks_after_sharing": 1, + "halving_degree": 1, + "wire_bits": 2159, + "original_X_involution_scalar_group_upper": 42240, + "local_group_upper": 5590695752904, + "logical_group_upper": 59136504735780189634999122266089085381987411497867861183671235415108810095101489164817433605230492896129148868463928780747576603269834668925893621152836190577438101676912456817052894678520987540344208718839624285352724904699280500418009685178863424392243033283182870720956222995240509714695488290472051543165738803262111844385686629661506803778182910367304492672097783988924531969191519841022750989302113292311139776749777658696621768152985036757572201362511984121485098148992035267252162690438112963629944630326145924542798201505708797416747199839313407709097725131951962883250596345338061409580641579961608642981267750915008370779755642880000000000000000000, + "finite_group_router_upper": 3479719089404603038166688260876835458833739678750486633731973635332158574518197699679233265969464758068756825255527322768187233334873743977333181238063307365955524565651705398908489083668032699822955167376653618449211979424977635935552774312980577358662299210665749094462422814815087749391475292275497276724730517652904195315190955882060599496666035178070531927710363426217754650869056290144997324417352981447034060532428229017099484283808649787047500056058561340594317322256869227358784818932728036616783861742967302454974980980477893850334880027922626705218765369919615730171828950753779697834754053841312869254223712881658375416371048821774272513711787550744971467059988700056621894416458148343910657284033110077987885034310049959643458369537538930796920006696868259937314002097782545042336782520144945864918000640774053990310410371159189200791841062009789418397184561035518339986440869914839611450752227624590471092048871803833288698336136647179722281854457028644276388251018887297210950254179413177754828956516021498043134385899631840567642462364347369854591277727499718116839775910615025986758691425727265284886688868620365668288045614472285770025493228130378481003082974363611167333376315497341291498806160947730114860708689996296011590498240948369993493278879178322933664038394389614488329541870648273033058485800602185070869593136180808072512871525509762601219059134536562737551642488187618031728016735555909843837835587149453946245257918593913137390275991993065872987146454871992117731004302081180868659062577005020528773619897192325218127671582213094826925918621126412480628254023896173064705604975513572051058330514985971399165617481503911306830693854410510992415713293386948792883558564412701695222370661964558334961972393438874056958708489620405356354111252959790745871615030401166899684014181692591004041320265654083513165110233253464114438746187657621474191260209937704436778932485890224165056314715481828815459785986781051512422400000000000019248832, + "scalar_group_upper": 3479719089404603038166688260876835458833739678750486633731973635332158574518197699679233265969464758068756825255527322768187233334873743977333181238063307365955524565651705398908489083668032699822955167376653618449211979424977635935552774312980577358662299210665749094462422814815087749391475292275497276724730517652904195315190955882060599496666035178070531927710363426217754650869056290144997324417352981447034060532428229017099484283808649787047500056058561340594317322256869227358784818932728036616783861742967302454974980980477893850334880027922626705218765369919615730171828950753779697834754053841312869254223712881658375416371048821774272513711787550744971467059988700056621894416458148343910657284033110077987885034310049959643458369537538930796920006696868259937314002097782545042336782520144945864918000640774053990310410371159189200791841062009789418397184561035518339986440869914839611450752227624590471092048871803833288698336136647179722281854457028644276388251018887297210950254179413177754828956516021498043134385899631840567642462364347369854591277727499718116839775910615025986758691425727265284886688868620365668288045614472285770025493228130378481003082974363611167333376315497341291498806160947730114860708689996296011590498240948369993493278879178322933664038394389614488329541870648273033058485800602185070869593136180808072512871525509762601219059134536562737551642488187618031728016735555909843837835587149453946245257918593913137390275991993065872987146454871992117731004302081180868659062577005020528773619897192325218127671582213094826925918621126412480628254023896173064705604975513572051058330514985971399165617481503911306830693854410510992415713293386948792883558564412701695222370661964558334961972393438874056958708489620405356354111252959790745871615030401166899684014181692591004041320265654083513165110233253464114438746187657621474191260209937704436778932485890224165056314715481828815459785986781051512422400000000000019248832, + "coefficient_bound": 26, + "coefficient_denominator_divides": 6, + "physical_roles_per_vertex": 13041, + "scalar_role_reserve": 15681, + "reuse_pairs": 2640 + }, + "semantic": { + "E": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502321669744702239669766220301603051495828490583570938240111777787782014001122271218445147739195177908841071237077792506927992415071639481287934963020079344270862984684187567622360024543895783028882498953590185257038557239940673240626468643368823999410551509602058751932143148382694138342410608842333662718029697667989791175513586554200854740731459293966529233055536061969781963320838669151098661422457138921277082622164137795469147496211511322562066280900696999831523487436381943489401961567925956281665912072090521189650522207591571669884563492632931909651763770046785044112255149075080873122094182353022875986869802422349044539017963355023267705914778716783180458599520413534783810737399757247385729095915558770945391013146468917168851668274934662193436174838169528701290700082546747345178936347690422427243025501785505598846931132707517074018864801984460082153246719248707822481161323911955535113882348333090393695902813625708085075015669784440975145753369334293852940667458064844994688668336024010800150395315576938849061199978822680103323420405685185206464596975259762308648632960015260589795957686411303195188970642136981200020612673216982647101772024377457131081587471316365151234814344868588533481462325684389456974760346031477770490519476206968826572010284586650436415534597438574250989776816788985446571882054910185258404604921501095830285435654201498641119949704921323774495752793667591944350577548426702717586748127530977206426634549344302895505805584949398428181562416904461699596594329480525623243420528264836148292818768769350692596447167253370588874707882298688144874473402049102066149408428788203951069926478682008479594126885860467199416891311157048487567291292415433728582208266824550555611783694299918333971108011889617125987920738925780894058664855333638562116706548865793457025040257317817482003230030800610950206882341770962709629168130715110606414569765276868551298243024594965666028677618482770566025382958386479526445592997393299222505334334810970756182406549853585591414029318901528057905332134475120951698401281612538897769771961018810042535256266707200924706771810420034564298186505272754308082537655392046288244525205330252451867404522390189005966175669078020533617918016481546951264334026642014681255606464964359146464841649877319476339502201924971969471893525550072109016797232851428787722153595610002918213678329006553127105258349908248817802152401611184593302599887845988567634615890158717277686795970005894551372090193337567331280921081475166223551308420045168020835598673068023688387912759729397096143348337936910669268744539778097957482284456560707447400857119640107592401571895089013937447228090919814237946186920187584321709176613875721255368427566261135650137752515677697574570528329173517904719925762286493031554541705154620843348715721567438958866317477011253300468960979381640633530847437201856541073670057774631027499283050858733275369194131796578683114967950554479074368228575224583907907427789555349250515039249072700970199923385700299061774818639726052900299468569845085172529307774936976732873935072470343889447308758171242271785907632782478010150646402320884683286507451929585875674756163722381094128601559479626851954727447703184488907161983179654823646904286326491845601733832960147554013682357171974670532209479468736, + "literal_charge": 21274449591971385873890671635409982947208737841062699234064932208846603059406557718613092535343917242978689165097665996143244251897454472128323957038660133693072884066988938418245974566805612119317497830973111466206955576537734146356207989488904249137685256238273743409402041609174413307248801328274448433811928168458930151899508696962780968098011519756589418997088150481392589217056702990858693115979738094857902186685794892888439803326889320121548307780541327724081991744290294271352164830058286888736841661149687060805208194415078795042108372704385901624248746229363481478398760588142227780762824672872323668905525867342030056303678907879729723243988515022425526318254548719413080128636362396109564229356985412534164308117190455860903321641969876858203295204668614069616026059488637195553015172246519204643048934137734082555456526680185028433291053037444952516326159683411180271297819510321638458198816744798449065074193380686195885224818757708868134714509906054272378767248575950655924838554141804216753962409909333734331487283448528192961899262226591418223101248095574670962241757522118708293704261266588600802238474018955006485910442459335018797670656517831755757444203679085638417781184209068720598757933884183311493355202237017326140053104756748689841959898281279831042562183932427139727113198062210873140397376647621594127676300379372035712967035209120675485740914735627454854469017258926298322547674506250510512536112639335256508607783259409046263740820584437844467868232270315041216009798605768208481631059769332460483298610856835385793295269024292567398040181611089744742116226160658732723097863804773095752744478817106599008661094477983290802707703057821967864229035699720575634925442109378174982789504073047073654672440659608973248706681343757201486596009487529991029371744875328849368060489596444631842153888463306812490074738784267554879103657411065452295782543460606170130362331088529119596063445190886101798470874007806981899646854347405184600597158102590404312580986239516527677719543527485654409732209728904098709470941695370839137066359549374107089289472150402091884998245880278399771529307471721071841710934238391851991516863376065920547960045403968948246742551867747711120361517979513130222152035322518157295219486680492741257460039757210571084570694668189171766993603795644386341434363844516855784377474356092154953306094108845468355222881532078922467766730834226786404809490398344233321402820173295950053925059799903432845613071708217869320582290216725288820710851353890417800722321369249676764785920651918622159792894643120115618692912527800756618464223365207395147524667225815555293069581830100776870474057562719859825834712230340651679877064969136204864130945489937502205989454807341634767656864672701794476302744759776278641675713466800550969235993759735749740724601146093705021465258814386048573593268048186154246951179057683224573863395256636698383702184029058126651776210704866422970564719227377900648457521764767442575706826037205895471670031735561084704089741982745911734148544603955949011607388720591429461134458507860126128434492284131923754863935090223893752676209992779904655587153800550611969126363043000875379865058087181838941538108082772234581328220283816102237764965701439455167945173710874983991366123520000000000000002116, + "strict_literal_gap": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502300395295110268283892329629967641512881281845729875540877712855573167398062864660726534646659833991598092547912694840931849170819742026815806639063040684137169911800120578683941778569328977416763181455759212145572350284364135506480112435379335095161413824345820478188733746341084963929103360041005388269595885739821332245361687045503891959763361282446772643636538973819300570731621612448107802729341159183182224719977452000576259056408184433241944732592916458503799405444637653195130609403095897994777175230429371502589716999397156591089521384260227523750139521300555680630776750314492730894313419528350003663200896896481702508961659676115387976191534728268158033073202158986064397657271120884989619531686201785532856848838351726712990764953292692316577971542964860087221084056487258707983383332518175908038382452851367864764375676180836888990431510931422637200730393089024411300890026092445213475424149516345595246837739432327398879130444965683266277618654824387798668288690816269044032743497469868995933641353167029515326868491539231575130458506422958615046373874011666733977670718257738471087663982150036606588168403662962245014126762774523312082974353720939299325830027112686065596396563684379464760863567750505273663266990829240753164379423102212077882168324688369156584492035254641823850049703590923235698741657533537636810477245200716458249722687166289520444463964006588147040898324650333018052255000752196467076235591418337871170125941561043486459541844128813990337094548672191384555378319681919855034938897205066815832335470158493857210653871984346296307309842117077055129731285822941407416685330924399177974173734203191372995118224765989216126088603453990665599427063379734008006573341382441177436800904795845286897453339448957517014672032244437136857178259324151032125677177120918128175672196828221037371387876912147643394392267032178442074289027057699540962273982733407945128112662263877136909081555037579679923584487512471719463693350538951817320733737652868165778093968867346074886351599358000572250922402265392047599691810670843526930634894659260668428166977235050522614886812174154285898414975965282587010695944457807896392533688466876385946856562344785037017928926526152785906797654963567438134111874606692163098311245477678653723584189837562265768417631230303780300126531946276464630455798487584270866369218135646826058725022912444281636903127026716738879684634880350366516195078355590223401294487338543981736742044946094647939244580265859113411600499184949498262487709193814130417797950746654438711147973808745177521188545042267549153125846865570156725665992337342240005709594972881776846278825507183836670357616862251518086361085475353981057496736810752119163563435315645712635546526222890232935760672308845202925449459541733255275900029441154042797746485573679223116576752410107206763939514122826247482273843933808354919423106595573344274709187463476638670810429612549624988316174343774207945258010505356530006779332033584483072463542246663764304451715668563500690114549984070154387734421300481216580296167548256141444473938011836029321180323678958139862152768847387786256893726110891903381851864775785325062787037359338093253221694421539670115785909595101716672580654959371007544666521360790406146565887786436679029690991048454670532209479466620, + "B": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502321669744702239669766220301603051495828490583570938240111777787782014001122271218445147739195177908841071237077792506927992415071639481287934963020079344270862984684187567622360024543895783028882498953590185257038557239940673240626468643368823999410551509602058751932143148382694138342410608842333662718029697667989791175513586554200854740731459293966529233055536061969781963320838669151098661422457138921277082622164137795469147496211511322562066280900696999831523487436381943489401961567925956281665912072090521189650522207591571669884563492632931909651763770046785044112255149075080873122094182353022875986869802422349044539017963355023267705914778716783180458599520413534783810737399757247385729095915558770945391013146468917168851668274934662193436174838169528701290700082546747345178936347690422427243025501785505598846931132707517074018864801984460082153246719248707822481161323911955535113882348333090393695902813625708085075015669784440975145753369334293852940667458064844994688668336024010800150395315576938849061199978822680103323420405685185206464596975259762308648632960015260589795957686411303195188970642136981200020612673216982647101772024377457131081587471316365151234814344868588533481462325684389456974760346031477770490519476206968826572010284586650436415534597438574250989776816788985446571882054910185258404604921501095830285435654201498641119949704921323774495752793667591944350577548426702717586748127530977206426634549344302895505805584949398428181562416904461699596594329480525623243420528264836148292818768769350692596447167253370588874707882298688144874473402049102066149408428788203951069926478682008479594126885860467199416891311157048487567291292415433728582208266824550555611783694299918333971108011889617125987920738925780894058664855333638562116706548865793457025040257317817482003230030800610950206882341770962709629168130715110606414569765276868551298243024594965666028677618482770566025382958386479526445592997393299222505334334810970756182406549853585591414029318901528057905332134475120951698401281612538897769771961018810042535256266707200924706771810420034564298186505272754308082537655392046288244525205330252451867404522390189005966175669078020533617918016481546951264334026642014681255606464964359146464841649877319476339502201924971969471893525550072109016797232851428787722153595610002918213678329006553127105258349908248817802152401611184593302599887845988567634615890158717277686795970005894551372090193337567331280921081475166223551308420045168020835598673068023688387912759729397096143348337936910669268744539778097957482284456560707447400857119640107592401571895092658385347497003862923652274430680794553237879150281258483521857507128451620478056244500640408201806848125925949864537642536540578026658171203522659795981366453164826360726975852671537623757063796680015799195847470935584484813831459158762230875667324405270392142112155084829556106822996440331631352017261476702592192437317650637606340464294513122652101062564093062177288275350104484494982985011051988727941183548069354979833312640542338523188807220479725633926311822916658201519334910321844116564167851941875310839008271828634933591774932102668249544860405914080332895880911373056314947499362285141594293536891695766159900934018627334670532209479468736, + "C0": 15357445252142475384911163534109733749112243072532294522627214699095583391747069453015536869130962499078425734735050481333032075445939872461101114599020281259562662258170998957393710556545542312921582989427662274485329899950952713421816526655381087895496287770401717512180475320952843251459839043969437072824418176476598623078938232301782899487631524354139162223639580645057575093319016585855883362749273644743912576511739029226257448474109965858904887293856764291085704378482705543642743582699731591570444837469622915711281339662658470902774835017037458988488465427440232940765537959710317013225810538280743923839280388812205072641314356183042305510202119080452038882983886354196012930374340242270064451211154894495324569137083000898569966031575646710562032417520201947651018953101854993681363189960785249652810224307734743971463556809632147992930336001223203564811609443757227524656025252388216924047943515945962482778639675007737223836113574809775087004312590457672098104266793767210167756881131965639249547242261291148431122961343360403035918690458833265034156684544796356167510554300142479682193629183865062842210966866215149599648498462817434065807036767215436665289411673287606221342876728596858067741247351856234749613414993233663835493244872205601246532717431247278978643837522429726763564699477565139989830162993792904825017556834099572873144396427277834450657333374574833299173306684498054377614210521174843157691339434589262930978708953435147709693441542734751423567341711456519766129441335525145009636510278620206606618209794045105354620973745461908604660963667829752812683312700672549783756754214552233059577108376206089929672765742129104305017830925877317891424412781058627609538441065590163871519733813521295972292820509613876578455153197023520481021955904081459150448579147689346491254684839330616470564185930346984119702983975598093101649606680541520115532695139801476595552027029210855155575196600447782752333381435538957578018977288201862206264112090275664328439187775588202657996802534361862135624185037906743769078511012940911463980555060014233048818444490840167403853163215385104422616916238868919628918778403209580385882406560804413513255451720252448720844597799642414708000459937671656880752317307055659864202740719808836383460822436051417926959028287097162092099007938524706426499022219987612421377685618112804927146994264711785488586945785240167906358606971515493555398014431315113674744516993964713115980076584660719851394498342169686372826455015602394963235298255680806317028517740356487467588715781959823030708305997323079365631473212928552712014279937214776239576755178846311358804891034559758183987193620048815717564222230865513538439338884621344923087514075350169161585349609388105164408746922628300667809990350305051223354729739822812129995940393395745640350844745819573328709538173363554960195158338995866276709837573496029679327812942222485449556678673125777666455090137482807140559773922418609324526787255729675040800350158797607624085938749314599411420196003926016504725906620356950693885263679243264052490544607997208757140999444813647887608959654628764349337892114095226304571857789139396466898635363442586061896314793675379741062568415395909939913943977136317328948408347609615543535512564503169158011616271574941760888432089126559441380397781088773287603708388049477480751957802564699863240969236556821061703731263632897651490586929653266366467291706368527258573537591028669351757400398782382265284209755153851379115839539496137737013322015801583949394550159190845504564731212984616154246766399046435315916222976505649709734514063608448483251885603227987957682811751663191162359019184715757781406281790773196003264023192654209596563950137688247087916589368222285411034466549961563557115776204401267967301165270992543082985572513692792426909810046918181026336695837380661651497464538789508981274975866827786282188643394146105416918552188235060621333938990665591245692616677386942733995634365414310892424158548377926109248344829250262571053273128114273482961861955931907159165987547320850251019496180176466947939804233110589080956648699901451009563092830097268279182515139935838755686481320150266773583823607795950175600293058153918922176713724781713948838069755302468035987154557922166892475240817070237232138607268077009545437619426503880355761114009591339994605794794001020508533353812023095543401163023553598034123651984728475700845230719800193547728212979750266531777619712504034289062401404471912280606648452063867661418518721755597512428441105329958686863698450773189135879342905939055200728680226524178989341579281469287968738753218733190329168543630558837211258512788608867957997649716905966190019892774232858317111012305788233386080635971307321348590093203803985837203396453462490275740114446711392084240374785770783585327623745983866417745215448806706527134306775572840392814771485415344282272482843176250638423656823721652312273641618331255312744608631482640679434692990453093038218751661188912535367976014847092473375070642639119056442888599065857113064310439832665052585587165241091396497414544032142227693438340921051880002870789544258849793092585095580790899673065792598706985721897653771206689510301984893168099247422374135978503568122299635339675065918102994876072375809509711150775518050087585980085325069140077184913015586175359019337743025669027927244848152107272301273067262691376709015428780463895666928989124225042956880949524533211251690395882039755731304981153887814565645405411900397423005512940778152666082607402587636759298020276808510614873583266382195368969224890666733086254355771008312637610026618355903351502769808366387593736061934748232796991615770783024671563763719542454781352666994026552783073123784018396222160158786816605307881507385028757943837389214039403426461434611574517852257349000356031985121905382498856750868918199508132162104567522590074676730760987195745020768236082884128122630148342264961239748929477501798139784402415127205172542327244416894961880786803728110441137009680011321834162388786910104956171468295563095870693590729676559075219589923557250351962364441277694690109649462859128711297095723665651874902259075309159943153354181071623322558233082961227775034116411246355622276901424070786239801653759438822545032352203714597472503214113891701408810938465667365295272014479273410555764948835826835122792038954777493155321759668029159339046444678258438237028780464512431952446756404202134123069358126602833074738914115280881265394956925042519719742254864757464671633488932767804886905962935123410904305756410662082136147393307842760175069163426907786642054294279311873356836112606312740305599291324422687990490545795545812059532270854504449419066760628338448507637939916466471613583443915561681938944424249779113633898424800938242658547592580923856316635856282162357370626816879881433584748872539622622853422351359643872530232947656470775138520290203420119185572443133104795316798772710482286558245567186725675849815631540830722653888491403493423443060393131821863586916609484230011646115685464367443398275352895293619823827863323136556675460547404174091772429632191887492365008909184202378563290373903254813967269490694854559640873914059518692310080149081039663908403718086857885210147883848059528409726403428887418564218652019563436630257802064848122477809365426495123394335736171321388417991767117679547216743041941836346074506859710017578776278788109363506858102700967586685748196455022373981926169183323741225222519434725920792541432893999983494325227182185092244901996248837194897240572613282419973589003317338625017050889002021070002769777316650328770344121868303589242995678709582278765760312990023597583514247312589173889615290579192486516917302514167501321935502959182264740119123521377099866661275494171245904230022237743976694727166412680344859737572180516479793720463078685637640402318419850891717371915598468157635047263413685668580942119759081941965831602550959400571237536843840535193152141567477133273110537734768756017966680955120328013636072286758016579258071030040371579496333832007082824570738597727860552041333955390542612368743460797584835113257753851285192191022579564897457782034348609573814424384289888402675185044794152324894126370010721368740083908524415346724351937463328391069605941636324825758897781601835558977301150912159233686345681635921682759680146028990945726210669889839326883284779019520061278939628614276787714132819691734200973877464955793192177860065926883684105036642674367696350940676574589508241654773564305565067668630337484189910744964067235887392483327931691754521855016731670994450150163647014734942723079944381859466896485395878592771374138417663001369849314179691759223902985720234051969165368004839893731942825286005684142045732699657089886590397398498986831566449111677499680518918803745231980917919265277073822198233285239596544992601050018533496646508885121602526922539416708605948360081833495404101232792778681794601164526648161849315737091737566798749678109962391366025769588294210539321836034371619765387462514950312425142182491691177765706992671620716490669928089752207092950497729875454688104468905565370280898977375418355615156707803881728996034523596985866434853484907807159064919361081355890264204779420941569173449467271606432837424442544420227487659623539045448425026290152503494341851942657150815680353988262964340222006263771357243438345526332133246028200718471116912958310286931605072641259722965559632751411512498885154644530548890064899825343993864741188240529641051471147106115302588461358750320137895532057138133467737935249581642953427506573814972345863114547924053256150485528767374483463122291625945137153172161327025467539142818243517536303827525417791007574653341564130918711311085531896227678539776530170238679927126702319821011263385977608771343408073426202981258643540211867388219042262538007452148966691040487530161851837596561883401593454928342396095885467977314649747046883758269398510352717065307273884193634422969311872697875000890912436359661916664935048436553578105273921278816417314399029184864454788428425627614701364738767523465831298023870607747739447662744061266852531990376222700908399781385118689730829590664138109913900309005281987384151050403927846221285453154694289125043140195404776526265600738437602000804869848968998676102524008244964461300914183123395815251942087562057986619495964610130833226909353447970972937837233555775086461065294394874766728980372166839176871737076174330015702453845154971317846497632360324802043776079095956306168573250001260885199678853881201955234066410001726231388027625225422715243160245854198188306055692197252175126275317936774434285411043479086977947059596666794762413671935284012671803336916557406465122064248009969067563401720526233760718514775567595961200678874789281653919655761992181520617297023628509177055050752246617905732073578257053720278658146132455501180628400116983864997500461632417381223379402150048550694528326574055213527639716298846521588292412547724565775422312583063721052265788766494620234777025544561761238025906585142316472661382975049089132305643848505238185757307655076532283710449323604870822029756812226427726940760785664204346137673733931449098447723507516817760950053209355628249927120024471829448213413264238549781112947108764781082095939899758148640281213832700546768589438192915105213835323714397430374658445260422890240100260285397802621578676962235478769106244526941267015755026726406375406335846615332686378682872757816474678365991850236570424736544109896918791697961698512124588860981756679337206275466315977955803425779013681759453021437049640621908136265351037900894054210158292196519993180127338953822532372490062848454169844546133791227679064800781921499194382945101698176137998507821685853634310683669394151569690187927102288551254986697187698812309950969450338777326132652208542733482528518379310056533809093795619536284636413952, + "C1": 1, + "induction_gap": 245388340315854495121991495023661354133772589464405098560835281231210593354019555143204809575641856722291194489372719301193616799647826159579757887820071223106654636111050438191495751716485818695124159328484048794755630779268936969158749727291785790306894906681006422231592986767946388346377694932706235427152142784836989450028374317183063203380895257549480826760271435164826739807632685330155718123900280161432695419226532158212485722545375693195990796362804742759742725917432842044603389791467383156312396163024378938394840961078454714202388522126089198783312815501652525725420856212824101710091243502711285243089767465596146429310562531820838246195141964036386977667992333784800904065593805038690857840165112369937462991853946434986034550591529039889942641409960245899894496155913835925603690714427978783216632282652185350804110391405344267420394508689231484590201167625358071977829989612598492896437837504075800683681711004705602678862156000874995105476159542852930583132791352717479396514543009746560892105943675938040697032178998767177924243015937188965591032407979029824417117095144958500076152110001069748144440755055131143299379561950147695675291209196170790861794308920116977841826009571049029564192723661000347022780697656581844126333817888558148438858693544050730279006391032579314348383417483341726167308484102464011875039770669245289569053370315400675272769228984745966480541333705931741952201361584450779326850521243305632190114357848274877760293759481552810837844820287785429409739193492470687215042264321232635941437404752907555527467413383180997744420400148964258443628979070098673792084717606302084025121666947854676905542764446282440636655033920168714101675111829088679088416088899017520789101335421071428013989215397416644857473658623389821671427674995252610577512050322911253131859211944038596666016247376225153558207550373063492998554888580920952391708138131289219486525718977892325465230055854953215786176257899380807103644121328698903259664929947496469383326286563627861859954182187535400895764477928092562530607757748705780763587088674121305145938437603223108021159308048538225758101153578764087878011594956574876552904477637107998204434002769826088279804383770536124007804304192063468870467893053981298039318821032128707649760060073749229537610127792812276679987477985700133781138307150786679926037397394611571161387429268032865427283431018256364862938990177608641555871765353175304933281067617839664481651571704230273983452875393518335293014396311381254899480921988612253618879517438535306676833380425595251991660952995091525032647927535458234697488586825233573202703716781037985646889946321208777879673711271946767903809948726047445877686120392643104955379850171778688163274102126680878508444266761189704537482574079118130447309771519192797202081634827220328648531606261068653634762233494516255628307404776706858390508708834601264897008646546562983946360187373787346425825026502825166589159365404652363307340702487787070996971736376432277781406562795750954160208053781639250158662196318892749978189443599641836214518616936539387692422155247530353148031561963426984668637356710756857535578502681262021631597998560237428258197520890833021959495277829596803778310503074257439014215218565832359454110570594125081714805152020433763053050634665307117361238244863227269421732556357631665326777103377909512101347728315848156030582196328671462365501813019054259602691910273427111817453707511754008411283207639828440879115320662481009495070733076384053735716696980585867475945451451632411845785680475987953695363293698311225826327156039939435741826425950384128738263556609420740617600738683900894516668818578184982813685973717501435264569198072863889402431256917351853788278324748638370087025599361388713671432149463428590762196328434465289201875753262745420886261254218348598928424459889789228762368105383041556546813071637279440584703191488864477114637272334834163218052935897385189713813648366910256840069690327797675638041266996826858514819047856599720555974644532336376341915423147840463479113504223750866935902556906829947300394079605318925784823743990331563491028308230395256964522179938306014663290083982727831715151268072100089494646507958010913026276692220056723587598417289180621183577079586468288019596167019726559547363309560062771643065546613302515146937109315291412368623507609804469300980952281034100560672316181292568391370829081955158464900787242246061359338501835361109152620295946787204589278663415921390862293932802855596468826293101157606576254299895075065183725848640195038168140115238141875608609663281932121508309849213169636906548962762790229247985424467798338812598996036676288818676668020039053269385224237236006604554516626741039697049248452711713870708320270355284148316234748223145351134971979820642035510926640676212230251793685052973119933811537507199542921985886099868559230539499820772565054396424423335994260188311756682328300590138836072346894700375172449221942310825056561920528548189480019682715977200510265557444727939596334566578509841650642419995868546617797990536589793984959654750046004443272269498433270536404174860207593718627146563818414240126343169066224110289896039479249190155643300061135375135749044698752258870903455753119806914130887885547024377713477997887249790908543042453431913066622227351526052356973191952304344647002675594522000489033148689097463503118249558277146364423179459261437672925470825192600425893579520562041434304347237999198826154802593109923761892805497881437726822119855138188118058662783447363009685726520879605684932206112719489605720892676070178453033570794379935889511795906208022176982250800694161341196693332468658133233056859508089043451636005730974242647702874311303164831450289352805610181457063655032687294375885415896338259476839287814607339274526710653286349752736405778956851518821342810708582296938181310293525162934948124660222441967947885080711857144314720550984995695087455018431062631654976, + "fixed_odd_divisor": 3 + }, + "rows": { + "coefficient": 12320, + "complex_coefficient": 2159, + "degree": 70000, + "suffix_slope": 280000, + "degree_gap": "224336/5" + }, + "bit_uniform": { + "coarse_saving": "302618322217/500000000000000", + "atom_beta": "302446903/500000000000", + "old_atom_saving": "384599/10000000000", + "ordinary_saving": "151223451172976757106049/250000000000000000000000000" + }, + "conservative_old_coarse_row_reserve": 9909, + "ordinary_leaf_row_degree": 252 + } + }, + "finite_bridge": { + "bit_uniform": { + "coarse_saving": "302618322217/500000000000000", + "atom_beta": "302446903/500000000000", + "old_atom_saving": "384599/10000000000", + "ordinary_saving": "151223451172976757106049/250000000000000000000000000", + "selector_stock": "Internally borrowed and restored q-adic rows; complete spectators preserved.", + "external_stock": "The bit group cardinality is not inserted into external polynomial row stock." + }, + "conservative_old_coarse_row_reserve": 9909, + "ordinary_leaf_row_degree": 252, + "complex": { + "m": 66, + "W": 55289425308686917570667462003848984137279416792299224505861018216701799982771898723399775354204853295805961609794608399572705290217939777070394813229172091836043383807923346533454778535440750078150177937641654588341410324320198476949210412083427740588455832697819257181207769482758056564498236253792755202674345544977810552426328969761296772286351537105068425501021079545710610456960096042689826460881065698447986494944293748415427762989564601158820946190983705593808102814345665070822486126387326743650597711970103922799169299588653944130760944631434266279781137209771330745357342776869613754015075771348789372590506971494518620160000000000000000000, + "s": 3644447900268912943109414328243760606968916169973667382762266489079562190484827918491984962710627236319796752431959817716774254084995103629498368038952632650731597387401860658375660284323288102817298375165665000033733727943740161401384131203376384273546537116772918023288250872991855045885852556983788686252118684285009528095288355825425045440421681901139178392763115513456710378431594683516441206903555411875773132378246959377568071994633741498462308483362140404190134180191368688508000959433277660400012289435164252108106253839463173372623041397590132958210895843988718928193401491300595075958649748691803058735618605887251661455360000000000000000000, + "N": 4654170104423616554638164010272346091525338318081434624560713222756608378117397252400210666893081203396713814484336655024295069388921657147689634172725410447265943921080212832355099015801402340613368718684202796799353461392938077263755994129846605291547841283152950671461912870176687371031035766533157124388121683525968364849356178820541530477519547795337690304275736560189911727771655301087339514594924221793976288076428017850160362677522178019873965242784165001200605555445206166283124908285904680927159554862606796638919933387986940007180948084528616254659211856188901000183131972799431806345252217217039855354854231386567475200000000000000000000, + "maxchild": 20, + "invocations_per_stage": 3525886442745164056544063644145716736004044180364723200424782744512582104634391857878947474919000911664177132185103526533556870749183073596734571342973795793383290849303191539662953799849547227737400544457729391514661713176468240351330298583217125220869576729661326266259024901649005584114421035252391760900092184489369973370724377894349644301151172572225522957784648909234781611948223712944954177723427440753012339451839407462242698998122862136268155486957700758485307238973641035062973415368109606762999662774702118665848434384838590914531021276158042617166069588021894697108433312726842277534281982740181708602162296504975360000000000000000000, + "stages": 3, + "auxiliary_banks_after_sharing": 1, + "halving_degree": 1, + "wire_bits": 2159, + "original_X_involution_scalar_group_upper": 42240, + "local_group_upper": 5590695752904, + "logical_group_upper": 59136504735780189634999122266089085381987411497867861183671235415108810095101489164817433605230492896129148868463928780747576603269834668925893621152836190577438101676912456817052894678520987540344208718839624285352724904699280500418009685178863424392243033283182870720956222995240509714695488290472051543165738803262111844385686629661506803778182910367304492672097783988924531969191519841022750989302113292311139776749777658696621768152985036757572201362511984121485098148992035267252162690438112963629944630326145924542798201505708797416747199839313407709097725131951962883250596345338061409580641579961608642981267750915008370779755642880000000000000000000, + "finite_group_router_upper": 3479719089404603038166688260876835458833739678750486633731973635332158574518197699679233265969464758068756825255527322768187233334873743977333181238063307365955524565651705398908489083668032699822955167376653618449211979424977635935552774312980577358662299210665749094462422814815087749391475292275497276724730517652904195315190955882060599496666035178070531927710363426217754650869056290144997324417352981447034060532428229017099484283808649787047500056058561340594317322256869227358784818932728036616783861742967302454974980980477893850334880027922626705218765369919615730171828950753779697834754053841312869254223712881658375416371048821774272513711787550744971467059988700056621894416458148343910657284033110077987885034310049959643458369537538930796920006696868259937314002097782545042336782520144945864918000640774053990310410371159189200791841062009789418397184561035518339986440869914839611450752227624590471092048871803833288698336136647179722281854457028644276388251018887297210950254179413177754828956516021498043134385899631840567642462364347369854591277727499718116839775910615025986758691425727265284886688868620365668288045614472285770025493228130378481003082974363611167333376315497341291498806160947730114860708689996296011590498240948369993493278879178322933664038394389614488329541870648273033058485800602185070869593136180808072512871525509762601219059134536562737551642488187618031728016735555909843837835587149453946245257918593913137390275991993065872987146454871992117731004302081180868659062577005020528773619897192325218127671582213094826925918621126412480628254023896173064705604975513572051058330514985971399165617481503911306830693854410510992415713293386948792883558564412701695222370661964558334961972393438874056958708489620405356354111252959790745871615030401166899684014181692591004041320265654083513165110233253464114438746187657621474191260209937704436778932485890224165056314715481828815459785986781051512422400000000000019248832, + "scalar_group_upper": 3479719089404603038166688260876835458833739678750486633731973635332158574518197699679233265969464758068756825255527322768187233334873743977333181238063307365955524565651705398908489083668032699822955167376653618449211979424977635935552774312980577358662299210665749094462422814815087749391475292275497276724730517652904195315190955882060599496666035178070531927710363426217754650869056290144997324417352981447034060532428229017099484283808649787047500056058561340594317322256869227358784818932728036616783861742967302454974980980477893850334880027922626705218765369919615730171828950753779697834754053841312869254223712881658375416371048821774272513711787550744971467059988700056621894416458148343910657284033110077987885034310049959643458369537538930796920006696868259937314002097782545042336782520144945864918000640774053990310410371159189200791841062009789418397184561035518339986440869914839611450752227624590471092048871803833288698336136647179722281854457028644276388251018887297210950254179413177754828956516021498043134385899631840567642462364347369854591277727499718116839775910615025986758691425727265284886688868620365668288045614472285770025493228130378481003082974363611167333376315497341291498806160947730114860708689996296011590498240948369993493278879178322933664038394389614488329541870648273033058485800602185070869593136180808072512871525509762601219059134536562737551642488187618031728016735555909843837835587149453946245257918593913137390275991993065872987146454871992117731004302081180868659062577005020528773619897192325218127671582213094826925918621126412480628254023896173064705604975513572051058330514985971399165617481503911306830693854410510992415713293386948792883558564412701695222370661964558334961972393438874056958708489620405356354111252959790745871615030401166899684014181692591004041320265654083513165110233253464114438746187657621474191260209937704436778932485890224165056314715481828815459785986781051512422400000000000019248832, + "coefficient_bound": 26, + "coefficient_denominator_divides": 6, + "physical_roles_per_vertex": 13041, + "scalar_role_reserve": 15681, + "reuse_pairs": 2640 + }, + "semantic": { + "E": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502321669744702239669766220301603051495828490583570938240111777787782014001122271218445147739195177908841071237077792506927992415071639481287934963020079344270862984684187567622360024543895783028882498953590185257038557239940673240626468643368823999410551509602058751932143148382694138342410608842333662718029697667989791175513586554200854740731459293966529233055536061969781963320838669151098661422457138921277082622164137795469147496211511322562066280900696999831523487436381943489401961567925956281665912072090521189650522207591571669884563492632931909651763770046785044112255149075080873122094182353022875986869802422349044539017963355023267705914778716783180458599520413534783810737399757247385729095915558770945391013146468917168851668274934662193436174838169528701290700082546747345178936347690422427243025501785505598846931132707517074018864801984460082153246719248707822481161323911955535113882348333090393695902813625708085075015669784440975145753369334293852940667458064844994688668336024010800150395315576938849061199978822680103323420405685185206464596975259762308648632960015260589795957686411303195188970642136981200020612673216982647101772024377457131081587471316365151234814344868588533481462325684389456974760346031477770490519476206968826572010284586650436415534597438574250989776816788985446571882054910185258404604921501095830285435654201498641119949704921323774495752793667591944350577548426702717586748127530977206426634549344302895505805584949398428181562416904461699596594329480525623243420528264836148292818768769350692596447167253370588874707882298688144874473402049102066149408428788203951069926478682008479594126885860467199416891311157048487567291292415433728582208266824550555611783694299918333971108011889617125987920738925780894058664855333638562116706548865793457025040257317817482003230030800610950206882341770962709629168130715110606414569765276868551298243024594965666028677618482770566025382958386479526445592997393299222505334334810970756182406549853585591414029318901528057905332134475120951698401281612538897769771961018810042535256266707200924706771810420034564298186505272754308082537655392046288244525205330252451867404522390189005966175669078020533617918016481546951264334026642014681255606464964359146464841649877319476339502201924971969471893525550072109016797232851428787722153595610002918213678329006553127105258349908248817802152401611184593302599887845988567634615890158717277686795970005894551372090193337567331280921081475166223551308420045168020835598673068023688387912759729397096143348337936910669268744539778097957482284456560707447400857119640107592401571895089013937447228090919814237946186920187584321709176613875721255368427566261135650137752515677697574570528329173517904719925762286493031554541705154620843348715721567438958866317477011253300468960979381640633530847437201856541073670057774631027499283050858733275369194131796578683114967950554479074368228575224583907907427789555349250515039249072700970199923385700299061774818639726052900299468569845085172529307774936976732873935072470343889447308758171242271785907632782478010150646402320884683286507451929585875674756163722381094128601559479626851954727447703184488907161983179654823646904286326491845601733832960147554013682357171974670532209479468736, + "literal_charge": 21274449591971385873890671635409982947208737841062699234064932208846603059406557718613092535343917242978689165097665996143244251897454472128323957038660133693072884066988938418245974566805612119317497830973111466206955576537734146356207989488904249137685256238273743409402041609174413307248801328274448433811928168458930151899508696962780968098011519756589418997088150481392589217056702990858693115979738094857902186685794892888439803326889320121548307780541327724081991744290294271352164830058286888736841661149687060805208194415078795042108372704385901624248746229363481478398760588142227780762824672872323668905525867342030056303678907879729723243988515022425526318254548719413080128636362396109564229356985412534164308117190455860903321641969876858203295204668614069616026059488637195553015172246519204643048934137734082555456526680185028433291053037444952516326159683411180271297819510321638458198816744798449065074193380686195885224818757708868134714509906054272378767248575950655924838554141804216753962409909333734331487283448528192961899262226591418223101248095574670962241757522118708293704261266588600802238474018955006485910442459335018797670656517831755757444203679085638417781184209068720598757933884183311493355202237017326140053104756748689841959898281279831042562183932427139727113198062210873140397376647621594127676300379372035712967035209120675485740914735627454854469017258926298322547674506250510512536112639335256508607783259409046263740820584437844467868232270315041216009798605768208481631059769332460483298610856835385793295269024292567398040181611089744742116226160658732723097863804773095752744478817106599008661094477983290802707703057821967864229035699720575634925442109378174982789504073047073654672440659608973248706681343757201486596009487529991029371744875328849368060489596444631842153888463306812490074738784267554879103657411065452295782543460606170130362331088529119596063445190886101798470874007806981899646854347405184600597158102590404312580986239516527677719543527485654409732209728904098709470941695370839137066359549374107089289472150402091884998245880278399771529307471721071841710934238391851991516863376065920547960045403968948246742551867747711120361517979513130222152035322518157295219486680492741257460039757210571084570694668189171766993603795644386341434363844516855784377474356092154953306094108845468355222881532078922467766730834226786404809490398344233321402820173295950053925059799903432845613071708217869320582290216725288820710851353890417800722321369249676764785920651918622159792894643120115618692912527800756618464223365207395147524667225815555293069581830100776870474057562719859825834712230340651679877064969136204864130945489937502205989454807341634767656864672701794476302744759776278641675713466800550969235993759735749740724601146093705021465258814386048573593268048186154246951179057683224573863395256636698383702184029058126651776210704866422970564719227377900648457521764767442575706826037205895471670031735561084704089741982745911734148544603955949011607388720591429461134458507860126128434492284131923754863935090223893752676209992779904655587153800550611969126363043000875379865058087181838941538108082772234581328220283816102237764965701439455167945173710874983991366123520000000000000002116, + "strict_literal_gap": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502300395295110268283892329629967641512881281845729875540877712855573167398062864660726534646659833991598092547912694840931849170819742026815806639063040684137169911800120578683941778569328977416763181455759212145572350284364135506480112435379335095161413824345820478188733746341084963929103360041005388269595885739821332245361687045503891959763361282446772643636538973819300570731621612448107802729341159183182224719977452000576259056408184433241944732592916458503799405444637653195130609403095897994777175230429371502589716999397156591089521384260227523750139521300555680630776750314492730894313419528350003663200896896481702508961659676115387976191534728268158033073202158986064397657271120884989619531686201785532856848838351726712990764953292692316577971542964860087221084056487258707983383332518175908038382452851367864764375676180836888990431510931422637200730393089024411300890026092445213475424149516345595246837739432327398879130444965683266277618654824387798668288690816269044032743497469868995933641353167029515326868491539231575130458506422958615046373874011666733977670718257738471087663982150036606588168403662962245014126762774523312082974353720939299325830027112686065596396563684379464760863567750505273663266990829240753164379423102212077882168324688369156584492035254641823850049703590923235698741657533537636810477245200716458249722687166289520444463964006588147040898324650333018052255000752196467076235591418337871170125941561043486459541844128813990337094548672191384555378319681919855034938897205066815832335470158493857210653871984346296307309842117077055129731285822941407416685330924399177974173734203191372995118224765989216126088603453990665599427063379734008006573341382441177436800904795845286897453339448957517014672032244437136857178259324151032125677177120918128175672196828221037371387876912147643394392267032178442074289027057699540962273982733407945128112662263877136909081555037579679923584487512471719463693350538951817320733737652868165778093968867346074886351599358000572250922402265392047599691810670843526930634894659260668428166977235050522614886812174154285898414975965282587010695944457807896392533688466876385946856562344785037017928926526152785906797654963567438134111874606692163098311245477678653723584189837562265768417631230303780300126531946276464630455798487584270866369218135646826058725022912444281636903127026716738879684634880350366516195078355590223401294487338543981736742044946094647939244580265859113411600499184949498262487709193814130417797950746654438711147973808745177521188545042267549153125846865570156725665992337342240005709594972881776846278825507183836670357616862251518086361085475353981057496736810752119163563435315645712635546526222890232935760672308845202925449459541733255275900029441154042797746485573679223116576752410107206763939514122826247482273843933808354919423106595573344274709187463476638670810429612549624988316174343774207945258010505356530006779332033584483072463542246663764304451715668563500690114549984070154387734421300481216580296167548256141444473938011836029321180323678958139862152768847387786256893726110891903381851864775785325062787037359338093253221694421539670115785909595101716672580654959371007544666521360790406146565887786436679029690991048454670532209479466620, + "B": 2696575168306093352988917527732542353118380104004451632536651442101215311582632474101151753578481942003199939443656256057072712084042045709667669096923859594578622374846708111994458810071272732913452300313011525217094843728230076584162084915294349344031812161329740903643878975471938333476677966293475114584089481152054829121190926562451243993196651181862426667695290496316777360523436102529183715647255825949809839771720133606730612335663469155999898861129722447909260724367393868622015272433707507212224133659608559762580669901961040815410862880506474711904536434084093689290339079261803315495508170359464673000986455665891719003412775074954266441704856747652604150197717953679130813907624231194405031210605630438873219690702708076769610446060758680109259795713848856042796661053998196984655941916790975639743211897276762096748465839619167773850489106475071259232979864014923867888241644094488932927888324220613194326172648403358271196287428581043902257979775196186050364096608271620652708951022085127042770394985449868579088265703283155801365307867441636984516839648121206861726561485109434066770902307704063166422425879726715860432742439012612040387815485672206492986750647473812943316769335945593731474645314956047769481106567654745539849822174599540092734710918066491541527542758599772685147070521794964023816576748378725405220217260101596588670916157312095332667793725107098532753201469295953208265949028400558014580774958717644309781476459871152502860370983313767152064228794371268455052079049367809749615849058475083911444367085196786324477663883331659315872751649988618224655263506264820591121810083585737187089249087339062383577393015893213633369835537584271583534891338781194275696880097791401327352761927704081626527354015356226866565644600257031007378326098848929786566066487064958825624826504879545018307870850288188500639643410693005417566537237152977498809979539904277137214568340416399180936594020384101272375563273619569308831254080535152783073240988434027136080508643556350130329166837225663746107301955253764423413272063172590997402055919495838518087235578057396791441311077456464019319792896469935031626501043478844797284664589418769211037736294173913058019828393082814549536311035077620537038108714878915363069437593759656128019341319491749775138572832888046996483378878963737733858662715942710768417993377962764518257004717231130389310806934266553460032296595358336720394195223661267087178912830965271038259907381365167845972009619708992695527630728696497306587702439435299490317357334489398974470696488193354417490779703242764011347779423466574007664709745332237068161579305286131710405384025507788767908502321669744702239669766220301603051495828490583570938240111777787782014001122271218445147739195177908841071237077792506927992415071639481287934963020079344270862984684187567622360024543895783028882498953590185257038557239940673240626468643368823999410551509602058751932143148382694138342410608842333662718029697667989791175513586554200854740731459293966529233055536061969781963320838669151098661422457138921277082622164137795469147496211511322562066280900696999831523487436381943489401961567925956281665912072090521189650522207591571669884563492632931909651763770046785044112255149075080873122094182353022875986869802422349044539017963355023267705914778716783180458599520413534783810737399757247385729095915558770945391013146468917168851668274934662193436174838169528701290700082546747345178936347690422427243025501785505598846931132707517074018864801984460082153246719248707822481161323911955535113882348333090393695902813625708085075015669784440975145753369334293852940667458064844994688668336024010800150395315576938849061199978822680103323420405685185206464596975259762308648632960015260589795957686411303195188970642136981200020612673216982647101772024377457131081587471316365151234814344868588533481462325684389456974760346031477770490519476206968826572010284586650436415534597438574250989776816788985446571882054910185258404604921501095830285435654201498641119949704921323774495752793667591944350577548426702717586748127530977206426634549344302895505805584949398428181562416904461699596594329480525623243420528264836148292818768769350692596447167253370588874707882298688144874473402049102066149408428788203951069926478682008479594126885860467199416891311157048487567291292415433728582208266824550555611783694299918333971108011889617125987920738925780894058664855333638562116706548865793457025040257317817482003230030800610950206882341770962709629168130715110606414569765276868551298243024594965666028677618482770566025382958386479526445592997393299222505334334810970756182406549853585591414029318901528057905332134475120951698401281612538897769771961018810042535256266707200924706771810420034564298186505272754308082537655392046288244525205330252451867404522390189005966175669078020533617918016481546951264334026642014681255606464964359146464841649877319476339502201924971969471893525550072109016797232851428787722153595610002918213678329006553127105258349908248817802152401611184593302599887845988567634615890158717277686795970005894551372090193337567331280921081475166223551308420045168020835598673068023688387912759729397096143348337936910669268744539778097957482284456560707447400857119640107592401571895092658385347497003862923652274430680794553237879150281258483521857507128451620478056244500640408201806848125925949864537642536540578026658171203522659795981366453164826360726975852671537623757063796680015799195847470935584484813831459158762230875667324405270392142112155084829556106822996440331631352017261476702592192437317650637606340464294513122652101062564093062177288275350104484494982985011051988727941183548069354979833312640542338523188807220479725633926311822916658201519334910321844116564167851941875310839008271828634933591774932102668249544860405914080332895880911373056314947499362285141594293536891695766159900934018627334670532209479468736, + "C0": 15357445252142475384911163534109733749112243072532294522627214699095583391747069453015536869130962499078425734735050481333032075445939872461101114599020281259562662258170998957393710556545542312921582989427662274485329899950952713421816526655381087895496287770401717512180475320952843251459839043969437072824418176476598623078938232301782899487631524354139162223639580645057575093319016585855883362749273644743912576511739029226257448474109965858904887293856764291085704378482705543642743582699731591570444837469622915711281339662658470902774835017037458988488465427440232940765537959710317013225810538280743923839280388812205072641314356183042305510202119080452038882983886354196012930374340242270064451211154894495324569137083000898569966031575646710562032417520201947651018953101854993681363189960785249652810224307734743971463556809632147992930336001223203564811609443757227524656025252388216924047943515945962482778639675007737223836113574809775087004312590457672098104266793767210167756881131965639249547242261291148431122961343360403035918690458833265034156684544796356167510554300142479682193629183865062842210966866215149599648498462817434065807036767215436665289411673287606221342876728596858067741247351856234749613414993233663835493244872205601246532717431247278978643837522429726763564699477565139989830162993792904825017556834099572873144396427277834450657333374574833299173306684498054377614210521174843157691339434589262930978708953435147709693441542734751423567341711456519766129441335525145009636510278620206606618209794045105354620973745461908604660963667829752812683312700672549783756754214552233059577108376206089929672765742129104305017830925877317891424412781058627609538441065590163871519733813521295972292820509613876578455153197023520481021955904081459150448579147689346491254684839330616470564185930346984119702983975598093101649606680541520115532695139801476595552027029210855155575196600447782752333381435538957578018977288201862206264112090275664328439187775588202657996802534361862135624185037906743769078511012940911463980555060014233048818444490840167403853163215385104422616916238868919628918778403209580385882406560804413513255451720252448720844597799642414708000459937671656880752317307055659864202740719808836383460822436051417926959028287097162092099007938524706426499022219987612421377685618112804927146994264711785488586945785240167906358606971515493555398014431315113674744516993964713115980076584660719851394498342169686372826455015602394963235298255680806317028517740356487467588715781959823030708305997323079365631473212928552712014279937214776239576755178846311358804891034559758183987193620048815717564222230865513538439338884621344923087514075350169161585349609388105164408746922628300667809990350305051223354729739822812129995940393395745640350844745819573328709538173363554960195158338995866276709837573496029679327812942222485449556678673125777666455090137482807140559773922418609324526787255729675040800350158797607624085938749314599411420196003926016504725906620356950693885263679243264052490544607997208757140999444813647887608959654628764349337892114095226304571857789139396466898635363442586061896314793675379741062568415395909939913943977136317328948408347609615543535512564503169158011616271574941760888432089126559441380397781088773287603708388049477480751957802564699863240969236556821061703731263632897651490586929653266366467291706368527258573537591028669351757400398782382265284209755153851379115839539496137737013322015801583949394550159190845504564731212984616154246766399046435315916222976505649709734514063608448483251885603227987957682811751663191162359019184715757781406281790773196003264023192654209596563950137688247087916589368222285411034466549961563557115776204401267967301165270992543082985572513692792426909810046918181026336695837380661651497464538789508981274975866827786282188643394146105416918552188235060621333938990665591245692616677386942733995634365414310892424158548377926109248344829250262571053273128114273482961861955931907159165987547320850251019496180176466947939804233110589080956648699901451009563092830097268279182515139935838755686481320150266773583823607795950175600293058153918922176713724781713948838069755302468035987154557922166892475240817070237232138607268077009545437619426503880355761114009591339994605794794001020508533353812023095543401163023553598034123651984728475700845230719800193547728212979750266531777619712504034289062401404471912280606648452063867661418518721755597512428441105329958686863698450773189135879342905939055200728680226524178989341579281469287968738753218733190329168543630558837211258512788608867957997649716905966190019892774232858317111012305788233386080635971307321348590093203803985837203396453462490275740114446711392084240374785770783585327623745983866417745215448806706527134306775572840392814771485415344282272482843176250638423656823721652312273641618331255312744608631482640679434692990453093038218751661188912535367976014847092473375070642639119056442888599065857113064310439832665052585587165241091396497414544032142227693438340921051880002870789544258849793092585095580790899673065792598706985721897653771206689510301984893168099247422374135978503568122299635339675065918102994876072375809509711150775518050087585980085325069140077184913015586175359019337743025669027927244848152107272301273067262691376709015428780463895666928989124225042956880949524533211251690395882039755731304981153887814565645405411900397423005512940778152666082607402587636759298020276808510614873583266382195368969224890666733086254355771008312637610026618355903351502769808366387593736061934748232796991615770783024671563763719542454781352666994026552783073123784018396222160158786816605307881507385028757943837389214039403426461434611574517852257349000356031985121905382498856750868918199508132162104567522590074676730760987195745020768236082884128122630148342264961239748929477501798139784402415127205172542327244416894961880786803728110441137009680011321834162388786910104956171468295563095870693590729676559075219589923557250351962364441277694690109649462859128711297095723665651874902259075309159943153354181071623322558233082961227775034116411246355622276901424070786239801653759438822545032352203714597472503214113891701408810938465667365295272014479273410555764948835826835122792038954777493155321759668029159339046444678258438237028780464512431952446756404202134123069358126602833074738914115280881265394956925042519719742254864757464671633488932767804886905962935123410904305756410662082136147393307842760175069163426907786642054294279311873356836112606312740305599291324422687990490545795545812059532270854504449419066760628338448507637939916466471613583443915561681938944424249779113633898424800938242658547592580923856316635856282162357370626816879881433584748872539622622853422351359643872530232947656470775138520290203420119185572443133104795316798772710482286558245567186725675849815631540830722653888491403493423443060393131821863586916609484230011646115685464367443398275352895293619823827863323136556675460547404174091772429632191887492365008909184202378563290373903254813967269490694854559640873914059518692310080149081039663908403718086857885210147883848059528409726403428887418564218652019563436630257802064848122477809365426495123394335736171321388417991767117679547216743041941836346074506859710017578776278788109363506858102700967586685748196455022373981926169183323741225222519434725920792541432893999983494325227182185092244901996248837194897240572613282419973589003317338625017050889002021070002769777316650328770344121868303589242995678709582278765760312990023597583514247312589173889615290579192486516917302514167501321935502959182264740119123521377099866661275494171245904230022237743976694727166412680344859737572180516479793720463078685637640402318419850891717371915598468157635047263413685668580942119759081941965831602550959400571237536843840535193152141567477133273110537734768756017966680955120328013636072286758016579258071030040371579496333832007082824570738597727860552041333955390542612368743460797584835113257753851285192191022579564897457782034348609573814424384289888402675185044794152324894126370010721368740083908524415346724351937463328391069605941636324825758897781601835558977301150912159233686345681635921682759680146028990945726210669889839326883284779019520061278939628614276787714132819691734200973877464955793192177860065926883684105036642674367696350940676574589508241654773564305565067668630337484189910744964067235887392483327931691754521855016731670994450150163647014734942723079944381859466896485395878592771374138417663001369849314179691759223902985720234051969165368004839893731942825286005684142045732699657089886590397398498986831566449111677499680518918803745231980917919265277073822198233285239596544992601050018533496646508885121602526922539416708605948360081833495404101232792778681794601164526648161849315737091737566798749678109962391366025769588294210539321836034371619765387462514950312425142182491691177765706992671620716490669928089752207092950497729875454688104468905565370280898977375418355615156707803881728996034523596985866434853484907807159064919361081355890264204779420941569173449467271606432837424442544420227487659623539045448425026290152503494341851942657150815680353988262964340222006263771357243438345526332133246028200718471116912958310286931605072641259722965559632751411512498885154644530548890064899825343993864741188240529641051471147106115302588461358750320137895532057138133467737935249581642953427506573814972345863114547924053256150485528767374483463122291625945137153172161327025467539142818243517536303827525417791007574653341564130918711311085531896227678539776530170238679927126702319821011263385977608771343408073426202981258643540211867388219042262538007452148966691040487530161851837596561883401593454928342396095885467977314649747046883758269398510352717065307273884193634422969311872697875000890912436359661916664935048436553578105273921278816417314399029184864454788428425627614701364738767523465831298023870607747739447662744061266852531990376222700908399781385118689730829590664138109913900309005281987384151050403927846221285453154694289125043140195404776526265600738437602000804869848968998676102524008244964461300914183123395815251942087562057986619495964610130833226909353447970972937837233555775086461065294394874766728980372166839176871737076174330015702453845154971317846497632360324802043776079095956306168573250001260885199678853881201955234066410001726231388027625225422715243160245854198188306055692197252175126275317936774434285411043479086977947059596666794762413671935284012671803336916557406465122064248009969067563401720526233760718514775567595961200678874789281653919655761992181520617297023628509177055050752246617905732073578257053720278658146132455501180628400116983864997500461632417381223379402150048550694528326574055213527639716298846521588292412547724565775422312583063721052265788766494620234777025544561761238025906585142316472661382975049089132305643848505238185757307655076532283710449323604870822029756812226427726940760785664204346137673733931449098447723507516817760950053209355628249927120024471829448213413264238549781112947108764781082095939899758148640281213832700546768589438192915105213835323714397430374658445260422890240100260285397802621578676962235478769106244526941267015755026726406375406335846615332686378682872757816474678365991850236570424736544109896918791697961698512124588860981756679337206275466315977955803425779013681759453021437049640621908136265351037900894054210158292196519993180127338953822532372490062848454169844546133791227679064800781921499194382945101698176137998507821685853634310683669394151569690187927102288551254986697187698812309950969450338777326132652208542733482528518379310056533809093795619536284636413952, + "C1": 1, + "induction_gap": 245388340315854495121991495023661354133772589464405098560835281231210593354019555143204809575641856722291194489372719301193616799647826159579757887820071223106654636111050438191495751716485818695124159328484048794755630779268936969158749727291785790306894906681006422231592986767946388346377694932706235427152142784836989450028374317183063203380895257549480826760271435164826739807632685330155718123900280161432695419226532158212485722545375693195990796362804742759742725917432842044603389791467383156312396163024378938394840961078454714202388522126089198783312815501652525725420856212824101710091243502711285243089767465596146429310562531820838246195141964036386977667992333784800904065593805038690857840165112369937462991853946434986034550591529039889942641409960245899894496155913835925603690714427978783216632282652185350804110391405344267420394508689231484590201167625358071977829989612598492896437837504075800683681711004705602678862156000874995105476159542852930583132791352717479396514543009746560892105943675938040697032178998767177924243015937188965591032407979029824417117095144958500076152110001069748144440755055131143299379561950147695675291209196170790861794308920116977841826009571049029564192723661000347022780697656581844126333817888558148438858693544050730279006391032579314348383417483341726167308484102464011875039770669245289569053370315400675272769228984745966480541333705931741952201361584450779326850521243305632190114357848274877760293759481552810837844820287785429409739193492470687215042264321232635941437404752907555527467413383180997744420400148964258443628979070098673792084717606302084025121666947854676905542764446282440636655033920168714101675111829088679088416088899017520789101335421071428013989215397416644857473658623389821671427674995252610577512050322911253131859211944038596666016247376225153558207550373063492998554888580920952391708138131289219486525718977892325465230055854953215786176257899380807103644121328698903259664929947496469383326286563627861859954182187535400895764477928092562530607757748705780763587088674121305145938437603223108021159308048538225758101153578764087878011594956574876552904477637107998204434002769826088279804383770536124007804304192063468870467893053981298039318821032128707649760060073749229537610127792812276679987477985700133781138307150786679926037397394611571161387429268032865427283431018256364862938990177608641555871765353175304933281067617839664481651571704230273983452875393518335293014396311381254899480921988612253618879517438535306676833380425595251991660952995091525032647927535458234697488586825233573202703716781037985646889946321208777879673711271946767903809948726047445877686120392643104955379850171778688163274102126680878508444266761189704537482574079118130447309771519192797202081634827220328648531606261068653634762233494516255628307404776706858390508708834601264897008646546562983946360187373787346425825026502825166589159365404652363307340702487787070996971736376432277781406562795750954160208053781639250158662196318892749978189443599641836214518616936539387692422155247530353148031561963426984668637356710756857535578502681262021631597998560237428258197520890833021959495277829596803778310503074257439014215218565832359454110570594125081714805152020433763053050634665307117361238244863227269421732556357631665326777103377909512101347728315848156030582196328671462365501813019054259602691910273427111817453707511754008411283207639828440879115320662481009495070733076384053735716696980585867475945451451632411845785680475987953695363293698311225826327156039939435741826425950384128738263556609420740617600738683900894516668818578184982813685973717501435264569198072863889402431256917351853788278324748638370087025599361388713671432149463428590762196328434465289201875753262745420886261254218348598928424459889789228762368105383041556546813071637279440584703191488864477114637272334834163218052935897385189713813648366910256840069690327797675638041266996826858514819047856599720555974644532336376341915423147840463479113504223750866935902556906829947300394079605318925784823743990331563491028308230395256964522179938306014663290083982727831715151268072100089494646507958010913026276692220056723587598417289180621183577079586468288019596167019726559547363309560062771643065546613302515146937109315291412368623507609804469300980952281034100560672316181292568391370829081955158464900787242246061359338501835361109152620295946787204589278663415921390862293932802855596468826293101157606576254299895075065183725848640195038168140115238141875608609663281932121508309849213169636906548962762790229247985424467798338812598996036676288818676668020039053269385224237236006604554516626741039697049248452711713870708320270355284148316234748223145351134971979820642035510926640676212230251793685052973119933811537507199542921985886099868559230539499820772565054396424423335994260188311756682328300590138836072346894700375172449221942310825056561920528548189480019682715977200510265557444727939596334566578509841650642419995868546617797990536589793984959654750046004443272269498433270536404174860207593718627146563818414240126343169066224110289896039479249190155643300061135375135749044698752258870903455753119806914130887885547024377713477997887249790908543042453431913066622227351526052356973191952304344647002675594522000489033148689097463503118249558277146364423179459261437672925470825192600425893579520562041434304347237999198826154802593109923761892805497881437726822119855138188118058662783447363009685726520879605684932206112719489605720892676070178453033570794379935889511795906208022176982250800694161341196693332468658133233056859508089043451636005730974242647702874311303164831450289352805610181457063655032687294375885415896338259476839287814607339274526710653286349752736405778956851518821342810708582296938181310293525162934948124660222441967947885080711857144314720550984995695087455018431062631654976, + "fixed_odd_divisor": 3, + "exact_grid": "One dyadic grid times 3^(-K), K=G*(D_complex+1); completed children preserve the incoming odd exponent." + }, + "rows": { + "coefficient": 12320, + "complex_coefficient": 2159, + "degree": 70000, + "suffix_slope": 280000, + "degree_gap": "224336/5" + } + } + } +} diff --git a/research/balanced-nullity-banks-163/lean-audit.log b/research/balanced-nullity-banks-163/lean-audit.log new file mode 100644 index 0000000000..5943da67d0 --- /dev/null +++ b/research/balanced-nullity-banks-163/lean-audit.log @@ -0,0 +1,82 @@ +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_apply' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_zero' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_comp_disjoint' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_involutive' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_id' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.partialSwap_commute' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.bankSwap_eq_sum' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.bankSwap_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weighted_apply' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weighted_comp' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weighted_id' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weightedBank_eq' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.weightedBank_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_apply' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_idempotent' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_disjoint' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateProjector_sum' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.coordinateBank_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.bankAddress_bijective' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.bankAddress_roles_injective' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.P12.selected_block_capacity' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_block_capacity' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.selected_bank_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_bank_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.inherited_rank_mass' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.P12.removed_exterior_count' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.P12.packed_rank_mass' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.P12.packed_max_rank' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.P12.normalized_volume' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.packed_deficit' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.actual_role_counts' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.P12.selected_weighted_bank_full' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.P12.undeferred_weighted_bank_full' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.Contents.run_eq_address' depends on axioms: [propext, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.Contents.run_full' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_selected_contents' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.Contents.p12_undeferred_contents' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.inherited_rank_mass' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.removed_exterior_count' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_rank_mass' depends on axioms: [propext] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_max_rank' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.normalized_volume' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.packed_deficit' depends on axioms: [propext, Classical.choice, Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_role_counts' does not depend on any axioms +'Mathproof.BeyondNLogN.TakeoverBit.PR161P12.actual_bank_and_inventory_certificate' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.literal_charge_lt' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.finite_row_reserve' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverLiteralGuard20261008.row_reserve_value' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBalanced16320261009.core_slacks_positive' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_slacks_positive' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBalanced16320261009.strengthened_public_margin' depends on axioms: [propext, + Classical.choice, + Quot.sound] +'Mathproof.BeyondNLogN.TakeoverBalanced16320261009.all_47_concrete_guards' depends on axioms: [propext, + Classical.choice, + Quot.sound] diff --git a/research/balanced-nullity-banks-163/verify.py b/research/balanced-nullity-banks-163/verify.py new file mode 100644 index 0000000000..6a117777c9 --- /dev/null +++ b/research/balanced-nullity-banks-163/verify.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +"""Read-only exact arithmetic replay. Full physical supplier checks are separate. +Requires two immutable upstream checkouts; no downloads or source edits. +""" +from pathlib import Path +from fractions import Fraction as Q +from math import lcm +import argparse,hashlib,json,subprocess,sys +sys.dont_write_bytecode=True +if hasattr(sys,'set_int_max_str_digits'):sys.set_int_max_str_digits(0) +HERE=Path(__file__).resolve().parent + +def need(ok,msg): + if not ok:raise ValueError(msg) + +def checkout(path,pin): + path=path.resolve() + def git(*args): + p=subprocess.run(['git','-C',str(path),*args],capture_output=True,text=True) + need(p.returncode==0,'Git failed: '+p.stderr);return p.stdout.strip() + need(git('rev-parse','HEAD')==pin,'Incorrect pinned checkout: '+str(path)) + need(not git('status','--porcelain','--untracked-files=no'),'Tracked source changes in '+str(path)) + return path + +def main(): + need(not sys.flags.optimize,'Assertions must be enabled; do not use -O') + ap=argparse.ArgumentParser(description=__doc__) + ap.add_argument('--pr161',type=Path,required=True) + ap.add_argument('--pr163',type=Path,required=True) + args=ap.parse_args() + expected=json.loads((HERE/'expected.json').read_text()) + r161=checkout(args.pr161,expected['public161_pin']) + r163=checkout(args.pr163,expected['public163_pin']) + sys.path.insert(0,str(r161/'scripts')) + import paired_cube_network as p + from audit_community_candidate import moment + ar=r163/'research/paired-cube-balanced-161/arithmetic' + sys.path.insert(0,str(ar)) + import certificate as c + from interval_moment import saving_grid + n=json.loads((r161/'certificates/paired-cube-network.json').read_text()) + raw=json.loads((r161/'research/paired-cube-bit/out/profile_p12.json').read_text()) + inherited={int(k):int(v) for k,v in raw['child_histogram'].items()} + original=n['bit']['counts'] + need(inherited=={int(k):int(v) for k,v in original['child_multiplicities'].items()},'Bit sources disagree') + need((raw['m'],raw['h'],raw['v'],raw['R'],raw['selected_roles'])==(72,24,1760,23368,5720),'Wrong immutable word') + need(raw['selected_rank_histogram']=={'20':5720},'Wrong selected ranks') + need(sum(k*v for k,v in inherited.items())==1934000,'Inherited rank mass') + packed=dict(inherited);need(packed.pop(60)==5720,'Exterior child inventory') + W=2*1760+3*(Q(5720,18)+Q(17648,3)) + rank=sum(k*v for k,v in packed.items()) + need((W,rank,72*W-rank,max(packed))==(Q(66364,3),1590800,1936,22),'Packed ledger') + # Actual disjoint coordinate blocks, not nullity divisibility alone. + need(all(sum(j//4==i for j in range(72))==4 for i in range(18)),'Selected blocks') + need(all(sum(j//24==i for j in range(72))==24 for i in range(3)),'Undeferred blocks') + profile=dict(original,W_per_vertex=W,rank_per_vertex=rank,deficit_per_vertex=1936, + child_multiplicities={r:Q(v) for r,v in packed.items()},edge_count=sum(packed.values()),maxchild=22) + coarse=Q(302618322217,500000000000000) + atom=Q(302446903,500000000000) + old=Q(384599,10**10) + effective=(1-atom)*coarse+atom*old + need(02^80 remains eligible. + +The entrance classes remain exactly2200 rank20 genuine physical starts; rank21 recipient gauges remain internal splices. Sources, centre-touched roles and deleted terminals are forbidden as entrance gauges, with explicit rejected controls. Remove only2200 per-vertex rank60 exterior children after the complete bank endpoint proof. Every source, target, internal, centre, compensation and fallback child stays charged. + +The resulting full normalized profile is m72, W56402/3, rank1351712, deficit1936, largest child22. Integer moment normalization multiplies stock, every child count and deficit by three. Nine physical replicas supply1100 selected18×4 banks and44742 undeferred3×24 banks per stage, with31680 data registers: literal stock169206. All462078 role-copy assignments across three stages are checked exactly once. + +Two independent rational enclosures, including the full10^-16 bad-class32*72²-per-edge fallback, certify + +`coarse = 136731504666219/200000000000000000`, + +`ordinary = 546573370825043616599485038841961823/800000000000000000000000000000000000000`, + +`ordinary ≈ 0.0006832167135313045`. + +Adjacent coarse and preceding atom-grid controls fail for this fixed profile/envelope. No independent supplier gains are added. + +## All actual charts and fixed normalizers + +The220 unchanged rank20 gauge frames have sigma=ker A with four annihilator rows a. For G=9I-J, residual basis rows15a−(sum a)1 are Gorthogonal to sigma. Put these four columns before the20 sigma columns in B. Reusing PR197's fraction-free factorization, independently verify both B·C=dI and C·B=dI and replay every elementary factor to the identity. This constructs the literal residual projector's chart, rather than an assumed normalizing gadget. + +Across everyactualchart, maximum factor count is186, factor numerator magnitude5, denominator/inverse denominator18, integral inverse numerator18, and basis entry magnitude2. All nonzero inverse and factor denominators are below2^80 and thus units at every inherited primeq>2^80, including local ringsZ/q^w. The chart gzip witness hash is `f81a21df89d4702b70564f9577b5506504de429ca5df253e78bd28f2685cd432`. + +Embed B^-1 in the corresponding24-coordinate tensor stage and use the explicit coordinate permutation Pi_b sending its first residual block into bank intervalb. Choose fixed H_b=(b+1)Pi_bdiag(B^-1,I48), with b0..17 for selected banks or b0..2 for undeferred banks. A common inputcoordinatej outside that tensorstage maps to (b+1)e_(Pi_b(j)); these columns are distinct at everyq>2^80. This supplies literal distinct normalizers without a greedy choice or same-invocation alias. Scalar multiplication leaves conjugation unchanged. + +Group routing sends banklabelg to coregH_b. Each role's routing is a bijection on the completeGL cover. Distinct H_b preventtwo simultaneous roles from borrowing the same physical bank. Replica execution is serial and stages are private. After everycore completes, its arbitrary-dirty residual is conjugate to a disjoint coordinate partial swap. Each bank's partition sums to I72, so the exact ring-general identity gives the full required dirty endpoint; inverse order restores the same contents. The common weighted ancestor chart telescopes and spectators remain intact. + +## Fully charged extra routing + +Allow186 chart elementary factors,71 coordinate transpositions and72 fixed-scalar coordinate factors, totalling329. Nine full replicas contain27 stage-core occurrences. A conservative out-and-back old-selector bill is + +`K =54*((169206−1)+17114*72*329) =21900544398 <2^40`. + +These are additional paid ordinary-selector calls, never silently counted as zero work or as extra recursive children. As in PR197 PROOF5, their cost is O(K V w^(1−a_old)); the inherited positive stopped-leaf atom/row toll absorbs the fixed coefficient K. They change the finite stopping constant, not the exponent or external row order. Full group stock remains charged. All-size restored weighted selector and routing guarantees remain the original conditions. + +## Source-bound receipts and final assembly + +Frame receipt SHA256 `79160698cb761b17af5667e141367160ba0d3d447e0e6121b6de784065e0fb7f`; override witness SHA256 `65b6b30748fe8db9b472c6c4bd34ba6b6ec757f4440ad0d78f8cad139cbd906b`; independent used-frame prime witness SHA256 `038867338525dcae7f9e721b809b42b93cfe2f777db02c6f6189eca25ebed6cd`. All pinned sources stayed byte-identical through the independent geometry audit. + +The parent owns the admitted complex supplier, finite depth-three leaf composition and unchanged47 balanced inequalities with complete scalar/group/router/layout charges. No unattained infinite-depth limit is substituted. General compiler, common weighted chart, restored rows, paid layout, prime supply, precision/recovery and analytic transfer remain inherited. No Lean formalization or publication occurred. + +Reproduce withgeometry/pack-admitted-frames.py againstframes/pr200-fastdirections1, geometry/audit-gauge-charts.py, andgeometry/check-normalizer-routing.py. The complete bank profile, full exact moment proof and each physical assignment hash are inpacked-pr200-fastdirections1.json. diff --git a/research/coordinated-crossover-pr200/BASELINE.json b/research/coordinated-crossover-pr200/BASELINE.json new file mode 100644 index 0000000000..38dc26ae37 --- /dev/null +++ b/research/coordinated-crossover-pr200/BASELINE.json @@ -0,0 +1,34 @@ +{ + "base_commit": "8d8d67bcf69c5ea67d3a29dbc64ba588156d6e8d", + "bit_source_commit": "a1175449f34d39ff933d9d8ab23ced1f32b290ec", + "archive_sha256": "ddb0fbdbda0a45b25ea5c5ce5fd7858687d99211f45b6c3a674d38e1ae7c378d", + "bytes": 51416352, + "parts": [ + { + "file": "baseline-pr202.part01", + "bytes": 12000000, + "sha256": "f5beb67709bf1235a2b6483883aa997a150ed4be47db978ab8be6040114cf924" + }, + { + "file": "baseline-pr202.part02", + "bytes": 12000000, + "sha256": "21e1ff2a0ddc3e8febad3ca19d210d2e83d575f0968bb5125ab62bf6d00794fe" + }, + { + "file": "baseline-pr202.part03", + "bytes": 12000000, + "sha256": "218c880af743a75e272cd51b3bd1ce5f36583f332823c2b5606d21d5d8b72e98" + }, + { + "file": "baseline-pr202.part04", + "bytes": 12000000, + "sha256": "e0f95fcdd581a7617eabd53f4d0ea9e7cf0551a31fcd081e3d2154750740f114" + }, + { + "file": "baseline-pr202.part05", + "bytes": 3416352, + "sha256": "9b64c7b8b5b7893eae071733b7ca14e280fe08b3db942c1c6d00e88d6e615286" + } + ], + "scope": "Exact tracked PR202 LF source, plus pinned replayed aligned complex witness. PR200 bit source agrees except its SOURCE.json receipt." +} diff --git a/research/coordinated-crossover-pr200/BOOTSTRAP-REVIEW.md b/research/coordinated-crossover-pr200/BOOTSTRAP-REVIEW.md new file mode 100644 index 0000000000..1289eb2003 --- /dev/null +++ b/research/coordinated-crossover-pr200/BOOTSTRAP-REVIEW.md @@ -0,0 +1,38 @@ +# Finite-bootstrap proof scope review + +## Sufficient conditional argument + +Let c be the certified coarse bit saving and let a0 be the completed atom-wrapped ordinary supplier saving. Assume the inherited all-width ordinary leaf interface, complete spectator handling, restored borrowed rows, fixed finite tapes and paid routing/layout. These assumptions must be stated for the selected new packed supplier and its retained old ordinary selector. + +For j=1,2,3, construct Aj using the coarse supplier at atom width w=ceil(e^c), with ordinary leaves, source exchanges and routing executed only by A(j-1). This is an acyclic call graph. Within one level, rank-r children have smaller width because r<=22<72; ordinary recursion decreases j. No limit construction or self-call through a completed leaf is used. + +The inherited stopped-leaf estimate is + +Tj(e)/V = O(e^(1-c) + e^((1-c)^2+c(1-a(j-1))) + e^c log e). + +Therefore the achieved ordinary saving is + +a(j) = (1-c)c + c a(j-1) = c - c^j(c-a0). + +Here 02^80 remains allowed. +2. **Complete bank endpoint.** Apply the concrete ring-general partial-swap construction in BANK-CHART-PROOF.md. Exactly 2200 genuine rank20 entrance gauges give rank4 residuals; the 14914 other retained physical chains give rank24 residuals. Nine replicas fill 18-by-4 and 3-by-24 banks, private to each of three stages. All 462078 role-copy assignments occur once. Arbitrary correlated dirty contents obey the full-swap identity and inverse restoration. Sources, spliced recipient gauges and deleted terminals are excluded. Only the 2200 rank60 entrance exterior children are removed. +3. **No free routing.** All 220 gauge charts have literal inverse and elementary-factor witnesses. Explicit normalizers H_b=(b+1)Pi_b diag(B^-1,I48) are distinct modulo every permitted prime, witnessed by an outside-stage unit column. The nine-replica routing bill K=21900544398<2^40 includes charts, permutations and scalar factors. Its fixed ordinary-selector cost is absorbed by the inherited positive stopped-leaf atom/row toll, changing the finite stopping constant rather than the exponent. This remains an explicit inherited all-width assumption, not a consequence of the finite checks alone. +4. **Paid profile.** The normalized bit profile is m=72, W=56402/3, rank=1351712, deficit=1936, largest child22. Integer moment normalization scales W, histogram and deficit by three; actual persistent stock is 169206 on nine replicas. Include the full 10^-16 bad-class envelope with 32*72^2 fallback children per paid edge. Two independent exact rational log/exp enclosures prove coarse c=136731504666219/200000000000000000 and reject c+10^-18. The ordinary leaf starts at the fully paid a0=546573370825043616599485038841961823/(8*10^38), not at the coarse root. +5. **Acyclic finite bootstrap.** Construct A0 -> A1 -> A2 -> A3. At each fixed level, internally borrowing/restoring spectators gives a_j=(1-c)c+c*a_(j-1). This is the PR185/197 completed-leaf composition under their all-width interfaces. Each a_(j-1)1: + md=(lo+hi)//2;v=paid(row,Q(md,den),bit) + if v['upper']<1:lo=md + elif v['lower']>1:hi=md + else:raise ValueError('inconclusive') + a=Q(lo,den);z=Q(hi,den);assert paid(row,a,bit)['upper']<10 for v in z['strict_constraints'].values()) +try:assembly.assembly(a,c['saving'],bridge,k+Q(1,grid),eta=eta,beta=beta) +except AssertionError:pass +else:raise AssertionError('next k accepted') +out=dict(status='PASS_EXACT_47_CONSTRAINT_ASSEMBLY',scope='Conditional finite supplier certificate; retained all-size interfaces and analytic assumptions',bit_profile=bp,complex_profile=cp,bit=b,complex=c,ordinary_chain=chain,bit_ordinary=chain[-1],a_bit=a,a_complex=c['saving'],eta=eta,beta=beta,kappa=k,kappa_float=float(k),binding='bit',assembly=z,adjacent_kappa_rejected=True) +(O/'assembly.json').write_text(json.dumps(enc(out),indent=2,sort_keys=True)+'\n') +print(json.dumps(enc({k:out[k] for k in ['status','kappa','kappa_float','bit_ordinary','a_complex']}),indent=2)) diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part01 b/research/coordinated-crossover-pr200/baseline-pr202.part01 new file mode 100644 index 0000000000..abc3e2fb85 Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part01 differ diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part02 b/research/coordinated-crossover-pr200/baseline-pr202.part02 new file mode 100644 index 0000000000..047bac3233 Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part02 differ diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part03 b/research/coordinated-crossover-pr200/baseline-pr202.part03 new file mode 100644 index 0000000000..dea0a3b789 Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part03 differ diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part04 b/research/coordinated-crossover-pr200/baseline-pr202.part04 new file mode 100644 index 0000000000..bbf44c183d Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part04 differ diff --git a/research/coordinated-crossover-pr200/baseline-pr202.part05 b/research/coordinated-crossover-pr200/baseline-pr202.part05 new file mode 100644 index 0000000000..6ef03d88c3 Binary files /dev/null and b/research/coordinated-crossover-pr200/baseline-pr202.part05 differ diff --git a/research/coordinated-crossover-pr200/certificate.json b/research/coordinated-crossover-pr200/certificate.json new file mode 100644 index 0000000000..5e882a3fbb --- /dev/null +++ b/research/coordinated-crossover-pr200/certificate.json @@ -0,0 +1,199 @@ +{ + "a_bit": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "a_complex": "700918443859411/1000000000000000000", + "adjacent_kappa_rejected": true, + "assembly": { + "absorption_gap": "134281643351448469855595122809435201472739986862783885293176478497632435149777090241037553043786318538250810999419972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "margins": { + "Gaussian_arithmetic": "269255886111883479314991099644648533713048750891109557636200948729645684632351887487203757789591105011931098889929870370327450919972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "balanced_prefix": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "bulk_exposure": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer": "168284928819927174571777066478749333790272697198172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "coordinate_movement": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "dimension": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "scalar_work": "1346279430559417396575940786747573332889326656949102227509004228821919709407178107938068846619221009326043276240329870370327450919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000" + }, + "minimum_margin": "168284928819927174571777066478749333790272697198172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "parameters": { + "C0": { + "base": 2, + "exponent": 210000 + }, + "C1": 1, + "a_bit": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "a_complex": "700918443859411/1000000000000000000", + "alpha_squared_power": "336569857639854349143800455088581333661566120019734099503251153735412811180778526265382825841442974031563109974329870370327450919972289/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "beta": "1/1000000000000000000000000", + "c": "2187704074659053269433904051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "delta": "1/8000000000000000000000000", + "epsilon": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "eta": "1/1000000000000000000000000", + "kappa": "1366380910073/2000000000000000", + "lambda_": "6395624591850681893461133787520736218685239832140422550106711103807918410980047703259889301788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime": "3197812295925340946730566895948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "sigma": "999299081556140589/1000000000000000000", + "tau": "6395624591850681893461133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "recurrence": { + "internal": "6395624591850681893461133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "leaf": "999299081556140589000000000700918443859411/1000000000000000000000000000000000000000000", + "reservations": "3197812295925340946730566095948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "strict_constraints": { + "Gaussian_arithmetic_above_kappa": "214850777155596201368600808930470355522283178903230270162019178396787203748294034208300043037326711738979101128519972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "K_dominates_log": "168284928819927174571838604940287795328734235598172744835625641220994994809711929319935155711813301482483082263329870370327450919972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "K_geometry": "184783669544204542559187223388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "alpha_below_one": "492307692307692307692307446322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "alpha_below_one_fourth": "122824495683693186161219011239216334666274080591391046577830561602521796097004754772207341009223371862242976903881170129629672549080027711/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "alpha_positive": "336569857639854349143800455088581333661566120019734099503251153735412811180778526265382825841442974031563109974329870370327450919972289/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000000000000", + "artificial_boundary": "13795385620059859954557211835837422495990005841237450092528224032414803008712432326207385188431549748156340912609847010388889017647240083133/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "balanced_prefix_above_kappa": "268563779347159105043352287070117180165143973468154616229475666330515895328389813224208299978467977335760967097/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000", + "beta_below_one": "999999999999999999999999/1000000000000000000000000", + "beta_positive": "1/1000000000000000000000000", + "bit_positive": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "bulk_exposure_above_kappa": "2989237084506538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "3197812295925340946730566095948072184001673185503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "2187704074659053269433904051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cell_above_band": "492307692307692307692306953677868917333918979274376611390168000128706577178438645332374487485582183628933403054552329870370327450919972289/985288524330664324082902493554439327999485173691286245418670502050057671265484266387781790680518518690196320110844000000000000000000000000", + "compact_leaf": "55234945691061930566893705133163651557985503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "134281643351448469855595122809435201472739986862783885293176478497632435149777090241037553043786318538250810999419972289/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711000000000000000000000000", + "compact_reservations": "1/4000000000000000000000000", + "complex_above_bit": "110469891382123861133783145328069367133293274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "30549081556140589/1000000000000000000", + "coordinate_movement_above_kappa": "2989237084506538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "delta_below_one_eighth": "999999999999999999999999/8000000000000000000000000", + "delta_positive": "1/8000000000000000000000000", + "dimension_above_kappa": "491971122450052453611726932569939441043609700224474057455808722443125780596733533136624999988130553879110139923045977335760967097/492644262165332162041451246777219663999742586845643122709335251025028835632742133193890895340259259345098160055422000000000000000", + "epsilon_below_one": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "epsilon_positive": "246153846153846153846153600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "gamma_sublinear": "1/2000000000000000000000000", + "guard_width": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "lambda_above_internal": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "110469891382123861133787520736218685239832140422550106711103807918410980047703259889301788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_tau": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_below_one": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "leaf_saving_above_bit": "110469891382123861133778659450028666902893274205695434780470941211685185743138040360243/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "literal_scalar_guard": "1", + "phase_boundary": "269255886111883479314991099644648533713048750891109557636200948729645684632351887487203757789591105011931098889929870370327450919972289/394115409732265729633160997421775731199794069476514498167468200820023068506193706555112716272207407476078528044337600000000000000000000000", + "phase_local": "1346279430559417396575940786747573332889326656949102227509004228821919709407178107938068846619221009326043276240329870370327450919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "prime_interval_packing": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "q_below_internal": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "55234945691061930566893705133163651557985503319702389320868337312568387176134239709180288314814256861959639757/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000000000", + "q_positive": "2187704074659053269433104051927815998326814496680297610679131662687431612823865760290819711685185743138040360243/3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "record_suffix": "168284928819927174572023388609831999871293422821561354667625512514417816371066596945447670129629672549080027711/246322131082666081020725623388609831999871293422821561354667625512514417816371066596945447670129629672549080027711", + "row_product_gap": "23971789/25", + "scalar_work_above_kappa": "1074254871066505337507328127554845332050743894001325042096341310654438068799141436525766602968424239213414195838919972289/1970577048661328648165804987108878655998970347382572490837341004100115342530968532775563581361037037380392640221688000000000000000000000000", + "short_record_fallback": "1574306855524918884571274205389066327000920465903440952946365445540569604237553260610885033093742760664679982409998088157882306036774103883673142683918570723766876330273287070119111281479259396462862693773/1576461638929062918532643989687102924799176277906057992669872803280092274024774826220450865088829629904314112177350400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000000000" + } + }, + "beta": "1/1000000000000000000000000", + "binding": "bit", + "bit": { + "accepted": { + "lower": "1652402343749999997851238800561347063905497669045666488650474907/1652402343750000000000000000000000000000000000000000000000000000", + "saving": "136731504666219/200000000000000000", + "strict_gap_lower": "2438016547619109504615743675878715911813/676824000000000000000000000000000000000000000000000", + "upper": "1652402343749999997851238800561347063905497701989363999508104809/1652402343750000000000000000000000000000000000000000000000000000" + }, + "next_excluded": { + "lower": "8262011718750000006555831576444862302593421956910263100630461/8262011718750000000000000000000000000000000000000000000000000", + "saving": "85457190416387/125000000000000000", + "strict_gap_lower": "65013736811541319536185606023662851449/18048640000000000000000000000000000000000000000000", + "upper": "275400390625000000218527719214828743419780737420068666036349517/275400390625000000000000000000000000000000000000000000000000000" + }, + "saving": "136731504666219/200000000000000000" + }, + "bit_ordinary": "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "bit_profile": { + "L": 0, + "N": 5808, + "W": 56402, + "child_multiplicities": { + "1": 378477, + "10": 5796, + "11": 3627, + "12": 12159, + "13": 4806, + "14": 10638, + "15": 2808, + "16": 9396, + "17": 4284, + "18": 3996, + "19": 2790, + "2": 178653, + "20": 15840, + "21": 45054, + "22": 20016, + "3": 91629, + "4": 28737, + "5": 24219, + "6": 12096, + "7": 11691, + "8": 7344, + "9": 5175 + }, + "m": 72, + "maxchild": 22, + "total_rank": 4055136 + }, + "complex": { + "accepted": { + "lower": "265143999999999999505356323836919762528275607173151/265144000000000000000000000000000000000000000000000", + "saving": "700918443859411/1000000000000000000", + "strict_gap_lower": "44967606923916385224702216933483/24104000000000000000000000000000000000000000000000", + "upper": "24103999999999999955032393076083614775297783066517/24104000000000000000000000000000000000000000000000" + }, + "next_excluded": { + "lower": "66286000000000000033428585232057842908390904631703/66286000000000000000000000000000000000000000000000", + "saving": "175229610964853/250000000000000000", + "strict_gap_lower": "-1162733399375924970726640217937/2305600000000000000000000000000000000000000000000", + "upper": "2305600000000000001162733399375924970726640217937/2305600000000000000000000000000000000000000000000" + }, + "saving": "700918443859411/1000000000000000000" + }, + "complex_profile": { + "L": 0, + "N": 1320, + "W": 12052, + "child_multiplicities": { + "1": 87534, + "10": 2790, + "11": 1062, + "12": 3591, + "13": 381, + "14": 2226, + "15": 5637, + "16": 264, + "17": 243, + "18": 7959, + "19": 501, + "2": 39834, + "20": 66, + "3": 29769, + "4": 12627, + "5": 5850, + "6": 4815, + "7": 2118, + "8": 4593, + "9": 1287 + }, + "m": 66, + "maxchild": 20, + "total_rank": 794112 + }, + "eta": "1/1000000000000000000000000", + "kappa": "1366380910073/2000000000000000", + "kappa_float": 0.0006831904550365, + "ordinary_chain": [ + "546573370825043616599485038841961823/800000000000000000000000000000000000000", + "109385155514905442426418537664349652181461624755757237/160000000000000000000000000000000000000000000000000000000", + "21877040740002110769946254600167413306868853489797819501857050278676903/32000000000000000000000000000000000000000000000000000000000000000000000000", + "4375408149318106538866216854671930632866706725794304565219529058788314814256861959639757/6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "scope": "Conditional finite supplier certificate; retained all-size interfaces and analytic assumptions", + "status": "PASS_EXACT_47_CONSTRAINT_ASSEMBLY" +} diff --git a/research/coordinated-crossover-pr200/frames/opframe-bases.json b/research/coordinated-crossover-pr200/frames/opframe-bases.json new file mode 100644 index 0000000000..dfbfb9f407 --- /dev/null +++ b/research/coordinated-crossover-pr200/frames/opframe-bases.json @@ -0,0 +1 @@ +[[18670,[[1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18715,[[1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18730,[[0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18731,[[0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18771,[[1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18816,[[1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18831,[[0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18832,[[0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18872,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18881,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18882,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18917,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18932,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18933,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18973,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[18982,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[18983,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19018,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19033,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19034,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19074,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19083,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19084,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19119,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19134,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19135,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19175,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19184,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19185,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19220,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19235,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19236,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19276,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19285,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19286,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19321,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19336,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19337,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19377,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19386,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19387,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19422,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19437,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19438,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19478,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19487,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19488,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19523,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19538,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19539,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19579,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19588,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19589,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19624,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19639,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19640,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19680,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19689,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19690,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19725,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19740,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19741,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19781,[[1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19790,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19791,[[1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1],[0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[19826,[[1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19841,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[19842,[[0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20664,[[1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20669,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20672,[[0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20677,[[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20680,[[0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20685,[[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20688,[[0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20693,[[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20696,[[0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20701,[[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20704,[[0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20709,[[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20712,[[0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20717,[[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20720,[[0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20725,[[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20728,[[0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20733,[[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20736,[[0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20741,[[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20744,[[0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]]],[20749,[[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20752,[[0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0]]],[20757,[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20760,[[0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0]]],[20765,[[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20768,[[0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0]]],[20773,[[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20776,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0]]],[20781,[[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20784,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0]]],[20789,[[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0]]],[20792,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]]],[20797,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0]]],[20800,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0]]],[20805,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0]]],[20808,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]]],[20813,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0]]],[20816,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0]]],[20821,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0]]],[20824,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0]]],[20829,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0]]],[20832,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0]]],[20837,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0]]],[20840,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]]],[20845,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0]]],[20848,[[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]],[20853,[[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1]]],[20864,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[20909,[[1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[20918,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[20963,[[1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[20972,[[1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21017,[[1,1,0,0,1,1,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21026,[[1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21080,[[1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21125,[[1,1,1,1,0,0,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21134,[[1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21188,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21242,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21296,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21350,[[1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21395,[[1,1,1,1,0,0,0,0,0,0,0,0,0,-8,1,1,1,1,1,1,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0]]],[21728,[[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21782,[[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[21836,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,-8,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,0]]],[21890,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,4,1,1,1,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0]]],[21944,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,-8,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[21989,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,-8,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[21998,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,4,1,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[22043,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,4,1,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[22052,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,-8],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[22106,[[1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,4],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[22151,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,4],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[22786,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22792,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22793,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22814,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,-6,1,1,1,1,1,1,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0]]],[22822,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0]]],[22833,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22839,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22840,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22869,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0]]],[22880,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22886,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22887,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22908,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,-6,1,1,1,1,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,0]]],[22916,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0]]],[22927,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22974,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22980,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[22981,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23010,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0]]],[23021,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23027,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23028,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23068,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23115,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23162,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23168,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23169,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23209,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23245,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-6,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0]]],[23256,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23303,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23309,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23310,[[1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23350,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23397,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23403,[[1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23404,[[1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23444,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23491,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23538,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23585,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23632,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23679,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23685,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23686,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,-6],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23726,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23762,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,-6,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[23773,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[23809,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,3,1,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[23820,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,-5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[23867,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,5],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23873,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,3],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23874,[[1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,3],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23895,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,3],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[23903,[[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,3],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[24454,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-4],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[24466,[[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[24523,[[2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1]]],[24568,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-4],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[24580,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1]]],[24694,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1]]],[24751,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1]]],[24922,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1]]],[25093,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1]]],[25207,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1]]],[25549,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1]]],[25765,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,2],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[25777,[[1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]],[26467,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26509,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,-2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[26526,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26585,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26627,[[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,-2],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[26644,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26703,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26762,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26821,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26880,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26939,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[26998,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27057,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27116,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27118,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[27119,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[27175,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27234,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27293,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27295,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[27296,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[27352,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27411,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27470,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27472,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[27473,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,0,0]]],[27529,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[27531,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0]]],[27532,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0]]],[27588,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2]]],[27590,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0]]],[27591,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0]]],[27647,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,-1,1,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[27649,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0]]],[27650,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0]]],[27706,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[27765,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[27824,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[27826,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1]]],[27827,[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1]]],[27866,[[1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[28426,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28443,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[28471,[[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[28508,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28525,[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[28590,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28607,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[28635,[[0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0],[1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2]]],[28672,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28689,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[28754,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28771,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[28836,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28853,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[28918,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[28935,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29000,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29017,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29082,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29099,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29164,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29181,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29246,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29263,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29328,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29345,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29410,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29427,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29492,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29509,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29574,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29591,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29656,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29673,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29738,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29755,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29820,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29837,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29902,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,2,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1]]],[29919,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[29984,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2]]],[30001,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[30066,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,-1,1,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0]]],[30083,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[30148,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,2,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0]]],[30165,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1]]],[30230,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[30247,[[1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2]]],[30312,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[30329,[[2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1],[0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]]],[30357,[[0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0],[1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0],[0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]]]] diff --git a/research/coordinated-crossover-pr200/frames/verify-bit-frames.py b/research/coordinated-crossover-pr200/frames/verify-bit-frames.py new file mode 100644 index 0000000000..7093a3b805 --- /dev/null +++ b/research/coordinated-crossover-pr200/frames/verify-bit-frames.py @@ -0,0 +1,37 @@ +import sys,json,gzip,hashlib,argparse,types,signal,contextlib,time +from pathlib import Path +from fractions import Fraction +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +ap=argparse.ArgumentParser();ap.add_argument('--package',required=True);ap.add_argument('--frames',required=True);ap.add_argument('--out',required=True);ap.add_argument('--full',action='store_true');a=ap.parse_args();P=Path(a.package).resolve();O=Path(a.out);O.mkdir(parents=True,exist_ok=True) +resource=types.ModuleType('resource');resource.RLIMIT_CPU=0;resource.RUSAGE_SELF=0;resource.setrlimit=lambda *xs:None;resource.getrusage=lambda *xs:types.SimpleNamespace(ru_maxrss=0);sys.modules.setdefault('resource',resource) +if not hasattr(signal,'alarm'):signal.alarm=lambda *xs:None +sys.path.insert(0,str(P/'bit'));sys.path.insert(0,str(P/'arithmetic')) +from word import Candidate +from terminal import prove +from prime_witnesses import certificate as primes +from prove import certify +W=Candidate();C=W.C;B=json.loads(Path(a.frames).read_text());pins={str(p):hashlib.sha256(p.read_bytes()).hexdigest() for p in W.input_paths+[Path(a.frames),P/'selected/bit/sinks.json',P/'bit/word.py',P/'bit/base_word.py',P/'bit/terminal.py',P/'bit/prime_witnesses.py',Path(W.module.__file__)]} +public=W.opframe[:] +for i,rows in B:W.opframe[i]=W.register(rows) +W.changed_frames=[i for i,(x,y) in enumerate(zip(W.original_opframe,W.opframe)) if x!=y];W.endframe={s:W.opframe[xs[-1]] for s,xs in W.role_ops.items()} +W.exact_frames();baseline=W.row();selection=json.loads((P/'selected/bit/sinks.json').read_text()) +print('PASS full exact rational value, geometry and alias checks; changes',len(B),flush=True) +if a.full: + with contextlib.redirect_stdout(sys.stderr):record=prove(W,selection) + record.pop('seconds');record.pop('maxrss');row=record['profile'];prime=primes(W) + (O/'prime-witnesses.json.gz').write_bytes(gzip.compress((json.dumps(prime,sort_keys=True,separators=(',',':'))+'\n').encode(),mtime=0));prime={k:v for k,v in prime.items() if k!='frame_witnesses'} + row['child_histogram']={int(k):v for k,v in row['child_histogram'].items()} + co=certify(row) +else: + # Exact integer terminal ledger follows the original cancellation once complete + # target trajectories and exact all-column replay are admitted by the full mode. + row=baseline;record=None;prime=None;co=None + +def js(x): + if isinstance(x,Fraction):return str(x) + if isinstance(x,dict):return {str(k):js(v) for k,v in x.items()} + if isinstance(x,(tuple,list)):return [js(v) for v in x] + return x +assert pins=={p:hashlib.sha256(Path(p).read_bytes()).hexdigest() for p in pins} +R=js(dict(status='FULL_FINITE_REPLAY_PASS' if a.full else 'EXACT_FRAME_ONLY_NOT_FULL_REPLAY',input_pins=pins,changed_public_ops=len(B),baseline_profile=baseline,profile=row,terminal=record,coarse=co,prime_witnesses=prime,word_scalar_ops_unchanged=True,gauge_endpoint_and_aliases_unchanged=True)) +(O/'verification.json').write_text(json.dumps(R,indent=1)+'\n');print('PASS',R['status'],R['coarse']['coarse_saving'] if co else '',flush=True) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/BANK-PROOF-PR200.md b/research/coordinated-crossover-pr200/geometry/BANK-PROOF-PR200.md new file mode 100644 index 0000000000..5f4075b8a2 --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/BANK-PROOF-PR200.md @@ -0,0 +1,57 @@ +# Completed entrance banks on the PR200 physical bit word + +2026-10-09. A sufficient finite construction, retaining the upstream all-size interfaces. This is not an unconditional multiplication theorem and is not a new Lean certificate. + +## Exact unchanged input + +PR200 commit `a1175449f34d39ff933d9d8ab23ced1f32b290ec`, package `research/paired-cube-diagonal-bit-168`. Its graph, scalar word, fixed source-pair chronology, physical frame bases, compensated handoffs, terminal sinks and prime witnesses are unchanged. The source includes 18,908 logical auxiliary roles, 1,760 compensated aliases and 34 terminal sinks, leaving 17,114 physical auxiliary chains. There are 2,200 surviving genuine rank-20 entrance gauges. The 1,760 rank-21 recipient gauges are internal splices and receive no separate bank allocation. Deleted terminals are neither gauges nor alias endpoints. The remaining 14,914 physical chains are retained completely. + +The original data channels are 1,760 sources and 1,760 targets. The original complete paid profile is width72, stock20,634, rank mass1,483,712, deficit1,936, with2,200 rank60 exterior children. Source births are not treated as dirty entrance gauges. + +## Universal endpoint and explicit allocation + +Reuse our PR186 completed-core endpoint and paid group routing. For a coordinate projector P and arbitrary incoming addresses x,y over the eligible local ring, the literal map is + +`S_P(x,y) = (x - P*x + P*y, y - P*y + P*x)`. + +On an included coordinate this exchanges x and y; on every other coordinate it preserves both. Thus disjoint coordinate blocks partitioning all72 coordinates compose exactly to the full swap, including arbitrary correlated dirty contents and spectator fields. The reverse block schedule is the literal inverse. This is a ring-general identity; it does not replace the odd-prime address space with F2 just because the payload decoder is binary. + +The established common weighted chart conjugates every block by the same Q_A, so intermediate Q_A^-1 Q_A cancels. For each role, the inherited fixed normalizer sends its true residual projector to its assigned block. Group-indexed routing assigns a role invocation g to bank gH^-1, so each occurrence visits every bank exactly once. Normalizers inside a bank can be made distinct by the inherited finite scalar choice without changing conjugation. Replicas execute serially and stages own different banks. No uninitialized bank or unfinished core is reused. + +Use nine physical replicas of the full unchanged core. In each stage, allocate the9*2,200 selected role-copy occurrences into1,100 banks with18 four-coordinate blocks. Allocate the9*14,914 other occurrences into44,742 banks with three24-coordinate blocks. Both partitions fill every bank exactly; no positive-rank completion child remains. The generator in `pack-pr200.py` maps sorted actual surviving role IDs and replica IDs to explicit bank/block numbers and hashes every assignment. It checks all462,078 role-copy uses across three stages exactly once. Nine replicas are physical, whereas factor three merely clears the rational moment stock. + +There are45,842 banks per stage,137,526 across all stages, and31,680 data registers in nine replicas. The literal persistent stock is169,206, exactly9*(56,402/3). + +## Fully charged child inventory and exact price + +Retain every internal, source, target, center, compensating and terminal-substitution child. Remove exactly the2,200 rank60 exterior children from the original per-vertex histogram. No other child count changes. Then + +`W = 2*1760 + 3*(2200/18 +14914/3) =56402/3`, + +`rank =1483712 -2200*60 =1351712`, + +`72*W -rank =1936`. + +The largest retained child is22. On the integer normalization used by the moment verifier, stock is56,402, rank mass4,055,136, deficit5,808, and every child count is multiplied by three. This normalization removes6,600 rank60 exteriors, corresponding to the2,200 per-vertex children above; it must not be confused with the nine-replica literal realization. + +The original worst-case bad fraction10^-16 and fallback32*72^2 per actual retained child are charged. Independent outward interval calculations based on4/3 and2 certify + +`a0=683528191056257/10^18`. + +They reject the adjacent coarse grid point for this fixed profile and worst-case envelope. The established atom wrapper uses a_old=384599/10^10 and the first10^-24 atom above a0/(1+a0-a_old), giving the paid ordinary saving + +`A_B=170771888233960718836822306974273386891/(250*10^39)` + +`A_B≈0.0006830875529358429`. + +Both strict adapter/borrowed-row tolls remain charged. The parent must compose this bit saving with an admitted complex supplier, its full scalar/group/router/layout bills and the unchanged47-constraint balanced body. Component gains are never added. No final kappa is claimed in this lane until that assembly runs. + +## Other crossover ideas actually assessed + +The current new word still has exactly the4/24 residual families and both tile72 exactly. The rational heterogeneous configuration theorem instantiates the same volume-filling construction; there is no new LP improvement to add. It is ready for future genuinely different residual types. The optional nonorthogonal parity cover cannot be substituted into this odd-prime address model. Even in its proper binary-address model, its overlapping local cores must stay charged. The Parseval phase identity similarly repairs a binary Gaussian endpoint, but no unchanged PR200 local child is a new arbitrary Gram-resolving coding core. These identities are retained as design tools and are not hidden supplier oracles. + +## Verification and retained scope + +`python -B geometry/pack-pr200.py --full` executes the immutable PR200 bit admission, its exact rational frame/source/gauge/partner chronology, all original and terminal-modified F2 and defining integer columns, adverse controls and all24,401 frame prime witnesses. It then checks literal bank coordinate columns, inverse columns, omitted/duplicate blocks, exact assignments and both rational moment engines. On Windows the owned wrapper supplies only the removed ru_maxrss diagnostic when POSIX resource is unavailable; no mathematical checker changes. + +General Clifford/tensor realization, uniform weighted local-ring compilation, common chart selection, restored rows, paid routing/layout, prime supply, precision/recovery and all-size analytic transfer remain the original stated conditions. This construction changes a finite word's dirty-bank allocation under those same conditions. Credit PR186's original bank proof, Chafik Boukhalfa's PR200 physical word, eumemic's PR168 lineage, James Chang's terminal substitution, and every retained upstream attribution. \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/audit-gauge-charts.py b/research/coordinated-crossover-pr200/geometry/audit-gauge-charts.py new file mode 100644 index 0000000000..d0b050bc99 --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/audit-gauge-charts.py @@ -0,0 +1,51 @@ +"""Reuse PR197's exact gauge chart factors on unchanged PR200 entrances. +Checks both inverse matrix identities, literal elementary factor replay, +all factor/unit denominators, and a conservative fully charged routing bound. +""" +from pathlib import Path +from collections import Counter +from fractions import Fraction as Q +from math import gcd +import sys,json,hashlib,importlib.util +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +spec=importlib.util.spec_from_file_location('own_bank',HERE/'pack-pr200.py');G=importlib.util.module_from_spec(spec);spec.loader.exec_module(G) +packing=HERE/'retained-packing.py' +sp=importlib.util.spec_from_file_location('retained_exact_chart_factorizer',packing);P=importlib.util.module_from_spec(sp);sp.loader.exec_module(P) +word=G.proof.Candidate();C=word.C +selected={s:z for s,z in word.gauge.items() if s not in word.donor};inventory=Counter(z['frame'] for z in selected.values()) +G.need(len(selected)==2200 and len(inventory)==220,'actual unchanged220gauge frames') +records=[];maxops=maxnum=maxden=maxC=maxB=0 +for f,count in sorted(inventory.items()): + A=C.A[f];sigma=C.B[f];G.need(len(A)==4 and len(sigma)==20,'actual rank4 residual') + residual=[] + for a in A: + r=[15*x-sum(a) for x in a];d0=gcd(*r);residual.append([x//d0 for x in r]) + G.need(all(9*sum(x*y for x,y in zip(a,b))-sum(a)*sum(b)==0 for a in residual for b in sigma),'literal Gorthogonal residual basis') + B=list(map(list,zip(*(residual+sigma))));inv,d,ops=P.inverse_integer(B) + for left,right in [(B,inv),(inv,B)]: + G.need(all(sum(x*y for x,y in zip(row,col))==d*int(i==j) for i,row in enumerate(left) for j,col in enumerate(zip(*right))),'two exact inverse identities') + replay=[list(map(Q,r)) for r in B] + for op,i,j,n,den in ops: + if op=='swap':replay[i],replay[j]=replay[j],replay[i] + elif op=='scale':replay[i]=[Q(n,den)*x for x in replay[i]] + else: + G.need(op=='add','retained elementary factor type');replay[i]=[x+Q(n,den)*y for x,y in zip(replay[i],replay[j])] + G.need(all(x==int(i==j) for i,row in enumerate(replay) for j,x in enumerate(row)),'independent factor replay') + maxops=max(maxops,len(ops));maxnum=max(maxnum,max(abs(o[3]) for o in ops));maxden=max(maxden,d,max(o[4] for o in ops));maxC=max(maxC,max(abs(x) for r in inv for x in r));maxB=max(maxB,max(abs(x) for r in B for x in r)) + records.append(dict(frame=f,count=count,basis=B,inverse_numerators=inv,inverse_denominator=d,factors=ops)) +G.need(max(maxnum,maxden,maxC,maxB,18)<2**80,'all literal inverse and chart units below inherited prime bound') +# t in1..18 supplies18 distinct fixed scalar choices per selected bank. At most +# one scalar per earlier normalizer is forbidden; conjugation stays unchanged. +# Rational distinctness survives q>2^80 by this bound on cleared differences. +cleared_difference_bound=2*18*max(maxC,1)*max(maxden,1) +G.need(cleared_difference_bound<2**80,'distinct normalizers remain distinct modulo every allowed prime') +factor_bound=maxops+71+72 +physicalstock=169206;physicalchains=17114;full_core_stage_occurrences=27 +calls=2*full_core_stage_occurrences*((physicalstock-1)+physicalchains*72*factor_bound) +G.need(calls<2**40,'fully literal replicated extra selector bound') +raw=json.dumps(records,sort_keys=True,separators=(',',':')).encode() +import gzip +(HERE/'pr200-gauge-charts.json.gz').write_bytes(gzip.compress(raw,mtime=0)) +out=dict(status='PASS_ALL_ACTUAL_GAUGE_CHARTS_AND_ROUTING_BILL',source_pin='a1175449f34d39ff933d9d8ab23ced1f32b290ec',retained_factorizer_sha256=hashlib.sha256(packing.read_bytes()).hexdigest(),gauges=2200,distinct_gauge_frames=220,max_chart_factors=maxops,max_factor_numerator=maxnum,max_denominator_or_inverse_denominator=maxden,max_inverse_numerator=maxC,max_basis_numerator=maxB,chart_witness_sha256=hashlib.sha256((HERE/'pr200-gauge-charts.json.gz').read_bytes()).hexdigest(),greedy_distinct_scalars=list(range(1,19)),cleared_normalizer_difference_bound=cleared_difference_bound,permutation_transpositions_bound=71,extra_distinct_scalar_coordinate_scales_bound=72,combined_chart_factor_bound=factor_bound,nine_full_replicas=True,total_stage_core_occurrences=27,literal_persistent_stock=physicalstock,conservative_extra_selector_calls=calls,selector_calls_below_2pow40=True,prime_guard='Every nonzero factor/inverse denominator and fixed scalar is smaller than2^80; all actual changes are invertible for every inherited primeq>2^80. Distinct normalizers remain distinct by cleared entry bounds.',routing_payment='These finite extra calls use inherited completed old ordinary selector; they are O(K V w^(1-a_old)), absorbed by strict finite-leaf atom/row toll as in PR197 PROOF5. No extra positive-rank children and no new external row reserve.',scope='Exact finite address chart, inverse, unit and replicated routing bill on same220gauge frames; allsize weighted/restored selector guarantee stays inherited.') +(HERE/'PR200-GAUGE-CHART-AUDIT.json').write_text(json.dumps(out,indent=2,sort_keys=True));print(json.dumps(out,indent=2)) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/base_two_moment.py b/research/coordinated-crossover-pr200/geometry/base_two_moment.py new file mode 100644 index 0000000000..14a90fa0e7 --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/base_two_moment.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +"""Maintainer arithmetic cross-check of the pinned PR39 certificate. + +Uses no producer/checker imports. Counts are inputs, not proved by this script. +80-term rational logarithms and 12-term exponentials independently enclose +the two moments. The accompanying written review addresses their realization. +""" +import argparse +from fractions import Fraction as Q +from hashlib import sha256 +import json +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +GRID = 10**30 + + +def require(condition, message): + if not condition: + raise ValueError(message) + + +def log_unit(x): + require(1 <= x <= 2, "logarithm range") + z = (x-1)/(x+1) + lo = 2*sum((z**(2*j+1)/(2*j+1) for j in range(80)), Q(0)) + return lo, lo+2*z**161/(161*(1-z*z)) + + +def log_bounds(x): + k = 0 + while x > 2: + x /= 2 + k += 1 + lo, hi = log_unit(x) + l2, u2 = log_unit(Q(2)) + lo, hi = lo+k*l2, hi+k*u2 + # Outward rational rounding keeps later certificates compact. + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + + +def exp_bounds(x): + require(0 <= x < 1, "exponential range") + term = total = Q(1) + for j in range(1, 13): + term *= x/j + total += term + tail = term*x/13/(1-x/14) + return total, total+tail + + +def moment(m, W, entries, saving): + lo = hi = Q(0) + for t, count in entries: + t, count = int(t), int(count) + require(0 < t < m and count > 0, "improper child") + l, u = log_bounds(Q(m, t)) + lower = exp_bounds(saving*l)[0] + upper = exp_bounds(saving*u)[1] + lo += Q(t*count, m*W)*lower + hi += Q(t*count, m*W)*upper + return Q((lo*GRID).__floor__(), GRID), Q((hi*GRID).__ceil__(), GRID) + diff --git a/research/coordinated-crossover-pr200/geometry/check-normalizer-routing.py b/research/coordinated-crossover-pr200/geometry/check-normalizer-routing.py new file mode 100644 index 0000000000..2bbe2d3bcc --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/check-normalizer-routing.py @@ -0,0 +1,23 @@ +"""Literal fixed scalars distinguish all same-invocation bank normalizers. +No greedy unknown chart is assumed: H_b=(b+1)*Pi_b*diag(B^-1,I_48). +All gauges share the same unchanged24coordinate stage; outside-coordinate +unit columns distinguish H_b for b=0..17 at every primeq>2^80. +""" +from pathlib import Path +import json +H=Path(__file__).resolve().parent;records=[] +for stage in range(3): + local=set(range(24*stage,24*(stage+1)));j=next(i for i in range(72) if i not in local) + for width,blocks in [(4,18),(24,3)]: + original=list(range(24*stage,24*stage+width));witness=[] + for block in range(blocks): + desired=list(range(block*width,(block+1)*width));src=original+[i for i in range(72) if i not in original];dst=desired+[i for i in range(72) if i not in desired] + pi=dict(zip(src,dst));assert set(pi)==set(pi.values())==set(range(72)) + assert [pi[k] for k in original]==desired + # Embedded B^-1 fixes e_j exactly, so H_b e_j is this literal unit column. + witness.append(dict(block=block,scalar=block+1,unit_column=j,result_row=pi[j],result_coefficient=block+1)) + for a,left in enumerate(witness): + for right in witness[a+1:]:assert (left['result_row'],left['result_coefficient'])!=(right['result_row'],right['result_coefficient']) + records.append(dict(stage=stage,width=width,blocks=blocks,outside_stage_column=j,witnesses=witness)) +out=dict(status='PASS_LITERAL_DISTINCT_NORMALIZERS',records=records,prime_guard='All1..18 are different nonzero units at every primeq>2^80, and remain units/distinct in Z/q^w. Each normalizer scales a literal outside-stage unit column differently. Scaling doesnotchange projectorconjugation.',per_role_scalar_coordinate_factors=72,already_charged_in_chart_bound329=True,no_same_invocation_bank_alias=True) +(H/'LITERAL-NORMALIZER-ROUTING.json').write_text(json.dumps(out,indent=2,sort_keys=True));print(out['status']) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/pack-admitted-frames.py b/research/coordinated-crossover-pr200/geometry/pack-admitted-frames.py new file mode 100644 index 0000000000..c4e8ffe01f --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/pack-admitted-frames.py @@ -0,0 +1,38 @@ +"""Compose admitted frame-only changes with concrete stage-private entrance banks. +Reconstructs every modified frame/physical paid chain, audits all actual prime +witnesses, and independently recomputes two exact paid bank moment engines. +The referenced frame receipt provides the full dirty-column terminal replay. +""" +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +import sys,json,gzip,hashlib,argparse,importlib.util +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +spec=importlib.util.spec_from_file_location('geometry_bank_pr200',HERE/'pack-pr200.py');G=importlib.util.module_from_spec(spec);spec.loader.exec_module(G) +need=G.need +ap=argparse.ArgumentParser();ap.add_argument('--candidate',required=True);a=ap.parse_args() +D=Path(a.candidate);record=json.loads((D/'checked/verification.json').read_text());frames=D/'opframe-bases.json';primefile=D/'checked/prime-witnesses.json.gz' +need(record['status']=='FULL_FINITE_REPLAY_PASS','complete independent frame dirty-word admission') +for path,want in record['input_pins'].items():need(hashlib.sha256(Path(path).read_bytes()).hexdigest()==want,'actual immutable input pin '+path) +need(record['word_scalar_ops_unchanged'] and record['gauge_endpoint_and_aliases_unchanged'],'unchanged whole-word endpoint classes') +word=G.proof.Candidate();before={k:word.w[k] for k in ['gauges','pairs','rootroles','root_frame','source_frame','sources','reads']};changes=json.loads(frames.read_text()) +for index,B in changes:word.opframe[index]=word.register(B) +word.changed_frames=[i for i,(x,y) in enumerate(zip(word.original_opframe,word.opframe)) if x!=y];word.endframe={s:word.opframe[xs[-1]] for s,xs in word.role_ops.items()} +word.exact_frames();row=word.row() +need(G.encode(row)==record['baseline_profile'],'independent complete modified physical baseline ledger') +need(before=={k:word.w[k] for k in before},'bank source/gauge/endpoints truly unchanged') +need(Counter({int(k):v for k,v in record['terminal']['child_delta'].items()})==Counter({3:-102,21:-102}),'paid34terminal child substitution unchanged') +H={int(k):v for k,v in row['child_histogram'].items()};H[3]-=102;H[21]-=102 +need(H=={int(k):v for k,v in record['profile']['child_histogram'].items()},'independent terminal-paid complete histogram') +prime=G.raw_prime_certificate(word);need(prime==json.loads(gzip.decompress(primefile.read_bytes())),'independent allused modifiedframe prime witness audit') +packed=G.packed(record['profile'],word.w);coarse=G.proof.certify(packed['scaled_moment_profile']) +from base_two_moment import moment as alternate +q=packed['scaled_moment_profile'];hist=list(q['child_histogram'].items());W=q['W_per_vertex'];a0=coarse['coarse_saving'];fallback=32*72**2*sum(n for r,n in hist) +_,upper=alternate(72,W,hist,a0);_,bad=alternate(72,W,[(1,fallback)],a0);need(upper+Q(1,10**16)*bad<1,'independent paid moment accepted') +lower,_=alternate(72,W,hist,a0+Q(1,10**18));badlower,_=alternate(72,W,[(1,fallback)],a0+Q(1,10**18));need(lower+Q(1,10**16)*badlower>1,'independent adjacent paid moment rejected') +allocation=G.literal_allocation(word.w);endpoints=G.endpoint_checks() +for path,want in record['input_pins'].items():need(hashlib.sha256(Path(path).read_bytes()).hexdigest()==want,'inputs remain identical') +out=dict(status='PASS_ADMITTED_FRAME_BANK_COMPOSITION',frame_receipt_sha256=hashlib.sha256((D/'checked/verification.json').read_bytes()).hexdigest(),opframe_override_sha256=hashlib.sha256(frames.read_bytes()).hexdigest(),opframe_changes=len(changes),profile=packed,coarse=coarse,literal_allocation=allocation,endpoints=endpoints,prime_witness_sha256=hashlib.sha256(primefile.read_bytes()).hexdigest(),all_used_frame_prime_audit={k:v for k,v in prime.items() if k!='frame_witnesses'},whole_word_receipt=record['status'],unchanged_entrance_alias_and_terminal_classes=True,scope='Sufficient finite dirty-bank composition of independently admitted full frame word. Original allsize supplier interfaces retained; parent owns finalbalanced assembly.') +name='packed-'+D.name+'.json';(HERE/name).write_text(json.dumps(G.encode(out),indent=2,sort_keys=True)) +print(json.dumps(G.encode(dict(status=out['status'],output=str(HERE/name),changed_ops=len(changes),stock=packed['W_per_vertex'],rank=packed['rank_per_vertex'],coarse=coarse['coarse_saving'],ordinary=coarse['ordinary_saving'],ordinary_float=float(coarse['ordinary_saving']),frames=prime['total_used_frames'])),indent=2)) \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/pack-pr200.py b/research/coordinated-crossover-pr200/geometry/pack-pr200.py new file mode 100644 index 0000000000..1407b17750 --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/pack-pr200.py @@ -0,0 +1,121 @@ +"""Apply established completed entrance banks to the immutable PR200 physical word. +Light mode is candidate pricing, never complete word admission. --full replays all +source/target/dirty columns and exact frame/prime/terminal checks through PR200. +""" +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +import json,sys,importlib.util,hashlib,contextlib,types +# Windows shim supplies only the removed resource diagnostic, never proof data. +try: import resource +except ImportError: + resource=types.ModuleType("resource");resource.RUSAGE_SELF=0 + resource.getrusage=lambda _:types.SimpleNamespace(ru_maxrss=0) + sys.modules["resource"]=resource +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +PKG=HERE.parents[2]/'research/paired-cube-diagonal-bit-168' +sys.path.insert(0,str(PKG/'bit'));sys.path.insert(0,str(PKG/'arithmetic')) +spec=importlib.util.spec_from_file_location('pr200_paid_proof',PKG/'bit/prove.py') +proof=importlib.util.module_from_spec(spec);spec.loader.exec_module(proof) +# Match Linux provenance spelling only; determinants and factor identities untouched. +raw_prime_certificate=proof.prime_certificate +def portable_prime_certificate(word): + record=raw_prime_certificate(word) + record['input_sha256']={k.replace(chr(92),'/'):v for k,v in record['input_sha256'].items()} + return record +proof.prime_certificate=portable_prime_certificate +def need(ok,why): + if not ok:raise ValueError(why) +def encode(z): + if isinstance(z,Q):return str(z) + if isinstance(z,dict):return {str(k):encode(v) for k,v in z.items()} + if isinstance(z,(tuple,list)):return [encode(v) for v in z] + return z + +def endpoint_checks(): + records=[] + for width,copies in [(4,18),(24,3)]: + for ring in [0,2,3,5]: + def run(column,blocks): + x=[int(j==column) for j in range(72)];y=[int(72+j==column) for j in range(72)] + for block in blocks: + for j in range(block*width,(block+1)*width):x[j],y[j]=y[j],x[j] + return x+y + for column in range(144): + want=[int(j==(column+72)%144) for j in range(144)] + need(run(column,range(copies))==want,'all dirty address columns full swap') + need(run(column,list(range(copies))+list(reversed(range(copies))))==[int(j==column) for j in range(144)],'all inverse columns') + for blocks in [list(range(copies-1)),list(range(copies))+[copies-1]]: + need(run(72-width,blocks)!=[int(j==144-width) for j in range(144)],'adverse omitted/duplicate block') + records.append(dict(width=width,blocks=copies,address_ring=ring,forward_columns=144,inverse_columns=144,negative_controls=2)) + return records + +def literal_allocation(word_data): + pairs=word_data['pairs'];donor={b:a for a,b in pairs} + selected=sorted(z['role'] for z in word_data['gauges'] if z['role'] not in donor) + sinks=json.loads((PKG/'selected/bit/sinks.json').read_text()) + removed={word_data['rootroles'][e['root']] for e in sinks} + need(len(removed)==34 and not removed.intersection(selected),'terminal roles excluded from selected entrance banks') + need(not set(selected).intersection(word_data['sources'].values()),'source births are not entrance gauges') + allroles={donor.get(s,s) for s in range(18908)}-removed + rest=sorted(allroles-set(selected)) + need(len(allroles)==17114 and len(selected)==2200 and len(rest)==14914,'every actual retained physical chain exactly once') + records=[] + for stage in range(3): + totalbanks=0;assigned=set();digest=hashlib.sha256() + for family,(roles,width,blocks) in enumerate([(selected,4,18),(rest,24,3)]): + occurrences=[(replica,role) for replica in range(9) for role in roles] + need(len(occurrences)%blocks==0,'exact full banks, no omitted residual child') + for offset in range(0,len(occurrences),blocks): + group=occurrences[offset:offset+blocks] + need(len(group)==blocks and blocks*width==72,'each literal bank fills 72 coordinates') + for block,label in enumerate(group): + need(label not in assigned,'each role-copy receives one bank slot per stage');assigned.add(label) + digest.update(f'{stage}:{family}:{offset//blocks}:{block}:{label[0]}:{label[1]}\n'.encode()) + totalbanks+=len(occurrences)//blocks + need(len(assigned)==9*17114 and totalbanks==45842,'complete stage-private physical stock') + records.append(dict(stage=stage,assigned_role_copies=len(assigned),selected_banks=1100,undeferred_banks=44742,total_banks=totalbanks,allocation_sha256=digest.hexdigest())) + return dict(stages=records,data_registers=2*9*1760,total_persistent_registers=3*45842+2*9*1760,arbitrary_dirty_contents=True,normalization='Common ancestor weighted chart; literal disjoint coordinate partialSwap blocks; role normalizers chosen distinctly inside each bank by inherited fixed conjugation/routing construction.') + +def packed(row,word_data): + pairs=word_data['pairs'];recipients={b for a,b in pairs};gauges=word_data['gauges'] + starts={z['role']:z['dim'] for z in gauges if z['role'] not in recipients} + need(Counter(starts.values())=={20:2200},'genuine surviving entrance gauges') + need(not set(starts).intersection(word_data['sources'].values()),'source births are not bank entrance gauges') + touched={s for i in word_data['phase1'] for s in word_data['ops'][i][:2]} + need(not set(starts).intersection(touched),'entrance gauges untouched throughout centre phase') + need(Counter(z['dim'] for z in gauges if z['role'] in recipients)=={21:1760},'spliced recipients not bank roles') + need(row['R']==17114 and row['terminal_sinks']==34,'retained exact physical terminals') + rest=row['R']-len(starts) + H={int(k):v for k,v in row['child_histogram'].items()};need(H.pop(60)==2200,'remove exactly actual entrance exteriors') + W=Q(2*row['v'])+3*(Q(len(starts),18)+Q(rest,3)) + mass=sum(k*v for k,v in H.items());need(72*W-mass==1936,'full telescoping deficit') + t=9 + need(t*2200%18==0 and t*rest%3==0,'integral stage-private configuration') + scaled=dict(row,W_per_vertex=int(3*W),rank_per_vertex=3*mass,deficit_per_vertex=3*1936,maxchild=max(H),child_histogram={k:3*v for k,v in H.items()}) + return dict(m=72,W_per_vertex=W,rank_per_vertex=mass,deficit_per_vertex=1936,maxchild=max(H),child_histogram=H,selected_entrances=2200,undeferred_physical_chains=rest,physical_replicas=t,selected_banks_per_stage=t*2200//18,undeferred_banks_per_stage=t*rest//3,scaled_moment_profile=scaled) + +def main(): + import gzip + cert=json.loads((PKG/'certificate.json').read_text());row=cert['bit']['profile'] + data=json.loads(gzip.decompress((PKG/'selected/bit/word_p12.json.gz').read_bytes())) + full='--full' in sys.argv + if full: + import io + sink=io.StringIO() + with contextlib.redirect_stdout(sink):proof.main() + actual=json.loads(sink.getvalue());need(actual==cert['bit'],'complete word admission reproduces frozen bit certificate') + row=actual['profile'] + p=packed(row,data) + coarse=proof.certify(p['scaled_moment_profile']) + from base_two_moment import moment as alternate_moment + q=p['scaled_moment_profile'];H=list(q['child_histogram'].items());a=coarse['coarse_saving'];W=q['W_per_vertex'];edgecount=sum(n for r,n in H) + _,upper=alternate_moment(72,W,H,a);_,bad=alternate_moment(72,W,[(1,32*72**2*edgecount)],a) + need(upper+Q(1,10**16)*bad<1,'independent base-two paid acceptance') + lower,_=alternate_moment(72,W,H,a+Q(1,10**18));badlow,_=alternate_moment(72,W,[(1,32*72**2*edgecount)],a+Q(1,10**18)) + need(lower+Q(1,10**16)*badlow>1,'independent adjacent paid exclusion') + out=dict(status='PASS_FULL_BIT_ADMISSION' if full else 'PRICED_CANDIDATE_NOT_ADMITTED',base_pin='a1175449f34d39ff933d9d8ab23ced1f32b290ec',base_certificate_sha256=hashlib.sha256((PKG/'certificate.json').read_bytes()).hexdigest(),profile=p,coarse=coarse,endpoints=endpoint_checks(),literal_allocation=literal_allocation(data),universal_proof='Established ring-general disjoint partialSwap endpoint, arbitrary dirty contents, nine physical replicas, same weighted chart and charged routing. No source-birth bank gauge or characteristic-two odd-field substitution.',scope='Bit endpoint, complete paid child profile and exact moments only. Full root balanced assembly remains primary-owned.') + (HERE/('packed-pr200-full.json' if full else 'packed-pr200-priced.json')).write_text(json.dumps(encode(out),sort_keys=True,indent=2)) + print(json.dumps(encode(dict(status=out['status'],W=p['W_per_vertex'],rank=p['rank_per_vertex'],coarse=coarse['coarse_saving'],effective=coarse['ordinary_saving'],effective_float=float(coarse['ordinary_saving']),selected=2200,rest=p['undeferred_physical_chains'])),indent=2)) +if __name__=='__main__':main() \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/geometry/retained-packing.py b/research/coordinated-crossover-pr200/geometry/retained-packing.py new file mode 100644 index 0000000000..b7e31dc08a --- /dev/null +++ b/research/coordinated-crossover-pr200/geometry/retained-packing.py @@ -0,0 +1,186 @@ +"""Exact gauge charts and completed-residual bank allocation. + +Apache-2.0. Prepared with substantial OpenAI Codex assistance. +""" +from array import array +from collections import Counter +from fractions import Fraction as Q +from math import gcd +from pathlib import Path +import hashlib,json,sys + +def inverse_integer(a): + """Fraction-free Gauss-Jordan; return integral C,d with a C = d I.""" + n=len(a) + m=[list(row)+[int(i==j) for j in range(n)] for i,row in enumerate(a)] + previous=1 + factors=[] + for k in range(n): + pivot=next((i for i in range(k,n) if m[i][k]),None) + if pivot is None: + raise ValueError('Singular basis') + m[k],m[pivot]=m[pivot],m[k] + if pivot != k:factors.append(('swap',k,pivot,1,1)) + p=m[k][k] + if p != previous: + ratio=Q(previous,p) + factors.append(('scale',k,k,ratio.numerator,ratio.denominator)) + for i in range(n): + if i==k:continue + u=m[i][k] + if u: + ratio=Q(-u,previous) + factors.append(('add',i,k,ratio.numerator,ratio.denominator)) + for j in range(2*n): + if j==k:continue + value=p*m[i][j]-u*m[k][j] + assert value % previous==0 + m[i][j]=value//previous + m[i][k]=0 + previous=p + d=m[0][0] + assert d and all(m[i][j]==d*int(i==j) for i in range(n) for j in range(n)) + c=[row[n:] for row in m] + common=abs(d) + for row in c: + for x in row:common=gcd(common,x) + d//=common + c=[[x//common for x in row] for row in c] + if d<0:d=-d;c=[[-x for x in row] for row in c] + return c,d,factors + +def color_incidence(left,right,nleft,nright,colors): + """Incremental two-color swaps; parallel edges are identified separately.""" + assert len(left)==len(right) + full=(1<22 for r in H) + W=2*w['v']*copies+bank;mass=sum(r*n for r,n in H.items()) + assert 72*W-mass==copies*receipt['deficit_per_vertex']==5808 + K=18*((W-1)+len(physical)*72*(maxops+71)) + record=dict(status='PASS exact actual-chain chart and incidence checks',source_commit='201737a1ec4f936e166e2481fb9e88104cb2ccc7', + word_sha256=receipt['word_sha256'],physical_roles=len(physical),interior_splices=len(recipients),gauge_roles=len(selected), + distinct_gauges=len(inventory),copies=copies,banks=bank,patterns=[dict(rank4=6,rank24=2,count=small),dict(rank4=0,rank24=3,count=large)], + incidences=len(left),W=W,m=72,rank_mass=mass,deficit=5808,maxchild=max(H),child_histogram=dict(sorted(H.items())), + chart_sha256=digest.hexdigest(),incidence_sha256=incidence.hexdigest(),max_chart_factors=maxops,max_num=maxnum,max_den=maxden, + conservative_selector_calls=K,color_stats=stats,conflicting_assignment_rejected=rejected) + + return record diff --git a/research/coordinated-crossover-pr200/requirements.txt b/research/coordinated-crossover-pr200/requirements.txt new file mode 100644 index 0000000000..784141bdc2 --- /dev/null +++ b/research/coordinated-crossover-pr200/requirements.txt @@ -0,0 +1,2 @@ +numpy==2.3.5 +scipy==1.17.0 diff --git a/research/coordinated-crossover-pr200/verify.py b/research/coordinated-crossover-pr200/verify.py new file mode 100644 index 0000000000..56885a8401 --- /dev/null +++ b/research/coordinated-crossover-pr200/verify.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +"""Offline finite certificate replay. Python3.11+, numpy2.3.5, scipy1.17.0.""" +from pathlib import Path +import argparse,hashlib,json,io,zipfile,tempfile,subprocess,shutil,sys +HERE=Path(__file__).resolve().parent +sys.dont_write_bytecode=True +if hasattr(sys,'set_int_max_str_digits'):sys.set_int_max_str_digits(0) +def sha(p):return hashlib.sha256(p.read_bytes()).hexdigest() +def pins(): + m=json.loads((HERE/'FILES.json').read_text())['files'];actual={p.relative_to(HERE).as_posix():sha(p) for p in HERE.rglob('*') if p.is_file() and p.name!='FILES.json'};assert actual==m,'Missing, changed, or unpinned upload file';return actual +assert not sys.flags.optimize +ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--temp-root',type=Path,help='Optional spacious scratch drive for extraction');args=ap.parse_args();before=pins();baseline=json.loads((HERE/'BASELINE.json').read_text());parts=[] +for entry in baseline['parts']: + p=HERE/entry['file'];assert p.stat().st_size==entry['bytes'] and sha(p)==entry['sha256'];parts.append(p.read_bytes()) +blob=b''.join(parts);assert hashlib.sha256(blob).hexdigest()==baseline['archive_sha256'] +with tempfile.TemporaryDirectory(prefix='crossover-pr200-',dir=args.temp_root) as tmp: + root=Path(tmp)/'source';root.mkdir() + with zipfile.ZipFile(io.BytesIO(blob)) as z: + for entry in z.infolist():assert (root/entry.filename).resolve().is_relative_to(root.resolve()),'Unsafe archive entry' + z.extractall(root) + package=root/'research/coordinated-crossover-pr200';package.mkdir() + skip={x['file'] for x in baseline['parts']} + for p in HERE.rglob('*'): + if p.is_file() and p.name not in skip: + target=package/p.relative_to(HERE);target.parent.mkdir(parents=True,exist_ok=True);shutil.copyfile(p,target) + result=subprocess.run([sys.executable,'-B',str(package/'verify_inner.py')],text=True) + assert result.returncode==0,'Full finite replay failed' +assert pins()==before,'Upload files changed during replay' +print('PASS immutable manual-upload package; no network, git, or publication required') \ No newline at end of file diff --git a/research/coordinated-crossover-pr200/verify_inner.py b/research/coordinated-crossover-pr200/verify_inner.py new file mode 100644 index 0000000000..ce3a8630e1 --- /dev/null +++ b/research/coordinated-crossover-pr200/verify_inner.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +"""Full finite replay; all-size compiler/selector and analytic conditions are inherited.""" +from pathlib import Path +import subprocess,sys,json,importlib.util,hashlib,gzip +from fractions import Fraction as Q +sys.set_int_max_str_digits(0);sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent;ROOT=HERE.parents[1];SA=ROOT/'research/source-assisted';CP=ROOT/'research/source-assisted-v4';WORK=CP/'.work' +def run(*args): + r=subprocess.run([sys.executable,'-B',*map(str,args)],cwd=ROOT,capture_output=True,text=True) + if r.returncode:raise RuntimeError('Replay rejected: '+str(args)+'\n'+r.stdout[-6000:]+'\n'+r.stderr[-6000:]) + print(r.stdout[-2000:],end='',flush=True) +def load(n,p): + s=importlib.util.spec_from_file_location(n,p);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +def read(p):return json.loads(p.read_text()) +assert not sys.flags.optimize +before={p.relative_to(ROOT).as_posix():hashlib.sha256(p.read_bytes()).hexdigest() for p in [ROOT/'scripts/paired_cube_assembly.py',SA/'decision/exact_complex_flow_lift.py',CP/'contract_v4.py']} +# Every source, target and dirty-register formal column, exact frames and all primes. +run(HERE/'frames/verify-bit-frames.py','--package',ROOT/'research/paired-cube-diagonal-bit-168','--frames',HERE/'frames/opframe-bases.json','--out',HERE/'frames/checked','--full') +run(HERE/'geometry/pack-admitted-frames.py','--candidate',HERE/'frames') +run(HERE/'geometry/audit-gauge-charts.py');run(HERE/'geometry/check-normalizer-routing.py') +# The portable witness is checked again; original numerical search need not be repeated. +run(SA/'decision/exact_complex_flow_lift.py','--witness',WORK/'flow.witness.json','--profile',WORK/'flow.json','--out',WORK/'lift.json') +lift=read(WORK/'lift.json');expected=read(CP/'certificate.json');assert lift['exact_scalar_program_sha256']==expected['lift']['exact_scalar_program_sha256'] +for key,name in [('certificate_path','lift.certificate.json.gz'),('witness_path','flow.witness.json')]:lift[key]=(WORK/name).relative_to(ROOT).as_posix() +lift['checker_path']=(SA/'decision/exact_complex_flow_lift.py').relative_to(ROOT).as_posix() +(WORK/'lift.json').write_text(json.dumps(lift,indent=2)+'\n',newline='\n') +run(CP/'contract_v4.py','--tree',WORK/'aligned','--cache',WORK/'aligned/cache','--witness',WORK/'flow.witness.json','--flow-profile',WORK/'flow.json','--lift-profile',WORK/'lift.json','--out',HERE/'complex-profile-replayed.json') +actual=read(HERE/'complex-profile-replayed.json') +for key in ['m','W_per_vertex','rank_per_vertex','deficit_per_vertex','child_histogram','contract_checks','exact_scalar_program_sha256']: + assert actual[key]==expected['complex_profile'][key],('Complex mathematical output changed',key) +# Paid two-supplier moments, three finite leaf levels, and unchanged 47 constraints. +run(HERE/'arithmetic.py');assert read(HERE/'assembly.json')==read(HERE/'certificate.json'),'Derived final certificate differs' +cert=read(HERE/'assembly.json');assert all(Q(x)>0 for x in cert['assembly']['strict_constraints'].values());assert len(cert['assembly']['strict_constraints'])==47 +# Independent base-two enclosure, no imports from the public moment implementation. +im=load('independent_base_two',HERE/'geometry/base_two_moment.py') +for side in ['bit','complex']: + row=cert[side+'_profile'];a=Q(cert[side]['saving']);hist=[(int(t),n) for t,n in row['child_multiplicities'].items()] + lo,hi=im.moment(row['m'],row['W'],hist,a);nl,nu=im.moment(row['m'],row['W'],hist,a+Q(1,10**18)) + if side=='bit': + fallback=[(1,32*row['m']**2*sum(n for _,n in hist))];bl,bu=im.moment(row['m'],row['W'],fallback,a);bnl,bnu=im.moment(row['m'],row['W'],fallback,a+Q(1,10**18));hi+=Q(1,10**16)*bu;nl+=Q(1,10**16)*bnl + assert hi<1