diff --git a/auto_round/__main__.py b/auto_round/__main__.py index 0fe576c75..70a7da426 100644 --- a/auto_round/__main__.py +++ b/auto_round/__main__.py @@ -382,7 +382,7 @@ def __init__(self, *args, **kwargs): "--rotation_type", default=None, type=str, - choices=["hadamard", "random_hadamard"], + choices=["hadamard", "random_hadamard", "quarot_hadamard"], help="Research feature: applies a rotation (e.g., Hadamard) to reduce activation/weight outliers", ) gguf = self.add_argument_group("Double Quant Arguments") @@ -718,7 +718,7 @@ def tune(args): shared_layers=args.shared_layers, ignore_scale_zp_bits=args.ignore_scale_zp_bits, low_gpu_mem_usage=True, # force it to be True as it uses much smaller vram but similar time cost - low_cpu_mem_usage=low_cpu_mem_usage, + low_cpu_mem_usage=False, ) rot_config = None if args.rotation_type: diff --git a/auto_round/alg_ext.py b/auto_round/alg_ext.py index 148840d44..d048b2a33 100644 --- a/auto_round/alg_ext.py +++ b/auto_round/alg_ext.py @@ -47,7 +47,7 @@ def wrapper_autoround(cls: AutoRound): if cls.bits > 2 and (not cls.data_type.startswith("mx") or not cls.data_type.startswith("nv")): logger.warning_once( "algorithm extension has only undergone limited validation on " - "W2A16,INT4, MXFP4 and NVFP4; use with caution." + "W2A16, INT4, MXFP4 and NVFP4. Please use with caution." ) cls._get_loss = types.MethodType(_get_loss_ext, cls) setattr(cls, "wrapper_block", wrapper_block_v2) diff --git a/auto_round/auto_scheme/delta_loss.py b/auto_round/auto_scheme/delta_loss.py index a7e2bdf90..7b690fc2f 100644 --- a/auto_round/auto_scheme/delta_loss.py +++ b/auto_round/auto_scheme/delta_loss.py @@ -105,6 +105,11 @@ def _qdq_act(self, x, act_min_scale=1.0, act_max_scale=1.0, act_max=None): if hasattr(self.orig_layer, "act_bits") and self.orig_layer.act_bits > 8: return x, 1.0, None + # NOTE: AR_ACT_SCALE is already handled inside the parent + # WrapperLinear._qdq_act (it overrides max_scale/min_scale when the env + # var is explicitly set). Do NOT re-apply it here, otherwise we would + # pass a Python float into the parent, which calls + # ``act_max_scale.data.clamp_()`` and crashes on non-Tensor inputs. qdq_x, scale, zp = self.act_qdq_func(x, act_min_scale, act_max_scale, act_max) if self.grad_mode: with torch.no_grad(): @@ -1381,83 +1386,85 @@ def gen_layer_config( device_list = parse_available_devices(device_map) # Enable gradient checkpointing if supported. - # - # IMPORTANT: we must use ``use_reentrant=False``. The reentrant - # implementation requires the inputs that enter the checkpointed region to - # have ``requires_grad=True`` — otherwise its backward sees "no grad- - # requiring input" and returns ``None`` for the input gradient, which kills - # the autograd chain *before* the checkpoint boundary. In AutoScheme we - # aggressively turn off ``requires_grad`` on every non-wrapper parameter - # (token embeddings, norms, vision-tower non-linear layers, patch embeds, - # …), so ``inputs_embeds`` entering the first text decoder block often does - # NOT require grad. With reentrant=True that means gradient never flows - # back into the vision tower → vision wrapper hooks see grad=0. - # ``use_reentrant=False`` (saved-tensor-hooks impl) does not have this - # restriction. - def _enable_gc(mod): - if not getattr(mod, "supports_gradient_checkpointing", False): - return - try: - mod.gradient_checkpointing_enable(gradient_checkpointing_kwargs={"use_reentrant": False}) - except TypeError: - # Older transformers without the kwargs argument. - mod.gradient_checkpointing_enable() - - _enable_gc(model) + # IMPORTANT: remember the original state and restore it before returning, + # otherwise the downstream quantize() pipeline (block-wise tuning, hooks, + # alg_ext, etc.) runs under checkpointing=ON, which double-fires + # forward_hooks during recompute and silently degrades the final accuracy + # of the mixed-bit model — sometimes worse than uniform low-bit. + prev_grad_ckpt = bool(getattr(model, "is_gradient_checkpointing", False)) + enabled_grad_ckpt_here = False + if model.supports_gradient_checkpointing and not prev_grad_ckpt: + model.gradient_checkpointing_enable() + enabled_grad_ckpt_here = True + + # Remember the caller's training mode so we can restore it after AutoScheme. + # Inside _gen_layer_config we may flip to model.train() (low_gpu=False) so + # HF's block-level ckpt actually fires; we must not leak that into the main + # quantization loop. + prev_training = bool(getattr(model, "training", False)) for name in quant_layer_names: m = get_module(model, name) m.tmp_name = name try: - res = _gen_layer_config( - auto_scheme, - model, - quant_layer_names, - fixed_layer_scheme, - dataset=dataset, - tokenizer=tokenizer, - model_name=model_name, - enable_torch_compile=enable_torch_compile, - disable_opt_rtn=disable_opt_rtn, - device_map=device_map, - major_device=major_device, - device_list=device_list, - min_avg_bit_scheme=min_avg_bit_scheme, - processor=processor, - is_vlm=is_vlm, - ) - except torch.OutOfMemoryError: - logger.warning( - "Fallback to CPU for automatic scheme generation." - " Using multiple devices is strongly recommended (e.g., --device_map 0,1,2,3)." - ) - model.to("cpu") - for n, m in model.named_modules(): - if hasattr(m, "orig_layer"): - set_module(model, n, m.orig_layer) - clear_memory(device_list=device_list) - if hasattr(model, "hf_device_map") and len(model.hf_device_map) > 1: - import accelerate - - accelerate.hooks.remove_hook_from_submodules(model) - delattr(model, "hf_device_map") - res = _gen_layer_config( - auto_scheme, - model, - quant_layer_names, - fixed_layer_scheme, - dataset=dataset, - tokenizer=tokenizer, - model_name=model_name, - enable_torch_compile=enable_torch_compile, - disable_opt_rtn=disable_opt_rtn, - device_map=device_map, - major_device=major_device, - device_list=device_list, - min_avg_bit_scheme=min_avg_bit_scheme, - processor=processor, - is_vlm=is_vlm, - ) + try: + res = _gen_layer_config( + auto_scheme, + model, + quant_layer_names, + fixed_layer_scheme, + dataset=dataset, + tokenizer=tokenizer, + model_name=model_name, + enable_torch_compile=enable_torch_compile, + disable_opt_rtn=disable_opt_rtn, + device_map=device_map, + major_device=major_device, + device_list=device_list, + min_avg_bit_scheme=min_avg_bit_scheme, + ) + except torch.OutOfMemoryError: + logger.warning( + "Fallback to CPU for automatic scheme generation." + " Using multiple devices is strongly recommended (e.g., --device_map 0,1,2,3)." + ) + model.to("cpu") + for n, m in model.named_modules(): + if hasattr(m, "orig_layer"): + set_module(model, n, m.orig_layer) + clear_memory(device_list=device_list) + if hasattr(model, "hf_device_map") and len(model.hf_device_map) > 1: + import accelerate + + accelerate.hooks.remove_hook_from_submodules(model) + delattr(model, "hf_device_map") + res = _gen_layer_config( + auto_scheme, + model, + quant_layer_names, + fixed_layer_scheme, + dataset=dataset, + tokenizer=tokenizer, + model_name=model_name, + enable_torch_compile=enable_torch_compile, + disable_opt_rtn=disable_opt_rtn, + device_map=device_map, + major_device=major_device, + device_list=device_list, + min_avg_bit_scheme=min_avg_bit_scheme, + ) + finally: + # Restore gradient_checkpointing to whatever the caller set, so it + # does not leak into the main quantization loop. + if enabled_grad_ckpt_here and isinstance(model, torch.nn.Module): + try: + model.gradient_checkpointing_disable() + except Exception as e: # pragma: no cover - defensive + logger.warning(f"Failed to disable gradient checkpointing after AutoScheme: {e}") + # Restore the caller's original training mode (we may have flipped to + # train() inside _gen_layer_config under low_gpu_mem_usage=False). + if isinstance(model, torch.nn.Module): + model.train(prev_training) return res diff --git a/auto_round/auto_scheme/gen_auto_scheme.py b/auto_round/auto_scheme/gen_auto_scheme.py index 737d7d43e..c45051f85 100644 --- a/auto_round/auto_scheme/gen_auto_scheme.py +++ b/auto_round/auto_scheme/gen_auto_scheme.py @@ -40,7 +40,7 @@ class AutoScheme: enable_torch_compile: Optional[bool] = None disable_opt_rtn: bool = True low_gpu_mem_usage: bool = True - low_cpu_mem_usage: bool = True + low_cpu_mem_usage: bool = False # TODO bug for INT4 INT8 mixed bug def __post_init__(self): if isinstance(self.options, str): diff --git a/auto_round/envs.py b/auto_round/envs.py index e216a27e2..103d59dce 100644 --- a/auto_round/envs.py +++ b/auto_round/envs.py @@ -34,8 +34,10 @@ "AR_DISABLE_DATASET_SUBPROCESS": lambda: os.getenv("AR_DISABLE_DATASET_SUBPROCESS", "0").lower() in ("1", "true"), "AR_DISABLE_COPY_MTP_WEIGHTS": lambda: os.getenv("AR_DISABLE_COPY_MTP_WEIGHTS", "0").lower() in ("1", "true", "yes"), + # None means "not set" — fall back to the wrapper's own act_min/max_scale + # parameters. Only when the env var is explicitly provided do we override. + "AR_ACT_SCALE": lambda: float(os.environ["AR_ACT_SCALE"]) if "AR_ACT_SCALE" in os.environ else None, "AR_DISABLE_NEW_ARCH": lambda: os.getenv("AR_DISABLE_NEW_ARCH", "0").lower() in ("1", "true", "yes"), - "AR_ACT_SCALE": lambda: float(os.getenv("AR_ACT_SCALE", "1.0")), "AR_ENABLE_ACT_MINMAX_TUNING": lambda: os.getenv("AR_ENABLE_ACT_MINMAX_TUNING", "0").lower() in ("1", "true", "yes"), "AR_FUSE_ONLINE_ROTATION": lambda: os.getenv("AR_FUSE_ONLINE_ROTATION", "0").lower() in ("1", "true", "yes"), diff --git a/auto_round/experimental/rotation_inplace/apply_rotation_transform.py b/auto_round/experimental/rotation_inplace/apply_rotation_transform.py index 86e429c10..345d034bf 100644 --- a/auto_round/experimental/rotation_inplace/apply_rotation_transform.py +++ b/auto_round/experimental/rotation_inplace/apply_rotation_transform.py @@ -6,7 +6,951 @@ :mod:`auto_round.algorithms.transforms.rotation.inplace.apply`. """ -from auto_round.algorithms.transforms.rotation.inplace.apply import * # noqa: F401, F403 -from auto_round.algorithms.transforms.rotation.inplace.apply import ( # noqa: F401 - apply_rotation_transform, +import gc +import typing +from typing import Dict, Union + +import torch +import tqdm + +from auto_round.experimental.rotation_inplace.model_config import ( + MAPPING_REGISTRY, + RotationMapping, + _resolve, + infer_mapping_from_model, ) +from auto_round.experimental.rotation_inplace.special_model_handler import apply_special_overrides +from auto_round.experimental.rotation_inplace.utils import ( + CrossHeadOnlineHadamardHook, + FullOnlineHadamardHook, + GroupOnlineHadamardHook, + _get_custom_had, + _normalize_rotation_matrix, + _resolve_compute_device, + _rotate_embedding_grouped, + _rotate_linear_grouped, + apply_cross_head_had_to_linear, + apply_exact_had_to_linear, + deterministic_hadamard_matrix, + get_hadK, + get_or_create_random_hadamard, +) + +# --------------------------------------------------------------------------- +# Low-level primitives (model-agnostic via RotationMapping) +# --------------------------------------------------------------------------- + + +def _resolve_head_dim(mapping, config, hidden_size, num_heads): + """Resolve the per-head attention dimension. + + Resolution order: + 1. ``mapping.attn_head_dim`` (explicit override on the RotationMapping). + 2. ``config.head_dim`` if present (Qwen-3 and other models declare an + explicit ``head_dim`` that does not necessarily equal + ``hidden_size // num_heads``; e.g. Qwen3-32B has hidden=5120, + heads=64, head_dim=128 → o_proj.in_features = 8192, not 5120). + 3. ``hidden_size // num_heads`` as a last-resort default. + """ + if mapping.attn_head_dim: + return mapping.attn_head_dim + cfg_head_dim = getattr(config, "head_dim", None) + if isinstance(cfg_head_dim, int) and cfg_head_dim > 0: + return cfg_head_dim + return hidden_size // num_heads + + +def _fuse_ln_linear( + layernorm: torch.nn.Module, + linear_layers: typing.Iterable[torch.nn.Linear], +) -> None: + """Fuse the linear operations in LayerNorm into adjacent linear blocks.""" + for linear in linear_layers: + linear_dtype = linear.weight.dtype + dev = linear.weight.device + + W_ = linear.weight.data.double() + ln_weight = layernorm.weight.double().to(dev) + linear.weight.data = (W_ * ln_weight).to(linear_dtype) + + if hasattr(layernorm, "bias") and layernorm.bias is not None: + if linear.bias is None: + linear.bias = torch.nn.Parameter(torch.zeros(linear.out_features, dtype=torch.float64, device=dev)) + ln_bias = layernorm.bias.double().to(dev) + linear.bias.data = linear.bias.data.double() + torch.matmul(W_, ln_bias) + linear.bias.data = linear.bias.data.to(linear_dtype) + + +def _reset_ln_params(layernorm: torch.nn.Module) -> None: + """Reset LayerNorm to identity: weight=1, bias=0.""" + layernorm.weight.data.fill_(1.0) + if hasattr(layernorm, "bias") and layernorm.bias is not None: + layernorm.bias.data.fill_(0.0) + + +def _rotate_weight_chunked( + weight: torch.Tensor, + Q: torch.Tensor, + side: str, + compute_device, + chunk: int = 4096, +) -> torch.Tensor: + """Compute the rotated weight without ever materialising the full fp64 copy. + + * ``side == 'input'`` → returns ``W @ Q`` (chunked over rows of ``W``). + * ``side == 'output'`` → returns ``Q^T @ W`` (chunked over columns of ``W``). + + The output is pre-allocated in the **original** dtype on the **original** + device of ``weight``. At any moment only a single chunk lives in fp64 on + ``compute_device``, so peak transient memory is roughly + ``chunk * other_dim * 8`` bytes instead of ``W.numel() * 8``. + + Embedding/lm_head on Qwen3-14B (151936 × 5120) drops from ~12 GB to a few + hundred MB transient. + """ + dtype = weight.dtype + dev = weight.device + out = torch.empty_like(weight) + Q_ = Q.to(device=compute_device, dtype=torch.float64) + try: + if side == "input": + # (R, C) @ (C, C) → (R, C); chunk over R. + R = weight.shape[0] + for i in range(0, R, chunk): + j = min(i + chunk, R) + blk = weight.data[i:j].to(device=compute_device, dtype=torch.float64) + rotated = (blk @ Q_).to(device=dev, dtype=dtype) + out[i:j].copy_(rotated) + del blk, rotated + elif side == "output": + # Q^T @ (R, C) → (R, C); chunk over C so each block is (R, chunk). + C = weight.shape[1] + Q_T = Q_.T.contiguous() + for i in range(0, C, chunk): + j = min(i + chunk, C) + blk = weight.data[:, i:j].to(device=compute_device, dtype=torch.float64) + rotated = (Q_T @ blk).to(device=dev, dtype=dtype) + out[:, i:j].copy_(rotated) + del blk, rotated + del Q_T + else: + raise ValueError(f"side must be 'input' or 'output', got {side!r}") + finally: + del Q_ + return out + + +def _rotate_linear_by_Q(module: torch.nn.Linear, Q: torch.Tensor, side: str, compute_device=None) -> None: + """Apply rotation *Q* to a Linear layer's weight (and bias if present). + + Memory-efficient: never materialises the full fp64 weight at once. + + Args: + side: ``'input'`` → W = W @ Q (rotate input side) + ``'output'`` → W = Q^T @ W (rotate output side) + compute_device: Device to run computation on. If None, auto-detects GPU. + """ + cdev = _resolve_compute_device(compute_device) + module.weight.data = _rotate_weight_chunked(module.weight.data, Q, side, cdev) + if side == "output" and module.bias is not None: + dtype = module.bias.data.dtype + dev = module.bias.data.device + # Bias is a 1-D vector → small; safe to do in one shot. + b = module.bias.data.to(device=cdev, dtype=torch.float64) + Q_ = Q.to(device=cdev, dtype=torch.float64) + new_b = torch.matmul(Q_.T, b).to(device=dev, dtype=dtype) + del b, Q_ + module.bias.data = new_b + + +def _untie_word_embeddings(model, mapping: RotationMapping) -> None: + """Break tied weights between lm_head and embedding if they share the same tensor.""" + embedding = _resolve(model, mapping.embedding) + lm_head = _resolve(model, mapping.lm_head) + + if lm_head.weight.data_ptr() != embedding.weight.data_ptr(): + return + + lm_head.weight = torch.nn.Parameter(lm_head.weight.data.clone()) + if hasattr(model.config, "tie_word_embeddings"): + model.config.tie_word_embeddings = False + + +def _uses_layernorm_with_mean(model, mapping: RotationMapping) -> bool: + """Check whether the model uses standard LayerNorm (which subtracts mean).""" + layers = _resolve(model, mapping.layers_attr) + first_ln = _resolve(layers[0], mapping.attn_input_ln) + return isinstance(first_ln, torch.nn.LayerNorm) + + +def _bake_mean_into_linear(linear: torch.nn.Linear) -> None: + """Subtract column-wise mean from a Linear layer's weight (and mean from bias).""" + linear_dtype = linear.weight.dtype + W_ = linear.weight.data.double() + linear.weight.data = (W_ - W_.mean(dim=-2, keepdim=True)).to(linear_dtype) + if linear.bias is not None: + b_ = linear.bias.data.double() + linear.bias.data = (b_ - b_.mean()).to(linear_dtype) + + +def _subtract_embedding_mean(model, mapping: RotationMapping) -> None: + """Subtract per-row mean from the embedding weight matrix.""" + W = _resolve(model, mapping.embedding) + dtype = W.weight.data.dtype + W_ = W.weight.data.to(dtype=torch.float64) + W.weight.data = (W_ - W_.mean(dim=-1, keepdim=True)).to(dtype=dtype) + + if mapping.positional_embedding is not None: + P = _resolve(model, mapping.positional_embedding) + p_dtype = P.weight.data.dtype + P_ = P.weight.data.to(dtype=torch.float64) + P.weight.data = (P_ - P_.mean(dim=-1, keepdim=True)).to(dtype=p_dtype) + + +class _RMSNorm(torch.nn.Module): + """RMS Normalization (no mean subtraction).""" + + def __init__(self, dim: int, eps: float = 1e-5): + super().__init__() + self.eps = eps + self.register_buffer("weight", torch.ones(dim)) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + rms = torch.sqrt(x.pow(2).mean(dim=-1, keepdim=True) + self.eps) + return x / rms * self.weight + + +def _replace_layernorms_with_rmsnorm(model) -> None: + """Replace all ``nn.LayerNorm`` modules with ``_RMSNorm``.""" + replacements = [] + for name, module in model.named_modules(): + if isinstance(module, torch.nn.LayerNorm): + replacements.append((name, module)) + + for name, module in replacements: + parts = name.rsplit(".", 1) + if len(parts) == 2: + parent = _resolve(model, parts[0]) + attr = parts[1] + else: + parent = model + attr = parts[0] + rms = _RMSNorm(module.normalized_shape[0], eps=module.eps) + rms = rms.to(device=module.weight.device, dtype=module.weight.dtype) + setattr(parent, attr, rms) + + +# --------------------------------------------------------------------------- +# High-level steps driven by RotationMapping +# --------------------------------------------------------------------------- + + +def _fuse_layer_norms(model, mapping: RotationMapping) -> None: + """Fuse all LayerNorm parameters into adjacent Linear layers.""" + layers = _resolve(model, mapping.layers_attr) + + for layer in layers: + mlp_ln = _resolve(layer, mapping.mlp_input_ln) + mlp_linears = [_resolve(layer, p) for p in mapping.mlp_in] + _fuse_ln_linear(mlp_ln, mlp_linears) + _reset_ln_params(mlp_ln) + + attn_ln = _resolve(layer, mapping.attn_input_ln) + attn_linears = [ + _resolve(layer, mapping.attn_q), + _resolve(layer, mapping.attn_k), + _resolve(layer, mapping.attn_v), + ] + _fuse_ln_linear(attn_ln, attn_linears) + _reset_ln_params(attn_ln) + + pre_head_ln = _resolve(model, mapping.pre_head_ln) + lm_head = _resolve(model, mapping.lm_head) + _fuse_ln_linear(pre_head_ln, [lm_head]) + _reset_ln_params(pre_head_ln) + + +# --------------------------------------------------------------------------- +# Unified weight rotation (full or grouped) +# --------------------------------------------------------------------------- + + +@torch.inference_mode() +def _rotate_weights( + model, + mapping: RotationMapping, + use_fast_had: bool = True, + group_size: int = None, + compute_device: torch.device = None, + had_dict: dict = None, + preset: str = None, + fuse_online_to_weight: bool = True, +) -> None: + """Apply Hadamard rotation to all weights. + + Args: + group_size: ``None`` → full Hadamard rotation. + ``int`` → block-diagonal rotation with this block size. + compute_device: Device to run Hadamard computation on (e.g. ``"cuda:0"``). + Weights are moved there temporarily and moved back afterwards. + If ``None``, auto-detects GPU availability. + allow_online_rotation: If ``True`` (default), apply extra input-side + Hadamard rotations on ``down_proj`` and the OV pair (``v_proj`` + output + ``o_proj`` input) that require compensating online hooks + at inference time. If ``False``, skip those extra rotations so + that **no** online hooks are needed. + had_dict: Normalized ``dict[int, Tensor]`` of custom Hadamard matrices + (keyed by dimension). Only used in grouped mode. + preset: Rotation preset name (``"quarot_hadamard"``, ``"hadamard"``, + ``"random_hadamard"``, or ``None``). + + * ``"quarot_hadamard"``: fusable (residual-stream) rotations use + ``fast_hadamard_transform`` / random Hadamard; non-fusable + (online-paired) rotations and their weight-side counterparts use + deterministic ``get_hadK``/``matmul_hadU`` so that the online + hook at inference produces the exact same transform. + * ``"hadamard"``: all rotations use deterministic ``get_hadK`` / + ``matmul_hadU``. Full-mode Q is a deterministic Hadamard matrix. + * ``"random_hadamard"``: all rotations use random Hadamard matrices + from the global cache (``get_or_create_random_hadamard``). + Same dimension → same matrix everywhere. + * ``None``: same behaviour as ``"hadamard"`` (built-in butterfly). + """ + compute_device = _resolve_compute_device(compute_device) + config = model.config + hidden_size = getattr(config, mapping.hidden_size_attr) + intermediate_size = getattr(config, mapping.intermediate_size_attr) + num_heads = getattr(config, mapping.num_heads_attr) + head_dim = _resolve_head_dim(mapping, config, hidden_size, num_heads) + + is_grouped = group_size is not None and group_size > 0 + desc = f"Rotating (group_size={group_size})" if is_grouped else "Rotating" + + # ----- Resolve per-operation Hadamard sources ----- + fused_fast = use_fast_had + online_fast = False + if preset == "random_hadamard": + fused_fast = False + + # -- Matrix resolution -- + had_matrix, _found = _get_custom_had(had_dict, group_size) if is_grouped else (None, False) + + online_had_matrix = had_matrix + if preset == "random_hadamard" and had_matrix is None: + had_matrix = get_or_create_random_hadamard(group_size if is_grouped else hidden_size, compute_device) + online_had_matrix = had_matrix + if preset == "quarot_hadamard" and is_grouped: + online_had_matrix = None # force deterministic for online-paired + + # -- Helper: look up cached random matrix for online-paired ops -- + def _online_had(dim): + """Return cached random matrix for *dim* under random_hadamard, else None.""" + if preset == "random_hadamard": + return get_or_create_random_hadamard(dim, compute_device) + return None + + if is_grouped: + assert hidden_size % group_size == 0, f"group_size={group_size} must divide hidden_size={hidden_size}" + assert ( + intermediate_size % group_size == 0 + ), f"group_size={group_size} must divide intermediate_size={intermediate_size}" + + # --- Full mode: build Hadamard matrix Q --- + Q = None + if not is_grouped: + if preset == "hadamard": + Q = deterministic_hadamard_matrix(hidden_size, compute_device) + else: + # "random_hadamard", "quarot_hadamard", None — same shape → same matrix + Q = get_or_create_random_hadamard(hidden_size, compute_device) + + # ---- Top-level: embedding / lm_head ---- + # When fuse_online_to_weight=False, skip embedding and lm_head rotation: + # each layer is self-contained (weight rotation + online hook cancel out). + if fuse_online_to_weight: + embedding = _resolve(model, mapping.embedding) + if is_grouped: + _rotate_embedding_grouped( + embedding, group_size, use_fast_had=fused_fast, compute_device=compute_device, had_matrix=had_matrix + ) + else: + # Chunked: avoids a full fp64 copy of the (vocab, hidden) embedding, + # which on Qwen3-14B is ~6 GB on its own. + embedding.weight.data = _rotate_weight_chunked( + embedding.weight.data, Q, side="input", compute_device=compute_device + ) + + if mapping.positional_embedding is not None: + pos_emb = _resolve(model, mapping.positional_embedding) + if is_grouped: + _rotate_embedding_grouped( + pos_emb, group_size, use_fast_had=fused_fast, compute_device=compute_device, had_matrix=had_matrix + ) + else: + pos_emb.weight.data = _rotate_weight_chunked( + pos_emb.weight.data, Q, side="input", compute_device=compute_device + ) + + # ---- Top-level: lm_head ---- + lm_head = _resolve(model, mapping.lm_head) + if is_grouped: + _rotate_linear_grouped( + lm_head, + group_size, + side="input", + use_fast_had=fused_fast, + compute_device=compute_device, + had_matrix=had_matrix, + ) + else: + _rotate_linear_by_Q(lm_head, Q, side="input", compute_device=compute_device) + + gc.collect() + if torch.cuda.is_available(): + torch.cuda.empty_cache() + + # ---- Per-layer rotation ---- + layers = _resolve(model, mapping.layers_attr) + for layer in tqdm.tqdm(layers, unit="layer", desc=desc): + if fuse_online_to_weight: + # ---- fuse mode: QuaRot-style residual stream rotation ---- + # Q/K/V: only residual Q on input (no online Had stacking, no hook). + # When Q == online Had (e.g. preset="hadamard"), Q @ Q = I cancels + # the rotation entirely, destroying quantization benefit. + # gate/up: only residual Q on input (no online Had stacking, no hook). + # down_proj: residual Q^T on output + online Had on input (+ hook). + # v_proj/o_proj: per-head/cross-head Had below (+ hook on o_proj). + for attr in (mapping.attn_q, mapping.attn_k, mapping.attn_v): + mod = _resolve(layer, attr) + if is_grouped: + _rotate_linear_grouped( + mod, + group_size, + side="input", + use_fast_had=fused_fast, + compute_device=compute_device, + had_matrix=had_matrix, + ) + else: + _rotate_linear_by_Q(mod, Q, side="input", compute_device=compute_device) + + # o_proj: residual stream output rotation + if is_grouped: + _rotate_linear_grouped( + _resolve(layer, mapping.attn_o), + group_size, + side="output", + use_fast_had=fused_fast, + compute_device=compute_device, + had_matrix=had_matrix, + ) + else: + _rotate_linear_by_Q(_resolve(layer, mapping.attn_o), Q, side="output", compute_device=compute_device) + + # gate/up: only residual Q on input + for attr in mapping.mlp_in: + mod = _resolve(layer, attr) + if is_grouped: + _rotate_linear_grouped( + mod, + group_size, + side="input", + use_fast_had=fused_fast, + compute_device=compute_device, + had_matrix=had_matrix, + ) + else: + _rotate_linear_by_Q(mod, Q, side="input", compute_device=compute_device) + + # down_proj: residual output + online input Had + down_proj = _resolve(layer, mapping.mlp_out) + if is_grouped: + _rotate_linear_grouped( + down_proj, + group_size, + side="output", + use_fast_had=fused_fast, + compute_device=compute_device, + had_matrix=had_matrix, + ) + _rotate_linear_grouped( + down_proj, + group_size, + side="input", + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=online_had_matrix, + ) + else: + _rotate_linear_by_Q(down_proj, Q, side="output", compute_device=compute_device) + apply_exact_had_to_linear( + down_proj, + had_dim=-1, + output=False, + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=_online_had(intermediate_size), + ) + + # OV projection: v_proj per-head output + o_proj decomposed input + # + # The online hook on o_proj applies (H_cross ⊗ I_head)⁻¹ at + # runtime, so the weight-side rotation must equal exactly + # (H_cross ⊗ I_head)(I_heads ⊗ H_head) = H_cross ⊗ H_head. + # + # IMPORTANT: we must NOT use a single full-dimension Hadamard + # (``had_dim=-1``) on o_proj, because the butterfly construction + # ``matmul_hadU(hidden_size)`` does NOT satisfy the Kronecker + # decomposition ``H_hidden = H_num_heads ⊗ H_head_dim`` when + # ``num_heads`` is not a power of 2 (e.g. Qwen3-14B, num_heads=40). + # Instead we always apply per-head + cross-head separately. + v_proj = _resolve(layer, mapping.attn_v) + o_proj = _resolve(layer, mapping.attn_o) + if is_grouped: + pass + else: + online_head_had = _online_had(head_dim) + apply_exact_had_to_linear( + v_proj, + had_dim=head_dim, + output=True, + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=online_head_had, + ) + apply_exact_had_to_linear( + o_proj, + had_dim=head_dim, + output=False, + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=online_head_had, + ) + apply_cross_head_had_to_linear( + o_proj, + num_heads, + head_dim, + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=_online_had(num_heads), + ) + + else: + # ---- unfused mode: no residual rotation, only input-side Had ---- + # Each layer gets Had fused on input side + compensating hook → equivalent. + # No embedding/lm_head rotation. No self-cancelling pair. + # v_proj treated same as Q/K (input Had only, no per-head/cross-head). + + # Q/K/V: input-side Had on hidden_size + for attr in (mapping.attn_q, mapping.attn_k, mapping.attn_v): + mod = _resolve(layer, attr) + if is_grouped: + _rotate_linear_grouped( + mod, + group_size, + side="input", + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=online_had_matrix, + ) + else: + apply_exact_had_to_linear( + mod, + had_dim=-1, + output=False, + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=_online_had(hidden_size), + ) + + # o_proj: input-side Had on hidden_size (full Had, not cross-head) + o_proj = _resolve(layer, mapping.attn_o) + if is_grouped: + _rotate_linear_grouped( + o_proj, + group_size, + side="input", + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=online_had_matrix, + ) + else: + apply_exact_had_to_linear( + o_proj, + had_dim=-1, + output=False, + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=_online_had(hidden_size), + ) + + # gate/up: input-side Had on hidden_size + for attr in mapping.mlp_in: + mod = _resolve(layer, attr) + if is_grouped: + _rotate_linear_grouped( + mod, + group_size, + side="input", + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=online_had_matrix, + ) + else: + apply_exact_had_to_linear( + mod, + had_dim=-1, + output=False, + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=_online_had(hidden_size), + ) + + # down_proj: input-side Had on intermediate_size + down_proj = _resolve(layer, mapping.mlp_out) + if is_grouped: + _rotate_linear_grouped( + down_proj, + group_size, + side="input", + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=online_had_matrix, + ) + else: + apply_exact_had_to_linear( + down_proj, + had_dim=-1, + output=False, + use_fast_had=online_fast, + compute_device=compute_device, + had_matrix=_online_had(intermediate_size), + ) + + # Per-layer cleanup: drop fp64 temporaries and CUDA caching allocator + # blocks so peak memory stays at ~1 layer's worth instead of accumulating + # across all 32+ decoder layers (was the main cause of 33 GB RAM on 8B). + gc.collect() + if torch.cuda.is_available(): + torch.cuda.empty_cache() + + +# --------------------------------------------------------------------------- +# Unified online hook registration +# --------------------------------------------------------------------------- + + +def _register_online_hooks( + model, + mapping: RotationMapping, + fp32_had: bool = False, + use_fast_had: bool = True, + group_size: int = None, + had_dict: dict = None, + preset: str = None, + fuse_online_to_weight: bool = True, +): + """Register online Hadamard pre-forward hooks on ``down_proj`` and ``o_proj``. + + Online hooks must use the **same** Hadamard matrix that was applied to the + weight-side counterpart during ``_rotate_weights``. For ``quarot_hadamard`` + this is always the deterministic ``get_hadK``/``matmul_hadU`` path + (``use_fast_had=False``). For ``"random_hadamard"`` it is the random matrix that + was generated once and stored in ``had_dict``. + + Args: + group_size: ``None`` → full Hadamard hooks (original QuaRot). + ``int`` → per-group Hadamard hooks. + had_dict: Normalized ``dict[int, Tensor]`` of custom Hadamard matrices. + preset: Rotation preset name. + Returns: + list of hook handles. + """ + config = model.config + num_heads = getattr(config, mapping.num_heads_attr) + hidden_size = getattr(config, mapping.hidden_size_attr) + intermediate_size = getattr(config, mapping.intermediate_size_attr) + head_dim = _resolve_head_dim(mapping, config, hidden_size, num_heads) + + is_grouped = group_size is not None and group_size > 0 + + # Online hooks always use deterministic (fixed) Hadamard — never fast_had + # for quarot_hadamard; for "random_hadamard" they use the same random matrix + # that was cached in had_dict by _rotate_weights. + online_fast = False + + # -- Matrix resolution (must match the *online-paired* matrix used by + # _rotate_weights for down_proj input / OV pair). Variable name kept in + # sync with _rotate_weights to make any future drift obvious. + online_had_matrix, _ = _get_custom_had(had_dict, group_size) if is_grouped else (None, False) + if preset == "random_hadamard" and online_had_matrix is None: + online_had_matrix = get_or_create_random_hadamard(group_size if is_grouped else hidden_size) + if preset == "quarot_hadamard" and is_grouped: + online_had_matrix = None + + # -- Helper: look up cached random matrix for online-paired hooks -- + def _online_had(dim): + if preset == "random_hadamard": + return get_or_create_random_hadamard(dim) + return None + + mlp_out_suffix = mapping.mlp_out.split(".")[-1] + attn_o_suffix = mapping.attn_o.split(".")[-1] + + # Suffixes for Q/K/V and gate/up (for online input Had hooks) + attn_qkv_suffixes = set(attr.split(".")[-1] for attr in (mapping.attn_q, mapping.attn_k, mapping.attn_v)) + mlp_in_suffixes = set(attr.split(".")[-1] for attr in mapping.mlp_in) + + # --- Build hook factories --- + def _make_down_proj_hook(): + if is_grouped: + return GroupOnlineHadamardHook( + group_size=group_size, fp32_had=fp32_had, use_fast_had=online_fast, had_matrix=online_had_matrix + ) + online_mat = _online_had(intermediate_size) + if online_mat is not None: + return FullOnlineHadamardHook( + had_K=None, K=None, fp32_had=fp32_had, use_fast_had=online_fast, had_matrix=online_mat + ) + had_K, K = get_hadK(intermediate_size) + return FullOnlineHadamardHook(had_K=had_K, K=K, fp32_had=fp32_had, use_fast_had=online_fast) + + def _make_hidden_had_hook(): + """Full Had hook on hidden_size (for Q/K/V and gate/up input).""" + if is_grouped: + return GroupOnlineHadamardHook( + group_size=group_size, fp32_had=fp32_had, use_fast_had=online_fast, had_matrix=online_had_matrix + ) + online_mat = _online_had(hidden_size) + if online_mat is not None: + return FullOnlineHadamardHook( + had_K=None, K=None, fp32_had=fp32_had, use_fast_had=online_fast, had_matrix=online_mat + ) + had_K, K = get_hadK(hidden_size) + return FullOnlineHadamardHook(had_K=had_K, K=K, fp32_had=fp32_had, use_fast_had=online_fast) + + def _make_o_proj_hook(): + online_mat = _online_had(num_heads) + if online_mat is not None: + return CrossHeadOnlineHadamardHook( + had_K=None, + K=None, + head_dim=head_dim, + fp32_had=fp32_had, + use_fast_had=online_fast, + had_matrix=online_mat, + ) + had_K, K = get_hadK(num_heads) + return CrossHeadOnlineHadamardHook( + had_K=had_K, + K=K, + head_dim=head_dim, + fp32_had=fp32_had, + use_fast_had=online_fast, + ) + + # --- Register --- + handles = [] + + for name, module in model.named_modules(): + if not isinstance(module, torch.nn.Linear): + continue + suffix = name.split(".")[-1] + + if name.endswith(mlp_out_suffix): + # down_proj: full Had on intermediate_size input + h = module.register_forward_pre_hook(_make_down_proj_hook()) + handles.append(h) + elif name.endswith(attn_o_suffix): + if fuse_online_to_weight and not is_grouped: + # o_proj: cross-head Had on input (fused mode, full only) + h = module.register_forward_pre_hook(_make_o_proj_hook()) + handles.append(h) + elif not fuse_online_to_weight: + # o_proj: full Had on hidden_size input (unfused mode, matches weight rotation) + h = module.register_forward_pre_hook(_make_hidden_had_hook()) + handles.append(h) + elif suffix in attn_qkv_suffixes: + if not fuse_online_to_weight: + # Q/K/V: full Had on hidden_size input (unfused mode only). + # In fused mode Q/K/V only have residual Q on weight (no online Had), + # and activations come pre-rotated from residual stream → no hook needed. + h = module.register_forward_pre_hook(_make_hidden_had_hook()) + handles.append(h) + elif suffix in mlp_in_suffixes: + if not fuse_online_to_weight: + # gate/up: full Had on hidden_size input (unfused mode only). + # Same reasoning as Q/K/V above. + h = module.register_forward_pre_hook(_make_hidden_had_hook()) + handles.append(h) + + return handles + + +# --------------------------------------------------------------------------- +# Public API +# --------------------------------------------------------------------------- + + +def apply_rotation_transform( + model, + group_size: int = None, + allow_online_rotation: bool = True, + rotation_matrix: Union[str, torch.Tensor, Dict[int, torch.Tensor], None] = None, + compute_device: torch.device | str = None, + fp32_had: bool = False, + fuse_online_to_weight: bool = None, +): + """Fuse layer norms, rotate weights, and register online Hadamard hooks. + + This is the single entry point for applying Hadamard inplace rotation. + The model architecture is auto-detected via ``model.config.model_type``. + + Args: + model: A HuggingFace CausalLM model (LLaMA-2/3, Qwen-3, etc.). + fp32_had: Whether to compute the online Hadamard transform in fp32. + group_size: If ``None`` (default), use full-dimension Hadamard rotation. + compute_device: Device to run Hadamard computation on. + allow_online_rotation: If ``True`` (default), apply online Hadamard + rotations on ``down_proj`` input and the OV pair. + rotation_matrix: Rotation matrix selection (``"hadamard"``, + ``"random_hadamard"``, ``"quarot_hadamard"``, Tensor, dict, or None). + fuse_online_to_weight: If ``True`` (default), fuse online Hadamard + rotation into weights (down_proj input, v_proj output, o_proj input) + and register compensating online hooks. If ``False``, skip + embedding/lm_head rotation; each linear layer is self-contained + with input-side Had on weight + compensating online hook on + activation. No v_proj cross-head or inner-head rotation. + + Returns: + list of hook handles.""" + if fuse_online_to_weight is None: + if model.config.model_type in MAPPING_REGISTRY or model.__class__.__name__ in MAPPING_REGISTRY: + fuse_online_to_weight = True + else: + fuse_online_to_weight = False + + # ---- Model-specific overrides ---- + # Some models require a specific rotation configuration to preserve + # accuracy or to run correctly. The mapping lives in + # ``special_model_handler.SPECIAL_MODEL_REGISTRY`` so that adding a new + # special-cased model is a one-liner there instead of a code change here. + _override_kwargs = { + "rotation_matrix": rotation_matrix, + "fuse_online_to_weight": fuse_online_to_weight, + "group_size": group_size, + "allow_online_rotation": allow_online_rotation, + } + apply_special_overrides(model, _override_kwargs) + rotation_matrix = _override_kwargs["rotation_matrix"] + fuse_online_to_weight = _override_kwargs["fuse_online_to_weight"] + group_size = _override_kwargs["group_size"] + allow_online_rotation = _override_kwargs["allow_online_rotation"] + + had_dict, use_fast_had, preset = _normalize_rotation_matrix(rotation_matrix, group_size) + compute_device = _resolve_compute_device(compute_device) + + if use_fast_had: + from auto_round.utils import logger + + try: + import fast_hadamard_transform # noqa: F401 + + if group_size is None: + logger.warning( + "fast_hadamard_transform uses a different Hadamard matrix than the " + "default implementation. Please ensure consistency between training " + "and inference. This will be refined later." + ) + except ImportError: + logger.warning("Importing fast_hadamard_transform failed, falling back to default implementation.") + use_fast_had = False + + mapping = infer_mapping_from_model(model) + + _untie_word_embeddings(model, mapping) + + if _uses_layernorm_with_mean(model, mapping): + _subtract_embedding_mean(model, mapping) + + _fuse_layer_norms(model, mapping) + + if _uses_layernorm_with_mean(model, mapping): + layers = _resolve(model, mapping.layers_attr) + for layer in layers: + _bake_mean_into_linear(_resolve(layer, mapping.attn_o)) + _bake_mean_into_linear(_resolve(layer, mapping.mlp_out)) + _replace_layernorms_with_rmsnorm(model) + + _rotate_weights( + model, + mapping, + use_fast_had=use_fast_had, + group_size=group_size, + compute_device=compute_device, + had_dict=had_dict, + preset=preset, + fuse_online_to_weight=fuse_online_to_weight, + ) + + handles = [] + if fuse_online_to_weight or allow_online_rotation: + handles = _register_online_hooks( + model, + mapping, + fp32_had=fp32_had, + use_fast_had=use_fast_had, + group_size=group_size, + had_dict=had_dict, + preset=preset, + fuse_online_to_weight=fuse_online_to_weight, + ) + + return model, handles + + +# --------------------------------------------------------------------------- +# Quick smoke test +# --------------------------------------------------------------------------- + +if __name__ == "__main__": + from transformers import AutoModelForCausalLM, AutoTokenizer + + model_name = "/models/Qwen3-14B" + tokenizer = AutoTokenizer.from_pretrained(model_name) + model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto") + apply_rotation_transform( + model, group_size=128, allow_online_rotation=True, rotation_matrix="hadamard", fuse_online_to_weight=True + ) + text = "There is a girl who likes adventure," + inputs = tokenizer(text, return_tensors="pt").to(model.device) + print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50)[0])) + # + # model_name = "/models/Qwen3-8B" + # tokenizer = AutoTokenizer.from_pretrained(model_name) + # model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto") + # apply_rotation_transform(model, group_size=-1, allow_online_rotation=True, fuse_online_to_weight=True) + # model.to("cuda") + # text = "There is a girl who likes adventure," + # inputs = tokenizer(text, return_tensors="pt").to(model.device) + # print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50)[0])) + # + # from transformers import AutoModelForCausalLM, AutoTokenizer + # + # model_name = "/models/Meta-Llama-3.1-8B-Instruct" + # tokenizer = AutoTokenizer.from_pretrained(model_name) + # model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto") + # apply_rotation_transform(model, fuse_online_to_weight=True, group_size=32) + # model.to("cuda") + # text = "There is a girl who likes adventure," + # inputs = tokenizer(text, return_tensors="pt").to(model.device) + # print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50)[0])) + # + # model_name = "/models/Llama-2-7b-chat-hf" + # tokenizer = AutoTokenizer.from_pretrained(model_name) + # model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto") + # apply_hadamard_rotation(model) + # model.to("cuda") + # text = "There is a girl who likes adventure," + # inputs = tokenizer(text, return_tensors="pt").to(model.device) + # print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50)[0])) diff --git a/auto_round/experimental/rotation_inplace/hadamard_matrix.py b/auto_round/experimental/rotation_inplace/hadamard_matrix.py new file mode 100644 index 000000000..8b84751e2 --- /dev/null +++ b/auto_round/experimental/rotation_inplace/hadamard_matrix.py @@ -0,0 +1,96868 @@ +# # Copyright (C) 2026 Intel Corporation +# # SPDX-License-Identifier: Apache-2.0 + +import torch + + +# hadamard matrices for had12, had36.pal2, had52,will, +# # had60.pal, had108.pal, had140.pal, had156.will, had172.will: +# http://www.neilsloane.com/hadamard/index.html +def get_had12(): + return torch.FloatTensor( + [ + [+1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], + [+1, +1, -1, +1, -1, -1, -1, +1, +1, +1, -1, +1], + [+1, +1, +1, -1, +1, -1, -1, -1, +1, +1, +1, -1], + [+1, -1, +1, +1, -1, +1, -1, -1, -1, +1, +1, +1], + [+1, +1, -1, +1, +1, -1, +1, -1, -1, -1, +1, +1], + [+1, +1, +1, -1, +1, +1, -1, +1, -1, -1, -1, +1], + [+1, +1, +1, +1, -1, +1, +1, -1, +1, -1, -1, -1], + [+1, -1, +1, +1, +1, -1, +1, +1, -1, +1, -1, -1], + [+1, -1, -1, +1, +1, +1, -1, +1, +1, -1, +1, -1], + [+1, -1, -1, -1, +1, +1, +1, -1, +1, +1, -1, +1], + [+1, +1, -1, -1, -1, +1, +1, +1, -1, +1, +1, -1], + [+1, -1, +1, -1, -1, -1, +1, +1, +1, -1, +1, +1], + ] + ) + + +def get_had40(): + return torch.FloatTensor( + [ + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + ] + ) + + +def get_had20(): + return torch.FloatTensor( + [ + [+1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], + [+1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1], + [+1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1], + [+1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1], + [+1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1], + [+1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1], + [+1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1], + [+1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1], + [+1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1], + [+1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1], + [+1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1], + [+1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1, +1], + [+1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, -1], + [+1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1], + [+1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1], + [+1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1, -1], + [+1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, +1], + [+1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1], + [+1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, -1], + [+1, -1, +1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1], + ] + ) + + +def get_had28(): + return torch.FloatTensor( + [ + [ + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + ] + ) + + +def get_had36(): + return torch.FloatTensor( + [ + [ + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + ] + ) + + +def get_had60(): + return torch.FloatTensor( + [ + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + ] + ) + + +def get_had52(): + return torch.FloatTensor( + [ + [ + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + ], + [ + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + ] + ) + + +def get_had108(): + return torch.FloatTensor( + [ + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + ] + ) + + +def get_had140(): + return torch.FloatTensor( + [ + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + ] + ) + + +def get_had156(): + return torch.FloatTensor( + [ + [ + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + ], + [ + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + ], + [ + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + ], + [ + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + ] + ) + + +def get_had172(): + return torch.FloatTensor( + [ + [ + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + ], + [ + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + ], + [ + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + ], + [ + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + ], + [ + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + ], + [ + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + ], + [ + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + ], + [ + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + ], + [ + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + ], + [ + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + ], + [ + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + ], + [ + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + ], + [ + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + ], + [ + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + ], + [ + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + ], + [ + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + ], + [ + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + ], + [ + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + ], + [ + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + ], + [ + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + ], + [ + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + ], + [ + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + ], + [ + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + ], + [ + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + ], + [ + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + ], + [ + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + ], + [ + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + ], + [ + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + ], + [ + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + ], + [ + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + ], + [ + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + ], + [ + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + +1, + ], + [ + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + +1, + ], + [ + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + -1, + ], + [ + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + -1, + ], + [ + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + -1, + ], + [ + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + -1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + -1, + +1, + -1, + -1, + -1, + -1, + +1, + +1, + +1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + +1, + +1, + +1, + -1, + +1, + -1, + +1, + +1, + +1, + +1, + -1, + -1, + +1, + +1, + -1, + -1, + -1, + +1, + ], + ] + ) diff --git a/auto_round/experimental/rotation_inplace/special_model_handler.py b/auto_round/experimental/rotation_inplace/special_model_handler.py new file mode 100644 index 000000000..99a457bbf --- /dev/null +++ b/auto_round/experimental/rotation_inplace/special_model_handler.py @@ -0,0 +1,189 @@ +# # Copyright (C) 2026 Intel Corporation +# # SPDX-License-Identifier: Apache-2.0 + +"""Registry of per-model overrides for Hadamard inplace rotation. + +Some models are known to require a specific rotation configuration +(e.g. a particular ``rotation_matrix`` preset) to preserve accuracy or +even to run correctly. Hard-coding these decisions in +``apply_rotation_transform`` quickly becomes messy, so we centralize them +here as a small declarative registry. + +Public API +---------- + +* :func:`register_special_model` – register a new override entry. +* :func:`get_special_overrides` – look up overrides for a given model. +* :func:`apply_special_overrides` – apply all matching overrides on top of + a kwargs dict, with logging when something actually changes. + +Each entry is a :class:`SpecialModelEntry` with: + * ``name`` – short, human-readable label used in log messages. + * ``matches`` – callable ``(model) -> bool`` that decides whether the + entry applies to a given model. + * ``overrides`` – dict of keyword arguments that must be forced (e.g. + ``{"rotation_matrix": "random_hadamard"}``). + * ``reason`` – short justification, surfaced in log messages. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Any, Callable, Dict, List + +from auto_round.utils import logger + +__all__ = [ + "SpecialModelEntry", + "SPECIAL_MODEL_REGISTRY", + "register_special_model", + "get_special_overrides", + "apply_special_overrides", +] + + +# --------------------------------------------------------------------------- +# Registry datatype +# --------------------------------------------------------------------------- + + +@dataclass +class SpecialModelEntry: + name: str + matches: Callable[[Any], bool] + overrides: Dict[str, Any] = field(default_factory=dict) + reason: str = "" + + +SPECIAL_MODEL_REGISTRY: List[SpecialModelEntry] = [] + + +def register_special_model(entry: SpecialModelEntry) -> SpecialModelEntry: + """Append *entry* to the registry. Later-registered entries win on conflict.""" + SPECIAL_MODEL_REGISTRY.append(entry) + return entry + + +# --------------------------------------------------------------------------- +# Match helpers +# --------------------------------------------------------------------------- + + +def _name_contains(model, needle: str) -> bool: + """Return True iff a (case-insensitive) substring is found in any of the + common model identifier attributes.""" + cfg = getattr(model, "config", None) + if cfg is None: + return False + needle = needle.lower() + for attr in ("_name_or_path", "name_or_path"): + val = getattr(cfg, attr, None) + if isinstance(val, str) and needle in val.lower(): + return True + return False + + +def _config_matches(model, model_type: str = None, **expected) -> bool: + """Return True iff ``model.config. == v`` for every ``k=v`` in *expected* + (and optionally a matching ``model_type``).""" + cfg = getattr(model, "config", None) + if cfg is None: + return False + if model_type is not None and getattr(cfg, "model_type", "") != model_type: + return False + for k, v in expected.items(): + if getattr(cfg, k, None) != v: + return False + return True + + +# --------------------------------------------------------------------------- +# Built-in entries +# --------------------------------------------------------------------------- + +# ---- Example: Qwen3-14B (no longer needed, kept as reference) ---- +# Qwen3-14B previously required a forced ``random_hadamard`` override because +# the o_proj weight rotation used a single full-dimension Hadamard whose +# butterfly construction violated the Kronecker decomposition assumed by the +# cross-head online hook when ``num_heads`` is not a power of 2. This has +# been fixed in ``_rotate_weights`` — all presets now use the decomposed +# per-head + cross-head form — so the override is no longer needed. +# +# def _is_qwen3_14b(model) -> bool: +# if _name_contains(model, "qwen3-14b"): +# return True +# return _config_matches( +# model, +# model_type="qwen3", +# hidden_size=5120, +# num_hidden_layers=40, +# num_attention_heads=40, +# ) +# +# register_special_model( +# SpecialModelEntry( +# name="Qwen3-14B", +# matches=_is_qwen3_14b, +# overrides={"rotation_matrix": "random_hadamard"}, +# reason="deterministic Hadamard is known to hurt accuracy on this model", +# ) +# ) + + +# --------------------------------------------------------------------------- +# Public lookup / application helpers +# --------------------------------------------------------------------------- + + +def get_special_overrides(model) -> Dict[str, Any]: + """Return the merged override dict for *model* (empty if none match). + + Multiple matching entries are merged in registration order; later entries + overwrite earlier ones for the same key. + """ + merged: Dict[str, Any] = {} + for entry in SPECIAL_MODEL_REGISTRY: + try: + if entry.matches(model): + merged.update(entry.overrides) + except Exception as e: # never let a buggy matcher break rotation + logger.warning("Special-model matcher %r raised %r; skipping.", entry.name, e) + return merged + + +def apply_special_overrides(model, kwargs: Dict[str, Any]) -> Dict[str, Any]: + """Force *kwargs* values for *model* according to the registry. + + Returns the (possibly modified) ``kwargs`` dict. Emits a warning whenever + a user-supplied value is overwritten and an info message when an unset + value is filled in. + """ + for entry in SPECIAL_MODEL_REGISTRY: + try: + if not entry.matches(model): + continue + except Exception as e: + logger.warning("Special-model matcher %r raised %r; skipping.", entry.name, e) + continue + + for key, forced_value in entry.overrides.items(): + current = kwargs.get(key) + if current == forced_value or current is None: + logger.info( + "Detected %s: forcing %s=%r (%s).", + entry.name, + key, + forced_value, + entry.reason or "model-specific override", + ) + else: + logger.warning( + "Detected %s: overriding %s=%r with %r (%s).", + entry.name, + key, + current, + forced_value, + entry.reason or "model-specific override", + ) + kwargs[key] = forced_value + return kwargs diff --git a/auto_round/experimental/rotation_inplace/utils.py b/auto_round/experimental/rotation_inplace/utils.py index 4ddd80d48..d80e0db07 100644 --- a/auto_round/experimental/rotation_inplace/utils.py +++ b/auto_round/experimental/rotation_inplace/utils.py @@ -6,4 +6,897 @@ :mod:`auto_round.algorithms.transforms.rotation.inplace.hooks`. """ -from auto_round.algorithms.transforms.rotation.inplace.hooks import * # noqa: F401, F403 +import math + +import torch +import torch.nn as nn + +try: + import fast_hadamard_transform +except ImportError: + fast_hadamard_transform = None + + +def _resolve_compute_device(compute_device) -> torch.device: + """Return *compute_device* if explicitly given, otherwise auto-detect GPU. + + When ``compute_device`` is ``None`` the function checks for CUDA / XPU + availability and returns the first accelerator it finds so that heavy + matrix operations are offloaded to GPU even when the model weights live + on CPU. Falls back to ``torch.device("cpu")`` when no accelerator is + present. + """ + if compute_device is not None: + return torch.device(compute_device) if not isinstance(compute_device, torch.device) else compute_device + if torch.cuda.is_available(): + return torch.device("cuda:0") + if hasattr(torch, "xpu") and torch.xpu.is_available(): + return torch.device("xpu:0") + return torch.device("cpu") + + +BUILTIN_ROTATION_PRESETS = {"quarot_hadamard", "hadamard", "random_hadamard"} + +# Global cache for random Hadamard matrices keyed by dimension. +# Ensures the same shape always returns the exact same random matrix within +# a process, across all calls to ``_rotate_weights`` / ``_register_online_hooks``. +_RANDOM_HADAMARD_CACHE: dict = {} + + +def get_or_create_random_hadamard(dim: int, device=None) -> torch.Tensor: + """Return a random Hadamard matrix for *dim*, creating and caching it if needed. + + The matrix is cached globally in ``_RANDOM_HADAMARD_CACHE`` so that every + caller that requests the same *dim* receives the identical matrix. + """ + if dim in _RANDOM_HADAMARD_CACHE: + mat = _RANDOM_HADAMARD_CACHE[dim] + if device is not None: + mat = mat.to(device) + return mat + mat = random_hadamard_matrix(dim, device or torch.device("cpu")) + _RANDOM_HADAMARD_CACHE[dim] = mat + return mat + + +def clear_random_hadamard_cache(): + """Clear the global random Hadamard matrix cache. + + Call this when you want subsequent ``random_hadamard`` preset runs to + generate fresh random matrices (e.g. between independent experiments). + """ + _RANDOM_HADAMARD_CACHE.clear() + + +def _normalize_rotation_matrix(rotation_matrix, group_size): + """Normalize ``rotation_matrix`` into a ``(had_dict, use_fast_had, preset)`` tuple. + + Accepted inputs: + * ``None`` → ``(None, False, None)`` — use built-in butterfly ``matmul_hadU``. + * ``"quarot_hadamard"`` → ``(None, True, "quarot_hadamard")`` — fusable + rotations use ``fast_hadamard_transform`` (random); non-fusable + (online-paired) rotations use deterministic ``get_hadK``/``matmul_hadU``. + * ``"hadamard"`` → ``(None, False, "hadamard")`` — all rotations use + deterministic ``get_hadK``/``matmul_hadU``. + * ``"random_hadamard"`` → ``(None, False, "random_hadamard")`` — all rotations use + ``random_hadamard_matrix``. + * A ``torch.Tensor`` of shape ``(n, n)`` → ``({n: tensor}, False, None)``. + * A ``dict[int, Tensor]`` → ``(dict, False, None)`` — returned as-is. + + Returns: + ``(had_dict, use_fast_had, preset)`` + + Raises: + ValueError: if a non-``str`` *rotation_matrix* is given but + *group_size* is not a positive integer, or an unknown preset. + """ + if rotation_matrix is None: + return None, False, None + + if isinstance(rotation_matrix, str): + if rotation_matrix not in BUILTIN_ROTATION_PRESETS: + raise ValueError( + f"Unknown rotation_matrix preset '{rotation_matrix}'. " + f"Supported presets: {BUILTIN_ROTATION_PRESETS}." + ) + if rotation_matrix == "quarot_hadamard": + return None, True, "quarot_hadamard" + elif rotation_matrix == "hadamard": + return None, False, "hadamard" + else: # "random_hadamard" + return None, False, "random_hadamard" + + is_grouped = group_size is not None and group_size > 0 + if not is_grouped and not isinstance(rotation_matrix, dict): + raise ValueError( + "rotation_matrix (Tensor/dict) can only be used with a positive group_size. " + f"Got group_size={group_size}." + ) + + if isinstance(rotation_matrix, torch.Tensor): + assert ( + rotation_matrix.ndim == 2 and rotation_matrix.shape[0] == rotation_matrix.shape[1] + ), f"rotation_matrix must be square, got shape {rotation_matrix.shape}" + return {rotation_matrix.shape[0]: rotation_matrix}, False, None + + if isinstance(rotation_matrix, dict): + for k, t in rotation_matrix.items(): + assert ( + isinstance(t, torch.Tensor) and t.ndim == 2 and t.shape[0] == t.shape[1] + ), f"rotation_matrix[{k}] must be a square tensor, got shape {t.shape}" + return rotation_matrix, False, None + + raise TypeError( + f"rotation_matrix must be a Tensor, dict[int, Tensor], str, or None. " f"Got {type(rotation_matrix)}." + ) + + +def _get_custom_had(had_dict, size): + """Look up a custom Hadamard matrix for *size* from the normalized dict. + + Returns ``(had_tensor, True)`` if found, ``(None, False)`` otherwise. + """ + if had_dict is None: + return None, False + if size in had_dict: + return had_dict[size], True + return None, False + + +# --------------------------------------------------------------------------- +# Hook implementations +# --------------------------------------------------------------------------- + + +class FullOnlineHadamardHook(nn.Module): + """Pre-forward hook: full Hadamard on the entire last dimension (for ``down_proj``).""" + + def __init__(self, had_K, K, fp32_had=False, use_fast_had=True, had_matrix=None): + super().__init__() + self.custom_had = had_matrix is not None + if had_matrix is not None: + self.register_buffer("had_matrix", had_matrix) + self.had_K = None + self.K = None + else: + if had_K is not None: + self.register_buffer("had_K", had_K) + else: + self.had_K = None + self.K = K + self.fp32_had = fp32_had + self.use_fast_had = use_fast_had + + def __call__(self, module: nn.Module, args): + x = args[0] if isinstance(args, tuple) else args + x_dtype = x.dtype + + if self.custom_had: + H = self.had_matrix.to(device=x.device, dtype=x.dtype) + if self.fp32_had: + H = self.had_matrix.to(device=x.device).float() + x = (x.float() @ H.T).to(x_dtype) + else: + x = x @ H.T + elif self.fp32_had: + x = matmul_hadU_cuda(x.float(), self.had_K, self.K, use_fast_had=self.use_fast_had).to(x_dtype) + else: + x = matmul_hadU_cuda(x, self.had_K, self.K, use_fast_had=self.use_fast_had) + + if isinstance(args, tuple): + return (x,) + args[1:] + return x + + +class CrossHeadOnlineHadamardHook(nn.Module): + """Pre-forward hook: **cross-head** Hadamard on the ``num_heads`` dimension + (for ``o_proj``). + + After offline rotation: + - ``v_proj`` absorbed a per-head (within-head) Hadamard on ``head_dim``. + - ``o_proj`` absorbed a full Hadamard on ``hidden_size``. + + Since ``H_full = H_cross ⊗ H_within`` (Kronecker decomposition) and the + within-head part is already cancelled by ``v_proj`` through the attention + path (``H_within² = I``), the online hook only needs to apply the residual + **cross-head** Hadamard (``H_cross ⊗ I``): + + * reshape ``(*, hidden_size)`` → ``(*, num_heads, head_dim)`` + * transpose → ``(*, head_dim, num_heads)`` + * Hadamard on the **num_heads** axis (last dim) + * transpose back and reshape + """ + + def __init__(self, had_K, K, head_dim, fp32_had=False, use_fast_had=True, had_matrix=None): + """ + Args: + had_K: Hadamard sub-matrix from ``get_hadK(num_heads)``. + K: Block size from ``get_hadK(num_heads)``. + head_dim: ``hidden_size // num_attention_heads``. + fp32_had: Compute in fp32. + use_fast_had: If True use fast_hadamard_transform; if False use matmul_hadU. + had_matrix: Optional custom rotation matrix of shape ``(num_heads, num_heads)``. + num_heads: Optional, accepted for backward compatibility. The runtime + ``num_heads`` is always derived from the input shape and + ``head_dim``, so this argument is ignored. + """ + super().__init__() + + self.custom_had = had_matrix is not None + if had_matrix is not None: + self.register_buffer("had_matrix", had_matrix) + self.had_K = None + self.K = None + else: + if had_K is not None: + self.register_buffer("had_K", had_K) + else: + self.had_K = None + self.K = K + self.had_dim = head_dim + self.fp32_had = fp32_had + self.use_fast_had = use_fast_had + + def __call__(self, module: nn.Module, args): + x = args[0] if isinstance(args, tuple) else args + x_dtype = x.dtype + + if self.fp32_had: + x = x.float() + + init_shape = x.shape + num_heads = init_shape[-1] // self.had_dim + + if self.custom_had: + H = self.had_matrix.to(device=x.device, dtype=x.dtype) + # reshape (*, hidden) → (*, num_heads, head_dim), transpose → (*, head_dim, num_heads) + x = x.reshape(-1, num_heads, self.had_dim).transpose(1, 2) + # apply H on last dim (num_heads): x @ H.T + x = (x @ H.T).transpose(1, 2) + elif self.use_fast_had and fast_hadamard_transform is not None and self.K == 1: + x = fast_hadamard_transform.hadamard_transform( + x.reshape(-1, num_heads, self.had_dim).transpose(1, 2), + scale=1 / math.sqrt(num_heads), + ).transpose(1, 2) + else: + # Fallback: use matmul_hadU (pure butterfly + had_K, no fast_hadamard_transform) + x = x.reshape(-1, num_heads, self.had_dim).transpose(1, 2) + x = matmul_hadU(x.contiguous()) + x = x.transpose(1, 2) + + if self.fp32_had: + x = x.to(x_dtype) + x = x.reshape(init_shape) + + if isinstance(args, tuple): + return (x,) + args[1:] + return x + + +# --------------------------------------------------------------------------- +# Registration helper +# --------------------------------------------------------------------------- + + +def register_online_had_hooks(model, mapping=None, fp32_had=False, use_fast_had=True): + """Register online Hadamard pre-forward hooks on ``down_proj`` and ``o_proj``. + + * **down_proj** (``online_full_had``): full Hadamard on ``intermediate_size``. + Compensates ``apply_exact_had_to_linear(down_proj, had_dim=-1, output=False)``. + + * **o_proj** (``online cross-head had``): cross-head Hadamard on ``num_heads``. + Compensates the residual after v_proj's within-head Hadamard cancels. + + Args: + model: A HuggingFace model whose weights have already been rotated. + mapping: A :class:`RotationMapping` (auto-inferred if ``None``). + fp32_had: Whether to compute the Hadamard transform in fp32. + use_fast_had: If True use fast_hadamard_transform; if False use matmul_hadU. + + Returns: + list of hook handles (call ``handle.remove()`` to detach). + """ + if mapping is None: + from auto_round.experimental.rotation_inplace.model_config import infer_mapping_from_model + + mapping = infer_mapping_from_model(model) + + config = model.config + num_heads = getattr(config, mapping.num_heads_attr) + hidden_size = getattr(config, mapping.hidden_size_attr) + intermediate_size = getattr(config, mapping.intermediate_size_attr) + # Resolve head_dim, preferring an explicit ``config.head_dim`` (e.g. Qwen-3 + # declares ``head_dim`` separately from ``hidden_size // num_heads``). + if mapping.attn_head_dim: + head_dim = mapping.attn_head_dim + else: + cfg_head_dim = getattr(config, "head_dim", None) + head_dim = cfg_head_dim if isinstance(cfg_head_dim, int) and cfg_head_dim > 0 else hidden_size // num_heads + + # down_proj: full Hadamard on intermediate_size + had_K_full, K_full = get_hadK(intermediate_size) + + # o_proj: cross-head Hadamard on num_heads + had_K_head, K_head = get_hadK(num_heads) + + # Identify target module suffixes from mapping + mlp_out_suffix = mapping.mlp_out.split(".")[-1] # e.g. "down_proj" + attn_o_suffix = mapping.attn_o.split(".")[-1] # e.g. "o_proj" + + handles = [] + for name, module in model.named_modules(): + if name.endswith(mlp_out_suffix) and isinstance(module, nn.Linear): + hook = FullOnlineHadamardHook( + had_K=had_K_full, + K=K_full, + fp32_had=fp32_had, + use_fast_had=use_fast_had, + ) + h = module.register_forward_pre_hook(hook) + handles.append(h) + elif name.endswith(attn_o_suffix) and isinstance(module, nn.Linear): + hook = CrossHeadOnlineHadamardHook( + had_K=had_K_head, + K=K_head, + head_dim=head_dim, + fp32_had=fp32_had, + use_fast_had=use_fast_had, + ) + h = module.register_forward_pre_hook(hook) + handles.append(h) + + return handles + + +def is_pow2(n): + return (n & (n - 1) == 0) and (n > 0) + + +# the hadamard matrix is same, but the order is not same +# # Adapted from https://github.com/Cornell-RelaxML/quip-sharp/blob/main/lib/utils/matmul_had.py +# def get_hadK(n: int, transpose=False) -> (torch.Tensor, int): +# hadK, K = None, None +# +# if is_pow2(n): +# K = 1 +# return hadK, K +# else: +# from auto_round.experimental.transform.utils.hadamard import _fetch_hadamard_divisor +# +# hadK = _fetch_hadamard_divisor(n, torch.float, torch.device("cpu")) +# if transpose: +# hadK = hadK.T +# if hadK is not None: +# return hadK, 1 if is_pow2(hadK.shape[0]) else hadK.shape[0] +# assert is_pow2(n) + +# Adapted from https://github.com/Cornell-RelaxML/quip-sharp/blob/main/lib/utils/matmul_had.py +from auto_round.experimental.rotation_inplace.hadamard_matrix import * + + +def get_hadK(n: int, transpose=False) -> (torch.Tensor, int): + hadK, K = None, None + if n % 172 == 0: # llama-2-7b up + assert is_pow2(n // 172) + K = 172 + hadK = get_had172().T if transpose else get_had172() + elif n % 156 == 0: # llama-1-30b 3x hidden + assert is_pow2(n // 156) + K = 156 + hadK = get_had156().T if transpose else get_had156() + elif n % 140 == 0: # llama-1-30b intermediate + assert is_pow2(n // 140) + K = 140 + hadK = get_had140().T if transpose else get_had140() + elif n % 108 == 0: # llama-1-13b intermediate + assert is_pow2(n // 108) + K = 108 + hadK = get_had108().T if transpose else get_had108() + elif n % 60 == 0: # llama-1-13b 3x hidden + assert is_pow2(n // 60) + K = 60 + hadK = get_had60().T if transpose else get_had60() + elif n % 52 == 0: # llama-1-13b 1x hidden + assert is_pow2(n // 52) + K = 52 + hadK = get_had52().T if transpose else get_had52() + elif n % 36 == 0: + assert is_pow2(n // 36) + K = 36 + hadK = get_had36().T if transpose else get_had36() + elif n % 28 == 0: + assert is_pow2(n // 28) + K = 28 + hadK = get_had28().T if transpose else get_had28() + elif n % 40 == 0: + assert is_pow2(n // 40) + K = 40 + hadK = get_had40().T if transpose else get_had40() + elif n % 20 == 0: + assert is_pow2(n // 20) + K = 20 + hadK = get_had20().T if transpose else get_had20() + elif n % 12 == 0: + assert is_pow2(n // 12) + K = 12 + hadK = get_had12().T if transpose else get_had12() + else: + if is_pow2(n): + K = 1 + return hadK, K + else: + from auto_round.experimental.transform.utils.hadamard import _fetch_hadamard_divisor + + hadK = _fetch_hadamard_divisor(n, torch.float, torch.device("cpu")) + if hadK is not None: + return hadK, 1 if is_pow2(hadK.shape[0]) else hadK.shape[0] + assert is_pow2(n) + + return hadK, K + + +def matmul_hadU(X, transpose=False): + n = X.shape[-1] + hadK, K = get_hadK(n, transpose) + input = X.clone().view(-1, n, 1) + output = input.clone() + while input.shape[1] > K: + input = input.view(input.shape[0], input.shape[1] // 2, 2, input.shape[2]) + output = output.view(input.shape) + output[:, :, 0, :] = input[:, :, 0, :] + input[:, :, 1, :] + output[:, :, 1, :] = input[:, :, 0, :] - input[:, :, 1, :] + output = output.view(input.shape[0], input.shape[1], -1) + input, output = (output, input) + del output + + if K > 1: + # Do not explicitly repeat - OOM + # input = torch.bmm( + # hadK.repeat(len(input), 1, 1).to(input.device).to(input.dtype), input) + # Use bcast instead + input = hadK.view(1, K, K).to(input) @ input + + return input.view(X.shape) / torch.tensor(n).sqrt() + + +def matmul_hadUt(X): + return matmul_hadU(X, transpose=True) + + +def random_hadamard_matrix(size, device): + # See https://cornell-relaxml.github.io/quip-sharp/ , Section "Randomized Hadamard Transformation" + Q = torch.randint(low=0, high=2, size=(size,)).to(torch.float64) + Q = Q * 2 - 1 + Q = torch.diag(Q) + return matmul_hadU(Q).to(device) + + +def deterministic_hadamard_matrix(size, device): + """Build a deterministic Hadamard matrix of the given *size*. + + Applies the butterfly ``matmul_hadU`` to an identity matrix so that the + result is purely determined by ``get_hadK`` (no random sign flips). + """ + Q = torch.eye(size, dtype=torch.float64) + return matmul_hadU(Q).to(device) + + +def matmul_hadU_cuda(X, hadK, K, use_fast_had=True): + n = X.shape[-1] + if not use_fast_had or fast_hadamard_transform is None: + return matmul_hadU(X) + if K == 1: + return fast_hadamard_transform.hadamard_transform(X.contiguous(), 1.0 / torch.tensor(n).sqrt()) + # if transpose: + # hadK = hadK.T.contiguous() + input = X.view(*X.shape[:-1], K, n // K) + input = fast_hadamard_transform.hadamard_transform(input.contiguous(), 1.0 / torch.tensor(n).sqrt()) + input = hadK.to(input.device).to(input.dtype) @ input + return input.reshape(X.shape) + + +def matmul_hadUt_cuda(X, hadK, K, use_fast_had=True): + return matmul_hadU_cuda(X, hadK, K, use_fast_had=use_fast_had) + + +def apply_exact_had_to_linear( + module, had_dim=-1, output=False, use_fast_had=True, compute_device=None, had_matrix=None +): + """Apply Hadamard rotation to a Linear layer's weight in-place. + + Args: + module: ``nn.Linear`` layer. + had_dim: Dimension of each Hadamard block (``-1`` for full dimension). + output: If ``True`` rotate the output (row) side; otherwise input (col). + use_fast_had: Use ``fast_hadamard_transform`` when available. + compute_device: Device to run computation on. + had_matrix: Optional custom rotation matrix. When ``had_dim == -1`` + this should be a square tensor whose size equals + ``out_features`` (output) or ``in_features`` (input). When + ``had_dim > 0`` the size should equal ``had_dim``. + """ + assert isinstance(module, torch.nn.Linear) + in_features, out_features = module.in_features, module.out_features + + if had_dim != -1 and had_matrix is None: + # When had_dim is not a power of 2, the fast Hadamard transform + # kernel cannot be used. Fall back to the generic ``matmul_hadU`` + # path, which supports non-pow2 sizes via known Hadamard divisors + # (see ``get_hadK``). If no divisor is available, ``get_hadK`` will + # raise; we surface a clearer error here. + if not is_pow2(had_dim): + _hadK_probe, _ = get_hadK(had_dim) + assert _hadK_probe is not None, ( + f"Hadamard dimension {had_dim} is not a power of 2 and no " + "known Hadamard divisor is available for it." + ) + use_fast_had = False + + W_ = module.weight.data + dtype = W_.dtype + dev = W_.device + init_shape = W_.shape + compute_dev = _resolve_compute_device(compute_device) + + # ---- Fast path: full-dim custom matrix (most common heavy path: down_proj + # input rotation under random_hadamard / quarot_hadamard). Done in chunks + # along the *free* axis so we never materialise the full fp64 weight, + # which on Qwen3-14B's down_proj is ~712 MB on its own. + if had_matrix is not None and had_dim == -1: + H_T = had_matrix.to(device=compute_dev, dtype=torch.float64).T.contiguous() + out = torch.empty_like(W_) + if output: + # W ← W @ H.T (rows of W are independent → chunk over rows). + R = W_.shape[0] + chunk = max(1, min(R, 4096)) + for i in range(0, R, chunk): + j = min(i + chunk, R) + blk = W_.data[i:j].to(device=compute_dev, dtype=torch.float64) + rotated = (blk @ H_T).to(device=dev, dtype=dtype) + out[i:j].copy_(rotated) + del blk, rotated + else: + # Same expression in current code (W_ @ H.T), but chunk over rows. + R = W_.shape[0] + chunk = max(1, min(R, 4096)) + for i in range(0, R, chunk): + j = min(i + chunk, R) + blk = W_.data[i:j].to(device=compute_dev, dtype=torch.float64) + rotated = (blk @ H_T).to(device=dev, dtype=dtype) + out[i:j].copy_(rotated) + del blk, rotated + del H_T + module.weight.data = out + return + + W_ = W_.double().to(compute_dev) + + if had_matrix is not None: + H = had_matrix.to(device=compute_dev, dtype=torch.float64) + if had_dim == -1: + # Full-dimension custom matrix + if output: + # W.T = H @ W.T → W = (H @ W.T).T = W @ H.T + W_ = W_ @ H.T + else: + # W = H @ W (rotate input columns: W_new[i,:] = sum H[i,j]*W[j,:]) + # Actually for input side: W_new = W @ H (each row is rotated) + W_ = W_ @ H.T + else: + # Per-block custom matrix + if output: + W_ = W_.t() + transposed_shape = W_.shape + flat = W_.reshape(-1, had_dim) + W_ = (flat @ H.T).reshape(transposed_shape).t() + else: + flat = W_.reshape(-1, had_dim) + W_ = (flat @ H.T).reshape(init_shape) + elif had_dim == -1: + if output: + had_K, K = get_hadK(out_features) + W_ = matmul_hadU_cuda(W_.t(), had_K, K, use_fast_had=use_fast_had).t() + if not output: + had_K, K = get_hadK(in_features) + W_ = matmul_hadU_cuda(W_, had_K, K, use_fast_had=use_fast_had) + else: + # Apply Hadamard to the last had_dim chunks of the weights + if output: + W_ = W_.t() + transposed_shape = W_.shape + if use_fast_had and fast_hadamard_transform is not None: + W_ = ( + fast_hadamard_transform.hadamard_transform( + W_.reshape(-1, transposed_shape[-1] // had_dim, had_dim), scale=1 / math.sqrt(had_dim) + ) + .reshape(transposed_shape) + .t() + ) + else: + W_ = matmul_hadU(W_.reshape(-1, had_dim)).reshape(transposed_shape).t() + else: + if use_fast_had and fast_hadamard_transform is not None: + n = W_.shape[1] + W_ = fast_hadamard_transform.hadamard_transform( + W_.reshape(-1, n // had_dim, had_dim), scale=1 / math.sqrt(had_dim) + ).reshape(init_shape) + else: + W_ = matmul_hadU(W_.reshape(-1, had_dim)).reshape(init_shape) + module.weight.data = W_.to(device=dev, dtype=dtype) + + +def apply_cross_head_had_to_linear( + module, num_heads, head_dim, use_fast_had=True, compute_device=None, had_matrix=None +): + """Apply a cross-head Hadamard rotation to a Linear layer's input side. + + The operation is equivalent to ``(H_cross ⊗ I_head_dim)`` applied to the + input columns: + + * Reshape columns ``(hidden_size,)`` → ``(num_heads, head_dim)`` + * Transpose → ``(head_dim, num_heads)`` + * Hadamard on the ``num_heads`` axis + * Transpose back and reshape + + This mirrors what :class:`CrossHeadOnlineHadamardHook` does at runtime. + + Args: + module: ``nn.Linear`` layer whose ``in_features == num_heads * head_dim``. + num_heads: Number of attention heads. + head_dim: Per-head dimension. + use_fast_had: Use ``fast_hadamard_transform`` when available. + compute_device: Device to run computation on. + had_matrix: Optional custom rotation matrix of shape ``(num_heads, num_heads)``. + """ + assert isinstance(module, torch.nn.Linear) + W_ = module.weight.data + dtype = W_.dtype + dev = W_.device + compute_dev = _resolve_compute_device(compute_device) + W_ = W_.double().to(compute_dev) + + out_f = W_.shape[0] + # W shape: (out_features, hidden_size) where hidden_size = num_heads * head_dim + # Reshape columns: (out_f, num_heads, head_dim) + W_ = W_.reshape(out_f, num_heads, head_dim) + # Transpose last two dims: (out_f, head_dim, num_heads) + W_ = W_.transpose(1, 2).contiguous() + + if had_matrix is not None: + H = had_matrix.to(device=compute_dev, dtype=torch.float64) + # Apply H on last dim (num_heads): flat @ H.T + flat = W_.reshape(-1, num_heads) + W_ = (flat @ H.T).reshape(out_f, head_dim, num_heads) + elif use_fast_had and fast_hadamard_transform is not None and is_pow2(num_heads): + W_ = fast_hadamard_transform.hadamard_transform(W_, scale=1.0 / math.sqrt(num_heads)) + else: + W_ = matmul_hadU(W_.reshape(-1, num_heads)).reshape(out_f, head_dim, num_heads) + + # Transpose back: (out_f, num_heads, head_dim) → (out_f, hidden_size) + W_ = W_.transpose(1, 2).contiguous().reshape(out_f, num_heads * head_dim) + module.weight.data = W_.to(device=dev, dtype=dtype) + + +# --------------------------------------------------------------------------- +# Grouped (block-diagonal) Hadamard utilities +# --------------------------------------------------------------------------- + + +class OnlineHadamardPostHook(nn.Module): + """Forward hook (post-hook) adapter: wraps a pre-hook-style Hadamard + transform to apply it on the layer's **output** instead of input. + + Used for v_proj per-head Hadamard on the output side when online + rotation is not fused into weights. + """ + + def __init__(self, pre_hook): + super().__init__() + self.pre_hook = pre_hook + + def __call__(self, module, input, output): + result = self.pre_hook(module, (output,)) + if isinstance(result, tuple): + return result[0] + return result + + +class GroupOnlineHadamardHook(nn.Module): + """Pre-forward hook: block-diagonal Hadamard with fixed ``group_size`` on last dim. + + Reshapes ``(*, D)`` → ``(*, D // group_size, group_size)``, applies Hadamard + per group, then reshapes back. Much cheaper than a full-dimension Hadamard. + """ + + def __init__(self, group_size, fp32_had=False, use_fast_had=True, had_matrix=None): + super().__init__() + self.group_size = group_size + self.fp32_had = fp32_had + self.use_fast_had = use_fast_had + self.custom_had = had_matrix is not None + + if had_matrix is not None: + self.register_buffer("had_matrix", had_matrix) + self.had_K = None + self.K = None + elif not is_pow2(group_size): + had_K, K = get_hadK(group_size) + if had_K is not None: + self.register_buffer("had_K", had_K) + else: + self.had_K = None + self.K = K + else: + self.had_K = None + self.K = 1 + + def __call__(self, module: nn.Module, args): + x = args[0] if isinstance(args, tuple) else args + x_dtype = x.dtype + init_shape = x.shape + gs = self.group_size + + if self.fp32_had: + x = x.float() + + # Reshape: (*, D) → (*, D//gs, gs) + x = x.reshape(*init_shape[:-1], init_shape[-1] // gs, gs) + + if self.custom_had: + H = self.had_matrix.to(device=x.device, dtype=x.dtype) + flat = x.reshape(-1, gs) + x = (flat @ H.T).reshape(*init_shape[:-1], init_shape[-1] // gs, gs) + elif self.use_fast_had and fast_hadamard_transform is not None and self.K == 1: + x = fast_hadamard_transform.hadamard_transform(x, scale=1.0 / math.sqrt(gs)) + else: + x = x.reshape(-1, gs) + x = matmul_hadU(x) + x = x.reshape(*init_shape[:-1], init_shape[-1] // gs, gs) + + x = x.reshape(init_shape) + + if self.fp32_had: + x = x.to(x_dtype) + + if isinstance(args, tuple): + return (x,) + args[1:] + return x + + +def _apply_grouped_had_to_weight(W, group_size, side="input", use_fast_had=True, had_matrix=None): + """Apply block-diagonal Hadamard to a weight matrix. + + Args: + W: Weight tensor, shape (out_features, in_features). + group_size: Block size for the Hadamard rotation. + side: ``'input'`` rotates columns (in_features dim), + ``'output'`` rotates rows (out_features dim). + use_fast_had: Use fast_hadamard_transform if available. + had_matrix: Optional custom Hadamard matrix of shape ``(gs, gs)`` + to use instead of the built-in Hadamard. + + Returns: + Rotated weight tensor. + """ + gs = group_size + dtype = W.dtype + W = W.double() + + def _had_on_last_dim(X): + """Apply Hadamard on the last dimension (size gs) of X shaped (..., gs).""" + if had_matrix is not None: + H = had_matrix.to(device=X.device, dtype=X.dtype) + # X: (..., gs) → batch matmul with H^T → X @ H^T + flat = X.reshape(-1, gs) + return (flat @ H.T).reshape(X.shape) + if use_fast_had and fast_hadamard_transform is not None and is_pow2(gs): + return fast_hadamard_transform.hadamard_transform(X, scale=1.0 / math.sqrt(gs)) + orig_shape = X.shape + return matmul_hadU(X.reshape(-1, gs)).reshape(orig_shape) + + if side == "input": + out_f, in_f = W.shape + W = W.reshape(out_f, in_f // gs, gs) + W = _had_on_last_dim(W) + W = W.reshape(out_f, in_f) + else: + out_f, in_f = W.shape + Wt = W.t().contiguous() + Wt = Wt.reshape(in_f, out_f // gs, gs) + Wt = _had_on_last_dim(Wt) + W = Wt.reshape(in_f, out_f).t().contiguous() + + return W.to(dtype) + + +def _rotate_linear_grouped(module, group_size, side="input", use_fast_had=True, compute_device=None, had_matrix=None): + """Apply block-diagonal Hadamard rotation to a Linear layer's weight. + + Args: + module: ``nn.Linear`` layer. + group_size: Block size. + side: ``'input'`` or ``'output'``. + use_fast_had: Use fast_hadamard_transform. + compute_device: Device to run computation on. If None, auto-detects GPU. + had_matrix: Optional custom Hadamard matrix of shape ``(gs, gs)``. + """ + dtype = module.weight.data.dtype + dev = module.weight.data.device + compute_dev = _resolve_compute_device(compute_device) + W = module.weight.data.to(device=compute_dev, dtype=torch.float64) + W = _apply_grouped_had_to_weight(W, group_size, side=side, use_fast_had=use_fast_had, had_matrix=had_matrix) + module.weight.data = W.to(device=dev, dtype=dtype) + + if side == "output" and module.bias is not None: + bias = module.bias.data.to(device=compute_dev, dtype=torch.float64) + gs = group_size + bias = bias.reshape(-1, gs) + if had_matrix is not None: + H = had_matrix.to(device=compute_dev, dtype=torch.float64) + bias = (bias @ H.T).reshape(-1) + elif use_fast_had and fast_hadamard_transform is not None and is_pow2(gs): + bias = ( + fast_hadamard_transform.hadamard_transform(bias.unsqueeze(0), scale=1.0 / math.sqrt(gs)) + .squeeze(0) + .reshape(-1) + ) + else: + bias = matmul_hadU(bias).reshape(-1) + module.bias.data = bias.to(device=dev, dtype=dtype) + + +def _rotate_embedding_grouped(embedding, group_size, use_fast_had=True, compute_device=None, had_matrix=None): + """Apply block-diagonal Hadamard rotation to an Embedding layer. + + Embedding weight: (vocab, hidden_size) → rotate on hidden_size (columns). + """ + dtype = embedding.weight.data.dtype + dev = embedding.weight.data.device + compute_dev = _resolve_compute_device(compute_device) + W = embedding.weight.data.to(device=compute_dev, dtype=torch.float64) + W = _apply_grouped_had_to_weight(W, group_size, side="input", use_fast_had=use_fast_had, had_matrix=had_matrix) + new_W = W.to(device=dev, dtype=dtype) + del W + embedding.weight.data = new_W + + +def register_online_had_hooks_grouped(model, mapping, group_size, fp32_had=False, use_fast_had=True): + """Register per-group online Hadamard hooks on ``down_proj`` and ``o_proj``. + + In grouped mode: + - **down_proj**: block-diagonal Hadamard on ``intermediate_size`` with ``group_size``. + - **o_proj**: block-diagonal Hadamard on ``hidden_size`` with ``group_size``. + + Args: + model: HuggingFace model with rotated weights. + mapping: RotationMapping. + group_size: Block size for block-diagonal Hadamard. + fp32_had: Compute in fp32. + use_fast_had: Use fast_hadamard_transform. + + Returns: + list of hook handles. + """ + mlp_out_suffix = mapping.mlp_out.split(".")[-1] + attn_o_suffix = mapping.attn_o.split(".")[-1] + + handles = [] + for name, module in model.named_modules(): + if name.endswith(mlp_out_suffix) and isinstance(module, nn.Linear): + hook = GroupOnlineHadamardHook( + group_size=group_size, + fp32_had=fp32_had, + use_fast_had=use_fast_had, + ) + h = module.register_forward_pre_hook(hook) + handles.append(h) + elif name.endswith(attn_o_suffix) and isinstance(module, nn.Linear): + hook = GroupOnlineHadamardHook( + group_size=group_size, + fp32_had=fp32_had, + use_fast_had=use_fast_had, + ) + h = module.register_forward_pre_hook(hook) + handles.append(h) + + return handles diff --git a/auto_round/wrapper.py b/auto_round/wrapper.py index 93324334b..35a59ae5e 100644 --- a/auto_round/wrapper.py +++ b/auto_round/wrapper.py @@ -283,7 +283,7 @@ def _qdq_act(self, x, act_min_scale=torch.tensor(1.0), act_max_scale=torch.tenso """ act_max_scale.data.clamp_(0, 1.0) act_min_scale.data.clamp_(0, 1.0) - env_act_scale = envs.AR_ACT_SCALE # fixed activation ratio,prioritize to use this one if set + env_act_scale = envs.AR_ACT_SCALE # fixed activation ratio, only used when explicitly set x, scale, zp = self.act_quant_func( x, bits=self.orig_layer.act_bits, @@ -292,8 +292,8 @@ def _qdq_act(self, x, act_min_scale=torch.tensor(1.0), act_max_scale=torch.tenso q_scale_thresh=self.q_scale_thresh, data_type=self.act_data_type, tensor_max=act_max, # for static - max_scale=act_max_scale if math.isclose(env_act_scale, 1.0, rel_tol=1e-6) else env_act_scale, - min_scale=act_min_scale if math.isclose(env_act_scale, 1.0, rel_tol=1e-6) else env_act_scale, + max_scale=act_max_scale if env_act_scale is None else env_act_scale, + min_scale=act_min_scale if env_act_scale is None else env_act_scale, global_scale=getattr(self, "input_global_scale", None), ) return x, scale, zp @@ -580,8 +580,8 @@ def forward(self, x): act_scale = envs.AR_ACT_SCALE act_max = self.orig_layer.act_max if hasattr(self.orig_layer, "act_max") else None - max_scale = self.orig_layer.act_max_scale if math.isclose(act_scale, 1.0, rel_tol=1e-6) else act_scale - min_scale = self.orig_layer.act_min_scale if math.isclose(act_scale, 1.0, rel_tol=1e-6) else act_scale + max_scale = self.orig_layer.act_max_scale if act_scale is None else act_scale + min_scale = self.orig_layer.act_min_scale if act_scale is None else act_scale if act_max is None: x, _, _ = self.orig_layer.act_quant_func( x,