Generated on Thu Mar 16 2017 03:24:14 for Gecode by doxygen 1.8.13
qcp.cpp
Go to the documentation of this file.
1 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2 /*
3  * Main authors:
4  * Christian Schulte <schulte@gecode.org>
5  *
6  * Copyright:
7  * Christian Schulte, 2015
8  *
9  * Last modified:
10  * $Date: 2016-04-19 17:19:45 +0200 (Tue, 19 Apr 2016) $ by $Author: schulte $
11  * $Revision: 14967 $
12  *
13  * This file is part of Gecode, the generic constraint
14  * development environment:
15  * http://www.gecode.org
16  *
17  * Permission is hereby granted, free of charge, to any person obtaining
18  * a copy of this software and associated documentation files (the
19  * "Software"), to deal in the Software without restriction, including
20  * without limitation the rights to use, copy, modify, merge, publish,
21  * distribute, sublicense, and/or sell copies of the Software, and to
22  * permit persons to whom the Software is furnished to do so, subject to
23  * the following conditions:
24  *
25  * The above copyright notice and this permission notice shall be
26  * included in all copies or substantial portions of the Software.
27  *
28  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35  *
36  */
37 
38 #include <gecode/driver.hh>
39 
40 #include <gecode/int.hh>
41 #include <gecode/minimodel.hh>
42 
43 using namespace Gecode;
44 
46 namespace {
47 
49  static const int n_seeds = 32;
51  static const unsigned int seeds[n_seeds] = {
52  4156683608, 97006981, 1375463525, 841714419,
53  715462902, 2418870981, 1624092856, 123015042,
54  2456879733, 1964065250, 2622145091, 3852245775,
55  205913142, 1921802200, 3118573517, 315803625,
56  1823610061, 3329660933, 3706705607, 2648334003,
57  424666975, 1774959171, 4178564660, 52701009,
58  2475642041, 2171371390, 1476278023, 2270518404,
59  2981774515, 910724046, 92053990, 1980563460
60  };
61 
62 
64  class QCPOptions : public InstanceOptions {
65  protected:
68  public:
70  QCPOptions(const char* s)
71  : InstanceOptions(s),
72  _tbf("-tbf", "tie-breaking factor",0.0) {
73  // Add options
74  add(_tbf);
75  }
77  double tbf(void) const {
78  return _tbf.value();
79  }
81  void tbf(double d) {
82  _tbf.value(d);
83  }
84  };
85 
86 
88  extern const int* qcp[];
90  extern const char* name[];
91 
93  class Spec {
94  protected:
96  const int* data;
98  int info(int i, int j) const {
99  int n = data[0];
100  assert((i >= 0) && (i < n));
101  assert((j >= 0) && (j < n));
102  return data[1 + (i * n) + j];
103  }
105  static const int* find(const char* s) {
106  for (int i=0; name[i] != NULL; i++)
107  if (!strcmp(s,name[i]))
108  return qcp[i];
109  return NULL;
110  }
111  public:
113  bool valid(void) const {
114  return data != NULL;
115  }
117  Spec(const char* s) : data(find(s)) {}
119  int size(void) const {
120  return data[0];
121  }
123  bool assigned(int i, int j) const {
124  return info(i,j) > 0;
125  }
127  int val(int i, int j) const {
128  assert(assigned(i,j));
129  return info(i,j) - 1;
130  }
131  };
132 
133 }
134 
135 
142 class QCP : public Script {
143 protected:
145  const QCPOptions& opt;
147  const Spec spec;
151  double tbf;
152 public:
154  enum {
156  PROP_DISTINCT
157  };
159  enum {
162  };
164  QCP(const QCPOptions& opt0)
165  : Script(opt0),
166  opt(opt0), spec(opt.instance()),
167  e(*this, spec.size() * spec.size(), 0, spec.size()-1) {
168  // Problem size
169  int n = spec.size();
170  // Matrix for elements
171  Matrix<IntVarArray> m(e, n);
172 
173  // Assign fields
174  for (int i=0; i<n; i++)
175  for (int j=0; j<n; j++)
176  if (spec.assigned(i,j))
177  rel(*this, m(i,j) == spec.val(i,j));
178 
179  // Post constraints
180  switch (opt.propagation()) {
181  case PROP_BINARY:
182  for (int i=0; i<n; i++)
183  for (int k=0; k<n; k++)
184  for (int l=k+1; l<n; l++) {
185  rel(*this, m(i,k) != m(i,l));
186  rel(*this, m(k,i) != m(l,i));
187  }
188  break;
189  case PROP_DISTINCT:
190  for (int i=0; i<n; i++) {
191  distinct(*this, m.row(i), opt.ipl());
192  distinct(*this, m.col(i), opt.ipl());
193  }
194  break;
195  }
196 
197  if (opt.assets() == 0) {
198  // Post branchers directly, as no portfolio search requested
199  switch (opt.branching()) {
200  case BRANCH_SIZE:
201  branch(*this, e, INT_VAR_SIZE_MIN(), INT_VAL_MIN());
202  break;
203  case BRANCH_AFC_SIZE:
204  branch(*this, e, INT_VAR_AFC_SIZE_MAX(opt.decay()), INT_VAL_MIN());
205  break;
206  }
207  }
208  }
210  double _tbl_min(double w, double b) const {
211  assert(w >= b);
212  return b + (w - b) * opt.tbf();
213  }
215  static double tbl_min(const Space& home, double w, double b) {
216  return static_cast<const QCP&>(home)._tbl_min(w,b);
217  }
219  double _tbl_max(double w, double b) const {
220  assert(b >= w);
221  return b - (b - w) * opt.tbf();
222  }
224  static double tbl_max(const Space& home, double w, double b) {
225  return static_cast<const QCP&>(home)._tbl_max(w,b);
226  }
228  virtual bool slave(const MetaInfo& mi) {
229  if (mi.type() == MetaInfo::PORTFOLIO) {
230  Rnd r(seeds[mi.asset() % n_seeds]);
231  switch (opt.branching()) {
232  case BRANCH_SIZE:
233  branch(*this, e, tiebreak(INT_VAR_SIZE_MIN(&tbl_min),
234  INT_VAR_RND(r)),
235  INT_VAL_MIN());
236  break;
237  case BRANCH_AFC_SIZE:
238  {
239  IntAFC afc(*this, e, opt.decay());
240  branch(*this, e, tiebreak(INT_VAR_AFC_SIZE_MAX(afc, &tbl_max),
241  INT_VAR_RND(r)),
242  INT_VAL_MIN());
243  break;
244  }
245  }
246  }
247  return true;
248  }
250  QCP(bool share, QCP& s)
251  : Script(share,s), opt(s.opt), spec(s.spec) {
252  e.update(*this, share, s.e);
253  }
255  virtual Space*
256  copy(bool share) {
257  return new QCP(share,*this);
258  }
260  virtual void
261  print(std::ostream& os) const {
262  int n = spec.size();
263  Matrix<IntVarArray> m(e, n);
264 
265  for (int i=0; i<n; i++) {
266  os << "\t";
267  for (int j=0; j<n; j++) {
268  if (m(i,j).assigned())
269  os.width(2);
270  os << m(i,j) << " ";
271  }
272  os << std::endl;
273  }
274  }
275 };
276 
280 int
281 main(int argc, char* argv[]) {
282  QCPOptions opt("QCP");
283 
284  opt.branching(QCP::BRANCH_AFC_SIZE);
285  opt.branching(QCP::BRANCH_SIZE, "size");
286  opt.branching(QCP::BRANCH_AFC_SIZE, "afc");
287 
288  opt.propagation(QCP::PROP_DISTINCT);
289  opt.propagation(QCP::PROP_BINARY, "binary",
290  "only binary disequality constraints");
291  opt.propagation(QCP::PROP_DISTINCT, "distinct",
292  "distinct constraints");
293 
294  opt.instance(name[0]);
295 
296  opt.parse(argc,argv);
297  if (!Spec(opt.instance()).valid()) {
298  std::cerr << "Error: unkown instance" << std::endl;
299  return 1;
300  }
301  Script::run<QCP,DFS,QCPOptions>(opt);
302  return 0;
303 }
304 
305 namespace {
306 
307  /*
308  * Instances taken from the 2009 CSP competition.
309  */
310 
311  const int d10_67_0[] = {
312  // Size: 10 x 10
313  10,
314  // Pre-assigned fields
315  2,4,0,0,5,7,0,0,0,0,
316  0,6,0,4,0,0,0,3,0,0,
317  3,0,9,0,0,5,0,0,8,0,
318  0,0,2,10,7,0,0,0,0,0,
319  0,0,0,0,0,0,5,1,0,8,
320  4,0,0,0,0,0,3,6,0,0,
321  0,0,0,8,0,4,0,0,0,1,
322  0,5,0,3,8,0,0,0,0,0,
323  0,0,1,0,0,0,4,0,5,0,
324  0,0,0,0,0,6,0,8,9,3
325  };
326 
327  const int d10_67_10[] = {
328  // Size: 10 x 10
329  10,
330  // Pre-assigned fields
331  0,10,0,0,0,0,4,2,0,0,
332  0,0,0,3,8,0,0,0,6,0,
333  0,0,0,0,0,4,0,0,1,6,
334  1,6,8,5,0,0,0,0,0,0,
335  0,9,1,0,0,7,0,0,0,0,
336  0,0,0,0,5,0,7,1,4,0,
337  3,0,2,4,0,0,8,0,0,0,
338  4,0,0,0,2,0,0,0,0,5,
339  0,7,6,0,0,0,0,0,0,3,
340  0,0,0,0,0,10,6,4,0,0
341  };
342 
343  const int d10_67_11[] = {
344  // Size: 10 x 10
345  10,
346  // Pre-assigned fields
347  7,0,0,0,1,0,0,0,2,0,
348  0,0,7,0,0,0,9,0,0,6,
349  0,0,0,0,0,0,6,7,5,0,
350  9,3,0,7,0,0,0,0,0,2,
351  0,7,0,4,8,0,0,0,0,0,
352  0,1,10,0,0,0,3,0,0,0,
353  2,0,0,0,0,9,7,1,0,0,
354  0,0,1,0,0,7,0,3,8,0,
355  0,0,0,0,0,8,0,0,1,5,
356  0,9,0,6,7,0,0,0,0,0
357  };
358 
359  const int d10_67_12[] = {
360  // Size: 10 x 10
361  10,
362  // Pre-assigned fields
363  0,4,0,0,0,0,8,0,2,0,
364  0,5,7,0,9,0,0,0,0,0,
365  6,3,0,0,0,2,0,0,0,1,
366  0,0,6,0,7,0,0,8,0,0,
367  3,7,0,0,0,0,0,0,4,5,
368  4,0,0,0,0,0,0,2,6,0,
369  0,0,0,9,2,0,0,6,0,0,
370  0,0,0,1,0,7,6,0,0,0,
371  10,0,0,0,6,0,0,0,0,2,
372  0,0,4,5,0,6,3,0,0,0
373  };
374 
375  const int d10_67_13[] = {
376  // Size: 10 x 10
377  10,
378  // Pre-assigned fields
379  0,0,9,6,0,0,0,0,1,0,
380  0,3,0,0,4,0,0,0,10,0,
381  0,0,0,0,6,0,10,0,0,7,
382  0,0,0,7,0,8,0,10,3,0,
383  6,7,10,0,0,0,0,0,0,4,
384  7,0,0,10,0,0,4,0,0,0,
385  0,0,0,4,0,0,6,2,0,0,
386  0,0,5,0,10,0,0,3,0,0,
387  4,9,0,0,0,3,0,0,0,0,
388  9,8,0,0,0,2,0,0,0,1
389  };
390 
391  const int d10_67_14[] = {
392  // Size: 10 x 10
393  10,
394  // Pre-assigned fields
395  7,0,10,9,0,0,0,0,0,0,
396  3,0,0,8,0,0,0,0,9,0,
397  0,2,0,0,7,0,0,0,0,4,
398  9,0,0,10,0,0,2,0,0,0,
399  0,0,9,2,0,8,4,0,0,0,
400  0,0,5,0,1,0,9,8,0,0,
401  0,3,0,0,0,0,0,0,8,6,
402  0,0,0,0,0,5,0,7,0,9,
403  0,7,0,0,0,0,0,9,5,0,
404  0,6,0,0,2,1,5,0,0,0
405  };
406 
407  const int d10_67_1[] = {
408  // Size: 10 x 10
409  10,
410  // Pre-assigned fields
411  9,0,10,0,0,0,0,0,2,6,
412  0,8,0,1,0,0,6,3,0,0,
413  0,0,0,0,0,7,0,1,0,4,
414  10,0,0,0,0,3,0,0,6,0,
415  6,0,0,0,0,0,9,0,0,2,
416  0,0,0,4,6,2,0,0,0,0,
417  0,10,8,6,0,0,0,0,0,0,
418  0,0,0,0,5,0,4,0,1,0,
419  8,2,0,0,0,0,10,6,0,0,
420  0,0,1,0,10,0,0,0,7,0
421  };
422 
423  const int d10_67_2[] = {
424  // Size: 10 x 10
425  10,
426  // Pre-assigned fields
427  0,0,2,8,0,0,6,0,1,0,
428  6,8,0,0,0,0,0,4,0,0,
429  9,0,0,7,0,0,0,0,0,4,
430  0,0,0,6,0,0,3,0,0,10,
431  0,0,0,0,7,3,10,0,0,8,
432  0,0,5,0,0,2,0,3,0,0,
433  0,7,0,0,8,9,0,0,6,0,
434  5,0,0,0,0,0,0,6,7,0,
435  7,0,3,0,5,0,0,0,0,0,
436  0,2,0,0,0,8,0,0,9,0
437  };
438 
439  const int d10_67_3[] = {
440  // Size: 10 x 10
441  10,
442  // Pre-assigned fields
443  0,0,0,0,10,6,0,0,0,9,
444  0,0,0,1,8,0,2,0,0,0,
445  0,0,9,7,0,0,1,0,0,8,
446  4,9,0,2,0,0,0,0,7,0,
447  0,2,6,0,0,0,0,9,0,0,
448  0,0,1,9,0,0,5,0,0,0,
449  0,0,0,0,0,4,0,7,8,0,
450  10,8,0,0,0,0,0,0,6,0,
451  9,4,0,0,0,0,0,0,5,2,
452  0,0,0,0,5,8,0,3,0,0
453  };
454 
455  const int d10_67_4[] = {
456  // Size: 10 x 10
457  10,
458  // Pre-assigned fields
459  5,0,3,0,0,0,0,10,0,0,
460  0,0,5,0,0,0,2,0,3,10,
461  0,0,0,7,0,8,1,0,0,0,
462  10,5,0,0,1,0,0,0,0,0,
463  0,10,8,0,0,0,0,0,1,0,
464  0,0,1,3,0,0,0,9,0,6,
465  0,2,0,1,0,0,0,4,0,5,
466  0,0,0,0,5,9,0,0,10,0,
467  0,0,0,0,3,0,6,0,0,4,
468  8,0,0,0,0,6,0,0,5,0
469  };
470 
471  const int d10_67_5[] = {
472  // Size: 10 x 10
473  10,
474  // Pre-assigned fields
475  7,0,0,0,0,0,0,8,1,0,
476  0,0,6,1,0,0,0,0,0,2,
477  0,3,0,8,9,2,0,0,0,0,
478  0,0,0,0,7,4,0,0,0,10,
479  0,4,0,0,0,0,10,9,0,0,
480  0,0,1,0,0,0,0,0,6,5,
481  9,0,4,0,0,0,1,0,0,0,
482  0,5,0,4,0,8,0,0,10,0,
483  0,9,0,0,6,0,8,3,0,0,
484  5,0,0,0,0,3,0,0,9,0
485  };
486 
487  const int d10_67_6[] = {
488  // Size: 10 x 10
489  10,
490  // Pre-assigned fields
491  6,0,10,5,0,0,0,0,1,0,
492  0,0,0,0,2,5,0,0,7,0,
493  0,7,0,1,10,0,0,0,6,0,
494  0,0,7,0,0,0,4,0,9,0,
495  1,0,0,0,0,2,0,5,0,0,
496  0,8,5,0,0,0,0,0,0,7,
497  0,4,0,7,9,0,0,0,0,0,
498  0,0,0,0,0,7,10,6,0,0,
499  0,0,0,8,0,0,0,7,0,1,
500  7,0,0,0,0,0,1,8,0,2
501  };
502 
503  const int d10_67_7[] = {
504  // Size: 10 x 10
505  10,
506  // Pre-assigned fields
507  0,7,0,0,6,0,0,0,0,1,
508  0,1,4,0,0,0,0,3,0,6,
509  1,0,0,2,3,0,0,0,0,0,
510  2,0,0,3,0,8,0,0,0,0,
511  0,0,0,0,0,6,0,8,7,0,
512  0,0,6,0,0,0,4,0,3,0,
513  0,0,0,4,0,0,10,0,6,0,
514  0,10,8,0,1,9,0,0,0,0,
515  0,0,0,0,0,7,9,6,0,3,
516  6,0,0,0,0,0,0,7,0,4
517  };
518 
519  const int d10_67_8[] = {
520  // Size: 10 x 10
521  10,
522  // Pre-assigned fields
523  0,5,0,4,0,0,3,0,0,0,
524  0,0,0,0,7,0,2,0,0,4,
525  0,6,10,0,0,3,0,0,9,0,
526  4,0,0,0,0,7,0,0,3,10,
527  0,8,2,0,0,0,4,0,0,6,
528  8,0,0,10,0,0,0,6,0,0,
529  0,0,4,0,0,2,0,7,0,0,
530  3,0,0,0,2,0,10,0,0,0,
531  0,0,0,8,3,0,0,0,0,5,
532  0,0,0,0,0,4,0,5,2,0
533  };
534 
535  const int d10_67_9[] = {
536  // Size: 10 x 10
537  10,
538  // Pre-assigned fields
539  2,8,0,0,0,7,0,0,0,0,
540  0,5,0,8,0,2,0,0,0,6,
541  0,0,0,0,0,0,2,5,0,4,
542  4,0,0,0,2,0,3,1,0,0,
543  0,0,10,0,0,0,0,0,2,9,
544  0,0,8,9,0,0,0,0,5,0,
545  0,0,0,6,0,0,0,0,9,8,
546  0,0,4,0,9,6,0,0,1,0,
547  8,0,0,0,0,0,6,7,0,0,
548  0,2,0,0,8,0,0,9,0,0
549  };
550 
551  const int d15_120_0[] = {
552  // Size: 15 x 15
553  15,
554  // Pre-assigned fields
555  0,0,0,2,0,0,11,0,0,4,15,12,13,8,0,
556  0,7,2,0,0,0,0,13,15,0,1,0,4,9,0,
557  0,0,6,3,0,0,12,0,8,0,13,0,0,1,2,
558  0,0,1,7,0,6,3,0,0,2,0,9,0,11,0,
559  0,0,0,12,0,0,4,0,0,10,9,3,0,7,6,
560  13,0,0,0,7,2,6,0,5,0,14,8,0,0,0,
561  7,0,14,0,12,4,15,1,0,6,0,0,0,0,0,
562  15,4,8,0,9,5,0,0,0,0,0,11,0,0,10,
563  11,13,0,0,2,0,0,12,0,0,3,0,6,0,14,
564  0,3,10,11,0,0,14,0,9,0,0,2,1,0,0,
565  0,0,0,0,11,12,0,7,4,0,0,6,0,14,5,
566  0,8,11,4,0,7,0,0,0,3,0,0,2,0,15,
567  2,5,0,0,4,0,0,6,10,14,0,0,8,0,0,
568  5,6,0,0,0,0,0,8,0,13,7,0,9,0,4,
569  3,0,5,1,13,11,0,4,0,0,0,0,0,2,0
570  };
571 
572  const int d15_120_10[] = {
573  // Size: 15 x 15
574  15,
575  // Pre-assigned fields
576  0,0,8,14,1,0,7,0,4,10,0,0,0,0,9,
577  0,11,0,13,0,12,10,0,5,0,0,0,4,2,0,
578  0,7,11,0,0,0,8,0,3,2,0,0,0,6,10,
579  1,0,0,0,2,0,0,8,0,12,9,0,14,7,0,
580  2,0,0,0,0,11,1,7,0,0,14,0,12,0,15,
581  4,0,0,2,14,0,0,9,0,0,11,7,13,0,0,
582  12,0,0,0,10,0,0,0,14,9,4,6,1,0,0,
583  10,15,0,0,3,0,0,0,0,6,5,13,0,8,0,
584  0,0,2,0,0,1,0,3,0,0,15,9,0,0,11,
585  13,0,15,9,0,0,0,4,10,0,0,5,11,0,0,
586  0,9,12,0,0,14,0,0,0,0,0,8,10,5,4,
587  3,0,0,1,0,7,5,10,0,13,6,0,0,0,0,
588  0,3,7,0,9,5,15,6,1,0,0,0,0,11,0,
589  0,8,10,5,0,0,11,0,15,0,0,0,0,4,1,
590  0,4,0,11,8,15,0,0,0,7,0,2,0,0,5
591  };
592 
593  const int d15_120_11[] = {
594  // Size: 15 x 15
595  15,
596  // Pre-assigned fields
597  0,0,9,0,10,0,14,0,3,0,8,0,0,13,6,
598  7,0,0,8,0,0,0,0,1,11,9,4,14,0,0,
599  0,0,0,2,0,12,13,0,4,8,11,0,0,15,0,
600  0,2,0,11,6,15,0,14,0,0,0,9,0,0,1,
601  0,0,11,0,9,13,8,5,0,0,0,14,12,3,0,
602  13,1,12,0,0,0,6,7,0,0,0,0,0,2,3,
603  0,6,0,0,3,4,9,10,5,0,0,0,0,0,0,
604  4,0,0,0,0,10,0,9,8,2,15,0,0,0,13,
605  1,12,10,13,0,0,0,4,0,0,0,6,15,0,0,
606  8,15,0,6,0,2,0,0,0,7,0,3,1,0,0,
607  0,13,2,0,8,0,0,0,0,15,4,0,9,11,0,
608  3,0,0,10,7,14,2,0,0,0,1,0,0,5,0,
609  0,0,5,1,0,0,0,0,0,4,14,7,10,0,12,
610  2,8,0,0,0,0,11,6,14,1,0,0,0,0,15,
611  0,0,13,0,12,0,0,0,9,0,0,8,11,6,10
612  };
613 
614  const int d15_120_12[] = {
615  // Size: 15 x 15
616  15,
617  // Pre-assigned fields
618  0,0,6,8,9,0,7,0,10,0,0,0,2,4,0,
619  1,8,0,14,0,2,0,15,0,0,0,0,0,3,6,
620  0,6,9,0,0,5,3,4,0,0,11,0,0,0,7,
621  0,3,13,0,0,15,0,0,0,11,14,2,0,9,0,
622  10,7,0,5,1,11,0,0,0,0,0,0,14,0,9,
623  3,0,11,0,0,0,0,13,0,4,6,8,0,0,10,
624  0,0,12,7,5,13,14,0,0,2,0,4,0,0,0,
625  0,10,4,0,0,0,9,7,0,0,15,0,8,0,11,
626  0,0,0,4,0,0,6,1,8,0,3,10,7,0,0,
627  0,11,0,0,6,0,0,0,1,14,0,5,15,10,0,
628  2,13,0,12,0,0,0,0,11,0,4,14,0,7,0,
629  5,0,0,11,10,7,0,0,2,0,0,0,4,8,0,
630  14,0,0,0,0,6,0,0,4,8,0,12,5,0,0,
631  4,0,0,0,2,0,5,14,13,9,0,0,0,12,1,
632  0,0,1,0,13,0,4,10,0,7,8,0,0,0,15
633  };
634 
635  const int d15_120_13[] = {
636  // Size: 15 x 15
637  15,
638  // Pre-assigned fields
639  0,7,0,15,10,0,0,8,9,0,12,14,0,0,0,
640  0,0,5,2,0,12,8,0,0,7,0,0,11,0,4,
641  7,10,0,12,0,0,0,3,0,0,0,13,9,1,0,
642  0,0,9,0,14,10,3,11,0,0,0,5,0,6,0,
643  12,8,11,14,0,3,0,5,0,9,0,0,0,0,0,
644  6,0,12,5,3,0,0,15,13,0,2,0,0,0,0,
645  0,0,0,0,1,0,14,0,10,3,9,0,0,13,6,
646  0,0,4,0,0,9,1,0,12,0,0,6,2,5,0,
647  2,1,0,0,0,8,6,7,0,15,0,0,0,10,0,
648  0,4,14,0,0,0,0,0,2,8,5,0,12,0,11,
649  10,0,0,0,5,13,15,0,11,0,0,3,0,2,0,
650  15,9,2,0,0,0,0,0,8,0,11,0,14,0,1,
651  0,15,0,13,11,0,12,0,0,0,8,0,4,0,14,
652  0,0,0,9,4,0,0,6,0,2,0,10,0,15,13,
653  8,0,0,0,0,15,0,0,0,13,14,1,6,0,10
654  };
655 
656  const int d15_120_14[] = {
657  // Size: 15 x 15
658  15,
659  // Pre-assigned fields
660  1,0,9,0,0,13,2,10,0,0,0,14,0,0,0,
661  0,0,2,8,6,0,13,4,0,0,0,3,0,5,0,
662  8,11,5,0,0,0,0,0,0,13,6,0,0,1,3,
663  13,0,10,0,0,0,4,5,0,3,0,9,0,0,6,
664  5,3,0,11,13,0,12,0,7,0,0,0,0,2,0,
665  0,6,13,0,0,0,0,0,15,9,14,0,12,4,0,
666  11,14,0,0,12,6,8,0,2,4,0,0,0,3,0,
667  0,0,0,0,0,14,0,0,6,10,15,5,13,0,9,
668  0,0,0,0,4,12,0,9,8,0,0,2,15,0,7,
669  12,0,0,0,0,5,3,15,9,2,0,0,4,0,0,
670  0,0,0,4,1,0,0,0,0,12,9,7,2,0,15,
671  0,12,0,9,14,10,0,0,0,0,4,0,6,7,0,
672  15,10,0,3,11,0,0,0,0,0,0,0,9,14,12,
673  0,8,1,2,0,15,0,6,11,0,3,0,0,0,0,
674  0,0,11,13,0,0,7,1,0,0,5,4,0,0,14
675  };
676 
677  const int d15_120_1[] = {
678  // Size: 15 x 15
679  15,
680  // Pre-assigned fields
681  4,0,0,0,8,0,2,14,0,0,10,0,12,3,0,
682  7,0,0,0,13,0,14,0,3,8,0,9,0,0,4,
683  6,15,0,13,11,14,4,0,0,0,12,0,0,0,2,
684  5,0,0,10,0,12,6,8,0,0,0,0,7,13,0,
685  11,1,13,0,3,0,15,0,0,0,0,0,0,8,6,
686  0,0,14,3,0,0,0,0,1,0,0,11,10,15,0,
687  0,8,7,14,9,0,0,0,0,1,0,12,4,0,0,
688  15,9,0,0,10,13,0,5,6,2,0,0,0,0,0,
689  0,5,15,8,0,0,0,0,14,0,11,0,0,2,12,
690  0,0,12,0,0,0,7,9,0,5,0,13,2,14,0,
691  0,2,1,0,0,0,0,3,15,13,14,7,0,0,0,
692  0,0,4,1,0,10,0,12,0,14,9,0,0,0,11,
693  14,0,0,0,0,5,0,4,7,0,0,15,9,0,10,
694  0,6,0,15,0,7,0,0,0,3,2,8,0,0,13,
695  0,0,0,0,6,15,5,0,10,0,4,0,11,1,0
696  };
697 
698  const int d15_120_2[] = {
699  // Size: 15 x 15
700  15,
701  // Pre-assigned fields
702  5,0,0,4,0,9,10,0,2,3,14,0,0,0,0,
703  14,5,2,0,0,0,0,0,11,4,3,10,0,0,0,
704  11,10,0,5,0,12,7,14,0,0,0,0,13,0,0,
705  0,0,0,15,12,0,0,0,7,0,2,11,0,5,6,
706  0,13,0,0,0,0,0,7,3,0,8,14,0,6,9,
707  6,0,0,0,5,0,3,9,15,0,0,0,0,14,2,
708  3,0,0,0,0,11,4,0,13,2,0,0,1,0,14,
709  0,1,13,2,3,14,0,0,0,0,5,0,0,10,0,
710  0,0,5,0,9,6,0,15,0,10,0,13,3,0,0,
711  7,0,1,13,0,0,9,6,0,11,0,0,8,0,0,
712  2,0,11,0,7,0,0,4,6,0,0,5,0,8,0,
713  0,14,0,0,10,15,0,0,0,7,13,0,0,3,11,
714  0,8,9,0,4,2,12,0,0,0,0,0,15,7,0,
715  0,4,15,14,0,0,0,0,0,0,7,3,6,0,13,
716  0,0,0,1,0,0,13,11,0,14,0,15,9,0,12
717  };
718 
719  const int d15_120_3[] = {
720  // Size: 15 x 15
721  15,
722  // Pre-assigned fields
723  0,0,13,14,0,0,0,6,0,1,9,0,0,10,2,
724  2,0,10,5,0,0,0,13,14,12,6,0,0,0,0,
725  0,0,0,8,4,6,9,0,0,0,0,13,0,1,10,
726  0,0,0,0,7,5,1,8,0,0,12,0,10,0,14,
727  11,2,0,15,0,0,0,12,0,0,0,10,13,8,0,
728  10,7,0,0,0,2,0,0,0,0,0,3,12,11,13,
729  14,0,0,0,3,9,5,0,10,15,0,0,0,0,7,
730  9,0,5,0,0,0,0,0,15,7,1,8,0,0,12,
731  1,0,4,3,0,0,15,14,12,0,0,0,0,0,6,
732  5,13,3,0,0,0,8,0,0,0,0,12,1,4,0,
733  0,0,0,1,10,3,0,0,0,8,14,7,4,0,0,
734  0,4,0,0,0,0,0,11,2,0,5,15,14,6,0,
735  0,6,12,0,1,15,10,0,9,0,13,0,0,0,0,
736  0,3,0,6,14,11,0,0,4,9,0,0,2,0,0,
737  0,5,11,0,6,0,7,9,0,10,0,0,0,13,0
738  };
739 
740  const int d15_120_4[] = {
741  // Size: 15 x 15
742  15,
743  // Pre-assigned fields
744  15,0,0,3,2,0,4,0,0,6,0,0,0,13,9,
745  12,10,0,9,0,13,0,0,0,0,1,11,15,0,0,
746  0,0,9,10,1,0,8,0,0,12,0,0,7,0,5,
747  5,0,3,0,9,0,0,6,7,13,0,0,8,0,0,
748  0,4,0,0,3,14,0,8,0,0,12,0,0,2,6,
749  0,0,0,0,8,0,9,3,0,5,15,6,0,11,0,
750  0,9,0,0,0,4,1,0,0,0,2,0,14,0,10,
751  0,0,6,1,0,11,3,5,0,0,0,7,0,15,0,
752  0,6,1,0,10,12,0,13,14,0,7,0,0,0,0,
753  0,0,0,0,0,0,5,0,12,3,8,14,4,7,1,
754  6,0,14,8,0,15,0,0,5,7,0,0,0,1,0,
755  14,8,0,0,0,0,11,7,13,0,0,12,1,0,0,
756  8,7,0,0,0,5,0,11,0,0,14,0,2,0,15,
757  13,0,2,15,5,0,0,0,11,1,0,8,0,0,0,
758  0,11,13,5,0,0,0,0,10,0,0,3,0,8,12
759  };
760 
761  const int d15_120_5[] = {
762  // Size: 15 x 15
763  15,
764  // Pre-assigned fields
765  7,4,0,0,0,9,0,14,0,0,2,0,13,3,0,
766  0,8,4,0,0,1,10,0,0,11,0,14,0,0,13,
767  2,0,15,0,1,5,7,0,8,0,0,0,0,0,6,
768  8,11,0,0,0,0,12,0,3,0,9,0,5,7,0,
769  0,13,5,10,0,7,3,0,0,0,0,0,11,0,9,
770  0,0,0,5,6,14,9,13,15,0,0,1,0,0,0,
771  0,10,14,0,15,8,0,2,7,0,0,0,0,4,0,
772  0,1,0,0,0,0,0,8,0,4,7,5,0,10,14,
773  0,0,0,3,5,0,0,12,9,8,10,0,0,2,0,
774  15,0,0,0,3,0,0,0,2,6,5,11,12,0,0,
775  13,0,0,9,0,0,6,0,0,0,0,15,2,11,12,
776  0,0,0,6,14,13,15,9,0,0,0,0,4,0,3,
777  5,0,13,8,4,0,0,15,0,0,0,9,1,0,0,
778  12,15,7,0,0,0,1,0,11,5,3,0,0,0,0,
779  0,0,1,13,0,0,0,0,0,12,8,6,0,9,10
780  };
781 
782  const int d15_120_6[] = {
783  // Size: 15 x 15
784  15,
785  // Pre-assigned fields
786  13,0,7,11,0,12,0,0,3,5,0,6,0,0,0,
787  0,13,0,0,3,0,0,12,11,0,7,0,1,0,15,
788  0,0,3,5,0,8,7,0,0,0,2,10,0,0,4,
789  15,0,1,0,11,2,9,14,0,0,0,0,0,5,0,
790  4,6,0,0,0,0,0,5,0,0,0,12,8,15,10,
791  0,0,10,6,0,11,0,0,0,14,0,1,3,9,0,
792  0,15,0,0,12,3,0,6,8,0,9,0,7,0,0,
793  7,11,0,0,0,0,0,0,14,10,5,2,0,0,12,
794  11,0,0,0,0,0,4,0,10,9,3,8,0,0,0,
795  0,8,0,14,10,0,0,13,9,12,0,0,15,0,1,
796  0,0,0,7,15,13,3,10,0,0,12,0,6,0,0,
797  0,0,0,2,0,0,5,9,1,8,0,0,0,7,14,
798  0,7,15,4,2,1,8,0,0,0,0,0,0,13,0,
799  2,9,6,0,0,0,0,0,0,0,4,0,10,1,13,
800  12,0,2,0,5,0,6,0,0,11,0,15,0,3,0
801  };
802 
803  const int d15_120_7[] = {
804  // Size: 15 x 15
805  15,
806  // Pre-assigned fields
807  10,0,0,0,0,6,4,0,0,5,0,9,0,8,15,
808  0,0,11,14,0,12,3,0,0,0,0,0,6,2,8,
809  0,14,2,0,0,0,0,0,6,3,0,11,8,0,13,
810  9,0,0,2,0,0,8,1,0,0,4,15,11,0,0,
811  3,2,0,0,4,0,0,0,0,0,0,10,15,14,12,
812  12,0,0,9,5,7,0,0,0,0,6,4,0,1,0,
813  0,0,4,0,0,5,15,3,2,11,0,0,9,0,0,
814  0,1,0,5,10,0,14,0,0,12,0,0,0,3,9,
815  0,0,0,0,0,0,11,5,12,0,1,13,3,7,0,
816  1,6,0,0,14,0,0,11,8,0,12,0,0,10,0,
817  4,15,0,0,0,2,0,6,0,13,7,0,0,0,1,
818  0,11,5,1,8,13,0,0,3,0,0,0,12,0,0,
819  0,0,8,3,1,4,0,0,0,14,13,0,0,0,10,
820  0,0,3,15,0,0,13,4,5,0,11,8,0,0,0,
821  5,8,12,0,7,0,0,10,14,9,0,0,0,0,0
822  };
823 
824  const int d15_120_8[] = {
825  // Size: 15 x 15
826  15,
827  // Pre-assigned fields
828  0,0,5,11,0,6,0,12,0,0,0,0,3,15,9,
829  8,0,9,0,0,12,0,0,0,13,5,0,0,0,2,
830  7,0,0,8,9,11,3,10,0,0,15,0,0,0,12,
831  0,0,1,12,0,7,9,0,0,8,0,2,0,0,10,
832  4,0,8,3,0,0,7,0,0,1,0,0,0,13,11,
833  0,6,7,0,0,0,11,2,8,0,1,0,0,5,0,
834  0,13,0,9,0,0,10,5,6,0,4,7,0,0,0,
835  5,0,0,0,2,0,0,13,3,0,0,12,15,7,0,
836  0,8,6,2,10,0,0,0,4,0,0,3,1,0,0,
837  11,0,0,0,0,13,0,15,0,12,0,6,0,8,14,
838  0,12,0,0,14,4,0,0,5,6,7,0,10,0,0,
839  0,9,0,0,8,15,0,11,0,3,2,0,0,14,0,
840  0,11,0,10,5,0,8,0,9,0,0,1,4,0,0,
841  13,15,11,0,0,0,0,0,10,0,0,4,7,9,0,
842  15,0,0,0,6,0,5,0,0,11,13,0,2,0,4
843  };
844 
845  const int d15_120_9[] = {
846  // Size: 15 x 15
847  15,
848  // Pre-assigned fields
849  0,0,1,10,3,0,0,14,0,0,0,0,5,8,12,
850  9,15,0,8,0,0,0,13,7,0,0,1,0,0,6,
851  6,14,0,7,0,3,0,0,0,13,0,0,4,0,11,
852  12,10,0,0,0,0,0,0,0,11,3,4,2,0,15,
853  0,0,0,13,9,11,10,0,2,0,12,7,0,0,0,
854  0,0,10,9,0,8,0,2,11,0,0,0,3,5,0,
855  0,0,0,0,14,6,5,0,8,0,13,2,12,0,0,
856  0,0,11,0,0,13,3,0,5,8,0,15,0,14,0,
857  0,1,0,0,5,0,8,6,0,9,2,0,0,7,0,
858  4,7,0,0,0,9,1,0,0,6,0,0,0,15,5,
859  0,3,9,0,0,7,0,0,1,12,0,14,0,0,10,
860  0,0,15,5,13,0,14,0,3,0,0,12,0,0,1,
861  10,0,6,0,0,0,4,8,0,7,14,0,0,2,0,
862  15,0,0,0,2,0,0,4,0,0,1,0,7,3,13,
863  0,9,2,4,1,0,0,5,0,0,10,0,15,0,0
864  };
865 
866  const int d20_187_0[] = {
867  // Size: 20 x 20
868  20,
869  // Pre-assigned fields
870  10,0,0,2,15,14,16,4,19,0,17,0,0,0,0,0,0,9,18,6,
871  0,5,15,19,2,1,12,0,6,0,4,0,7,0,0,0,0,20,13,0,
872  0,17,9,0,0,20,14,0,7,8,6,3,0,0,11,12,0,0,0,18,
873  18,0,11,8,20,0,0,0,0,17,12,0,6,2,0,16,7,0,0,0,
874  0,0,16,6,0,17,3,0,0,0,0,0,19,1,9,18,10,7,0,8,
875  14,15,5,0,9,0,0,0,0,16,0,11,1,4,13,0,0,0,3,0,
876  6,0,7,17,5,0,18,3,0,14,0,0,10,0,19,2,0,0,0,11,
877  0,19,0,0,7,6,8,12,18,0,20,0,0,0,17,0,0,0,5,16,
878  0,20,0,0,11,0,0,18,16,0,13,0,4,10,8,9,17,0,0,0,
879  16,0,4,0,17,0,11,0,0,20,18,19,5,15,0,0,0,3,0,1,
880  15,9,0,0,0,13,0,0,0,3,0,4,14,6,5,0,12,0,10,7,
881  11,8,0,3,19,4,0,14,0,15,0,0,9,7,6,0,0,12,0,0,
882  0,18,17,20,0,7,0,0,0,5,0,14,0,13,2,10,3,4,0,0,
883  5,3,18,0,1,0,0,19,8,0,11,0,0,0,0,14,2,0,7,0,
884  20,1,0,0,0,11,6,0,13,19,0,12,0,0,7,0,0,18,16,10,
885  0,0,10,11,0,12,4,8,14,9,15,17,0,0,0,6,19,0,0,0,
886  0,0,14,18,0,0,15,16,0,0,0,10,12,0,0,19,9,11,17,2,
887  0,12,0,9,0,0,10,0,4,0,1,6,0,0,0,17,14,13,19,0,
888  0,0,0,14,12,0,0,15,10,0,0,7,0,9,1,0,0,19,8,20,
889  4,0,0,0,0,2,0,1,15,12,3,5,13,19,0,0,8,0,0,17
890  };
891 
892  const int d20_187_10[] = {
893  // Size: 20 x 20
894  20,
895  // Pre-assigned fields
896  4,0,1,0,9,15,0,0,5,0,14,12,18,17,0,0,13,0,19,0,
897  19,0,0,20,0,11,18,15,0,0,7,8,0,9,0,6,0,10,3,0,
898  0,0,10,18,13,0,0,4,14,0,0,0,17,0,3,8,16,0,6,0,
899  15,1,0,8,0,0,13,0,12,11,6,0,4,0,0,0,0,3,2,20,
900  10,0,11,9,14,5,2,0,0,13,15,0,6,0,0,0,0,20,1,0,
901  13,10,0,0,17,0,0,0,9,1,0,0,8,0,20,16,5,0,4,0,
902  0,6,0,19,18,0,0,3,10,0,12,0,0,7,16,0,14,0,17,0,
903  20,0,0,11,3,19,0,12,8,0,0,16,0,15,0,13,0,0,10,1,
904  9,20,0,5,0,0,10,0,0,17,0,0,16,0,8,0,4,6,0,15,
905  0,17,3,15,0,2,0,6,7,8,19,0,0,0,5,0,0,18,9,0,
906  2,13,0,0,0,4,3,17,0,20,9,0,1,10,0,0,15,0,0,11,
907  0,0,0,0,0,13,8,11,4,7,0,1,0,20,6,12,18,0,0,16,
908  0,14,4,0,0,0,0,9,20,0,0,7,12,0,13,18,0,0,5,19,
909  0,0,18,3,0,20,16,7,0,19,0,2,0,0,10,14,17,8,0,0,
910  18,0,13,0,10,7,0,0,3,0,0,15,9,11,0,2,0,12,0,5,
911  11,19,0,12,4,14,0,0,18,0,17,0,0,0,0,20,2,5,0,0,
912  0,18,12,0,11,0,1,16,0,5,4,17,0,14,19,0,0,7,0,0,
913  3,0,19,10,0,17,0,0,0,16,5,11,2,12,0,0,6,0,0,7,
914  0,0,14,0,7,0,5,0,0,10,0,9,0,8,15,11,0,17,0,4,
915  0,8,16,0,1,0,17,14,0,0,13,20,3,2,0,4,0,0,0,10
916  };
917 
918  const int d20_187_11[] = {
919  // Size: 20 x 20
920  20,
921  // Pre-assigned fields
922  8,0,0,0,9,20,0,14,5,13,0,0,15,0,0,19,11,0,18,17,
923  14,0,0,2,1,0,12,0,0,19,10,0,8,0,0,17,0,9,7,16,
924  0,0,12,8,0,0,2,17,0,0,18,0,9,5,19,0,0,6,0,3,
925  9,11,0,19,4,0,0,0,14,5,0,0,0,0,13,1,12,0,0,7,
926  15,0,0,14,12,18,0,0,0,0,0,13,19,4,0,0,8,0,11,10,
927  0,14,3,15,0,11,4,0,0,0,0,12,20,8,1,0,10,0,0,13,
928  17,0,0,4,2,3,7,13,0,0,0,6,0,10,0,0,0,1,0,19,
929  16,0,15,0,0,0,0,20,2,4,8,19,18,0,5,0,0,0,13,6,
930  3,8,0,17,19,4,14,0,10,0,7,0,13,0,0,0,16,0,12,0,
931  4,7,0,0,0,10,0,6,12,0,0,2,0,9,14,8,15,0,16,0,
932  10,0,17,0,0,12,0,0,0,0,19,9,4,0,6,0,1,2,14,11,
933  0,0,13,0,0,5,10,11,9,20,0,7,0,19,2,15,0,0,0,12,
934  0,3,6,0,0,2,0,0,16,0,13,4,0,0,0,18,7,5,1,0,
935  0,18,16,0,3,0,0,8,11,0,4,0,0,13,0,0,5,10,17,0,
936  0,9,0,7,20,1,0,2,15,12,16,0,0,14,11,0,0,0,0,4,
937  19,20,4,18,11,0,16,10,0,0,0,0,0,6,0,3,0,17,0,0,
938  0,19,5,20,0,0,13,12,0,6,0,16,0,11,18,0,2,8,0,0,
939  0,0,9,12,0,8,0,15,0,18,2,0,16,0,17,14,0,19,3,0,
940  5,0,14,0,7,0,20,0,8,16,0,10,11,0,0,6,3,18,0,0,
941  0,4,0,0,18,0,19,0,7,3,12,11,14,0,20,2,0,0,15,0
942  };
943 
944  const int d20_187_12[] = {
945  // Size: 20 x 20
946  20,
947  // Pre-assigned fields
948  0,0,16,0,0,18,13,20,0,9,14,0,0,15,4,0,0,1,0,10,
949  0,0,0,5,14,7,0,9,4,8,1,16,13,0,0,0,0,0,19,17,
950  0,0,11,4,17,1,0,19,0,20,7,14,10,2,0,0,0,0,0,6,
951  0,14,12,16,0,19,0,0,0,0,0,0,3,8,1,11,0,7,4,15,
952  18,0,0,11,13,3,5,0,17,0,16,0,14,0,12,8,20,0,0,0,
953  0,17,0,10,12,6,3,0,0,0,0,2,18,14,0,16,0,0,9,4,
954  11,13,0,0,0,0,0,7,15,0,0,1,0,0,5,14,6,0,18,20,
955  4,11,7,15,0,0,12,0,0,0,0,10,0,1,3,6,0,2,8,0,
956  12,0,4,0,0,0,16,3,14,0,0,0,20,19,0,9,0,10,15,18,
957  0,0,20,0,0,4,0,14,18,1,13,11,2,0,0,0,17,19,0,0,
958  10,19,0,0,2,0,1,0,0,16,3,0,0,18,7,0,0,17,12,0,
959  0,8,0,1,0,5,7,0,9,15,0,0,11,20,17,0,19,0,0,12,
960  1,0,3,0,6,0,0,0,0,0,20,17,12,13,8,0,5,4,0,14,
961  16,0,18,6,0,17,11,0,0,3,5,0,0,4,0,10,2,0,7,0,
962  5,6,0,0,16,0,0,12,0,0,0,9,0,0,18,3,7,20,2,1,
963  0,0,9,0,0,16,17,0,3,13,8,0,0,7,0,4,0,18,10,0,
964  8,0,0,13,0,0,9,2,10,17,0,19,7,0,11,0,15,0,0,0,
965  6,12,0,17,18,14,0,11,5,0,0,4,0,0,0,19,9,0,0,3,
966  0,18,0,9,4,0,15,6,0,12,0,13,0,0,0,0,11,14,3,0,
967  0,9,17,0,5,0,0,10,13,0,11,0,1,0,2,7,18,15,0,0
968  };
969 
970  const int d20_187_13[] = {
971  // Size: 20 x 20
972  20,
973  // Pre-assigned fields
974  1,0,8,14,0,0,0,10,0,0,19,7,0,18,0,20,16,0,5,12,
975  0,19,10,0,13,7,0,0,0,0,17,12,6,0,9,0,2,18,0,5,
976  4,2,0,9,20,0,0,0,13,5,16,0,0,19,0,0,8,11,0,7,
977  9,0,7,19,0,8,0,0,0,0,0,0,10,17,0,0,13,20,6,4,
978  11,20,0,6,0,0,18,1,16,2,13,0,9,15,0,0,0,0,0,3,
979  0,11,0,0,3,9,0,14,0,0,6,0,0,1,0,19,12,17,18,0,
980  2,0,0,7,0,13,0,15,0,0,18,16,3,0,14,5,0,0,9,6,
981  0,0,9,0,0,0,3,6,0,16,2,0,8,0,4,10,0,0,15,18,
982  6,0,1,12,0,16,0,0,15,0,10,8,14,0,5,0,19,0,4,0,
983  0,13,0,0,2,6,1,0,11,0,7,4,16,0,19,0,0,15,0,0,
984  17,0,12,0,0,19,13,0,18,14,0,0,0,5,0,3,1,2,0,10,
985  12,4,0,0,0,15,5,3,8,0,0,1,0,10,0,18,17,0,7,0,
986  0,0,0,8,0,14,4,0,0,11,0,18,0,0,20,16,15,12,3,0,
987  20,6,18,13,4,0,10,12,0,8,0,0,17,0,0,0,0,3,0,19,
988  0,1,0,0,11,20,17,0,6,3,0,9,19,8,18,0,0,0,12,0,
989  7,14,15,16,8,0,0,18,0,20,0,0,0,11,10,13,0,0,0,0,
990  0,0,19,0,0,0,16,11,7,12,20,3,13,0,0,14,5,10,0,0,
991  0,18,14,2,5,0,9,0,19,0,0,11,0,0,3,0,10,7,0,8,
992  0,0,0,0,19,0,15,20,9,17,0,0,0,2,16,11,0,13,14,1,
993  19,16,3,20,15,0,0,0,17,0,0,14,2,4,0,1,0,0,0,0
994  };
995 
996  const int d20_187_14[] = {
997  // Size: 20 x 20
998  20,
999  // Pre-assigned fields
1000  13,11,3,0,0,14,16,7,20,0,0,4,0,0,0,0,0,5,12,0,
1001  12,0,0,18,2,0,0,0,16,19,0,0,10,5,0,4,14,11,8,0,
1002  15,2,0,0,7,0,0,0,0,8,0,14,0,11,6,17,16,0,20,0,
1003  0,0,0,0,0,0,7,15,10,17,16,0,8,0,0,11,6,2,13,0,
1004  20,7,0,1,16,0,15,19,0,0,0,17,0,10,0,5,0,12,0,11,
1005  14,6,4,0,0,17,0,0,0,2,9,0,0,0,18,0,10,0,1,5,
1006  19,10,0,0,0,0,2,14,0,5,0,18,0,17,0,6,1,15,0,20,
1007  0,14,7,20,15,0,8,0,11,13,0,0,5,12,0,0,0,19,0,0,
1008  0,0,13,0,20,15,3,0,0,0,18,0,0,19,4,10,17,14,0,12,
1009  0,18,8,0,4,13,0,0,6,0,3,12,17,16,1,0,19,0,0,0,
1010  0,15,0,19,17,4,0,9,0,0,1,0,6,0,0,2,0,0,18,3,
1011  0,0,9,6,19,5,0,2,0,1,0,13,12,14,10,0,0,0,3,0,
1012  3,0,0,0,0,20,1,18,9,0,19,0,0,6,0,15,11,0,16,17,
1013  10,3,0,0,8,0,0,4,1,6,15,0,11,0,0,13,0,0,5,2,
1014  0,5,12,14,0,2,0,0,8,0,10,1,13,0,20,0,0,17,19,0,
1015  0,0,20,10,14,6,19,0,0,18,17,0,3,0,16,7,0,0,0,4,
1016  0,0,14,4,0,0,0,8,18,10,0,20,0,0,11,0,7,16,2,19,
1017  2,0,0,0,0,18,17,11,0,7,14,9,15,0,5,19,0,0,0,10,
1018  5,13,11,17,0,7,14,0,15,0,0,3,0,1,19,0,0,10,0,0,
1019  4,0,0,9,0,0,6,13,5,0,2,0,20,0,3,0,18,1,0,0
1020  };
1021 
1022  const int d20_187_1[] = {
1023  // Size: 20 x 20
1024  20,
1025  // Pre-assigned fields
1026  0,6,18,0,16,4,17,0,0,9,3,0,0,0,0,2,0,0,19,13,
1027  0,7,0,13,0,20,0,0,8,16,0,1,18,0,17,14,0,0,4,15,
1028  6,20,3,0,0,14,0,18,17,4,7,16,0,0,0,13,0,0,0,0,
1029  0,0,8,15,0,16,12,19,11,0,0,2,0,0,0,18,0,17,0,1,
1030  1,11,20,17,0,0,3,0,0,6,0,4,0,8,9,0,0,0,16,5,
1031  3,17,0,0,18,7,10,0,19,0,0,0,16,0,0,8,15,1,0,4,
1032  8,0,15,0,0,5,0,12,0,14,11,0,10,4,0,0,18,2,9,0,
1033  5,0,16,0,0,15,0,17,13,1,0,0,7,3,4,0,0,19,0,0,
1034  15,0,0,7,0,1,0,0,6,13,16,20,0,19,0,0,11,8,0,0,
1035  0,18,0,0,3,0,0,0,16,0,14,0,19,0,8,4,10,9,5,0,
1036  0,8,2,19,4,0,9,15,5,12,10,0,14,0,11,0,0,0,0,0,
1037  9,0,0,14,0,8,2,4,0,0,18,0,11,20,19,0,7,0,17,0,
1038  0,0,19,0,8,9,0,0,20,0,0,17,15,1,6,0,4,5,0,14,
1039  0,0,0,12,6,11,0,2,0,5,19,15,0,9,1,0,0,0,8,20,
1040  0,1,9,4,12,0,0,6,0,0,0,0,20,0,0,11,19,3,7,17,
1041  0,4,11,18,13,0,15,0,0,20,5,14,0,0,0,16,0,7,2,0,
1042  17,16,0,0,0,0,0,5,0,0,2,12,0,18,10,9,0,20,6,3,
1043  11,0,0,6,15,0,19,14,0,0,0,3,12,7,2,0,5,16,0,0,
1044  16,10,5,8,1,0,4,0,18,0,0,0,9,0,0,12,3,0,0,7,
1045  0,0,0,0,17,0,6,7,10,0,4,18,0,5,20,0,16,0,15,0
1046  };
1047 
1048  const int d20_187_2[] = {
1049  // Size: 20 x 20
1050  20,
1051  // Pre-assigned fields
1052  0,10,6,19,0,0,7,0,18,5,0,0,14,2,0,11,0,0,0,20,
1053  12,0,1,4,0,7,0,0,2,0,16,0,0,0,11,8,15,0,6,3,
1054  0,7,19,0,0,0,17,0,0,15,1,0,20,5,0,0,12,16,4,10,
1055  18,0,10,11,16,0,9,7,0,0,14,2,0,0,15,0,0,0,8,4,
1056  0,1,5,14,0,17,0,0,9,0,0,0,4,19,7,12,0,3,0,0,
1057  0,0,0,0,11,0,20,9,10,6,2,5,16,7,0,0,0,0,12,19,
1058  0,5,0,18,0,11,0,4,0,20,0,8,3,13,0,9,2,0,0,17,
1059  13,0,9,3,8,15,0,0,6,0,0,18,2,0,4,20,14,0,0,0,
1060  0,18,0,10,15,5,3,11,0,0,19,0,0,17,2,0,0,0,0,12,
1061  0,15,17,0,2,19,0,0,0,9,0,3,0,11,8,18,0,0,10,0,
1062  3,12,13,20,0,8,0,0,0,0,0,17,0,0,0,19,1,11,5,9,
1063  17,13,0,5,0,18,0,0,11,0,7,4,0,15,6,0,3,10,0,0,
1064  0,0,0,0,18,6,10,16,20,2,11,13,0,0,5,14,0,12,0,0,
1065  0,0,0,0,17,0,19,15,0,1,0,0,0,0,3,16,6,14,13,2,
1066  6,0,0,17,19,0,16,0,0,13,20,0,10,12,0,0,4,15,1,0,
1067  7,0,20,0,0,13,0,18,16,0,5,0,12,0,0,6,9,2,3,0,
1068  19,0,8,13,20,0,1,0,0,10,15,12,0,0,0,0,5,0,14,7,
1069  16,11,18,0,12,0,5,8,13,19,0,14,7,0,0,0,0,6,0,0,
1070  20,14,0,0,0,0,13,2,4,11,18,0,6,0,17,0,0,19,0,0,
1071  4,2,0,0,1,14,0,3,0,0,0,0,0,9,10,17,7,0,0,13
1072  };
1073 
1074  const int d20_187_3[] = {
1075  // Size: 20 x 20
1076  20,
1077  // Pre-assigned fields
1078  6,0,0,0,0,0,3,13,5,15,9,18,0,16,2,0,0,1,0,0,
1079  0,13,0,10,8,16,0,0,0,9,0,4,15,0,11,0,20,14,0,5,
1080  8,0,2,16,0,0,0,11,1,0,15,19,0,0,0,0,6,0,17,18,
1081  0,3,0,0,12,2,0,10,0,0,19,0,9,4,8,15,11,16,0,0,
1082  7,0,0,0,11,0,1,5,3,8,0,14,2,0,0,4,13,0,0,20,
1083  16,0,0,0,0,4,0,12,8,14,0,2,3,11,7,10,0,0,0,9,
1084  11,12,6,17,0,0,0,0,0,4,10,0,0,5,0,2,0,19,0,15,
1085  2,17,0,5,3,11,0,0,0,16,0,0,18,0,12,8,1,0,0,0,
1086  19,9,1,0,0,15,14,0,12,17,6,0,0,0,18,0,4,0,3,0,
1087  10,20,0,9,0,0,5,16,0,0,8,13,0,7,0,1,0,4,19,0,
1088  0,0,0,15,19,0,0,0,11,13,7,6,0,12,0,0,10,17,2,4,
1089  0,15,8,12,9,0,0,18,0,7,13,0,1,0,16,17,0,3,0,0,
1090  0,10,13,0,0,0,0,6,0,2,0,7,14,18,20,16,0,9,8,0,
1091  1,0,15,4,0,0,12,8,20,0,0,0,0,10,0,3,9,0,13,16,
1092  3,0,9,0,20,13,8,0,0,0,0,0,11,19,0,0,14,12,18,2,
1093  0,0,0,18,17,9,7,0,15,0,12,8,0,0,4,6,0,0,20,0,
1094  0,0,20,0,5,18,15,4,16,6,0,0,0,3,14,9,0,0,1,0,
1095  0,0,18,0,10,0,4,9,2,0,0,12,13,20,15,0,0,0,0,19,
1096  13,16,0,19,7,1,0,0,0,0,0,11,6,0,0,0,17,8,15,14,
1097  0,8,3,0,0,6,20,0,19,0,18,0,16,0,0,0,15,11,12,0
1098  };
1099 
1100  const int d20_187_4[] = {
1101  // Size: 20 x 20
1102  20,
1103  // Pre-assigned fields
1104  0,0,0,0,20,14,12,0,11,2,0,0,9,13,1,0,0,8,19,6,
1105  15,20,0,0,0,3,0,0,0,9,17,0,4,12,5,14,0,16,13,0,
1106  0,0,17,10,0,0,2,0,1,0,0,14,8,6,0,19,7,4,0,9,
1107  13,7,3,0,9,0,4,18,0,5,0,0,0,19,15,0,0,2,0,0,
1108  16,0,0,20,0,0,19,0,5,12,2,0,6,18,0,0,0,0,9,11,
1109  0,10,14,11,3,0,0,8,9,19,12,0,0,4,0,15,0,0,5,0,
1110  0,11,0,14,4,18,0,13,17,3,0,0,0,0,7,6,0,19,0,0,
1111  14,0,0,0,11,17,0,1,0,0,15,5,20,0,0,4,2,0,8,0,
1112  6,16,0,15,0,7,0,11,0,0,1,10,12,3,0,0,4,0,0,13,
1113  0,0,12,1,14,0,13,2,0,0,6,9,17,0,0,0,5,15,20,0,
1114  0,0,13,0,10,0,15,0,8,16,20,0,19,0,9,7,18,0,0,12,
1115  0,3,19,9,0,16,14,0,0,10,0,8,5,0,0,0,12,7,0,18,
1116  1,19,6,0,0,0,9,7,0,0,0,17,14,0,8,0,0,11,16,5,
1117  12,0,0,4,5,2,17,0,3,0,0,7,0,0,0,13,19,0,15,0,
1118  17,0,0,0,18,13,0,19,12,6,0,0,0,0,2,5,16,3,0,15,
1119  19,0,0,17,0,0,0,10,0,18,8,11,0,1,4,0,15,0,3,0,
1120  4,2,9,5,12,0,0,14,15,0,0,0,0,8,10,18,0,0,0,20,
1121  0,15,4,0,0,0,16,17,6,0,7,13,0,10,14,20,9,0,0,0,
1122  0,0,8,0,0,12,0,0,0,4,5,1,16,2,6,0,0,17,11,3,
1123  0,14,20,16,8,11,1,0,0,0,13,3,0,0,0,0,10,0,2,0
1124  };
1125 
1126  const int d20_187_5[] = {
1127  // Size: 20 x 20
1128  20,
1129  // Pre-assigned fields
1130  18,6,3,13,0,7,20,8,0,0,11,0,0,0,0,14,0,15,0,0,
1131  0,0,11,0,5,3,0,17,1,0,0,12,2,7,0,6,18,0,0,20,
1132  0,0,4,0,19,12,9,15,0,10,0,0,14,0,11,8,6,13,0,0,
1133  20,0,2,0,0,0,0,0,10,4,17,8,0,0,14,3,5,12,0,16,
1134  0,8,0,2,0,11,0,19,0,12,3,14,15,16,0,0,0,0,20,17,
1135  2,4,0,0,11,0,6,0,5,0,0,0,0,1,10,17,0,19,3,0,
1136  6,12,10,3,0,16,0,0,0,19,15,2,0,13,5,0,0,0,14,0,
1137  0,0,1,0,0,8,0,10,0,13,6,7,19,17,0,0,3,0,0,14,
1138  0,0,0,5,20,9,0,7,0,16,0,0,13,0,18,0,10,0,15,8,
1139  7,0,0,11,6,19,18,5,0,0,20,17,0,0,0,10,9,0,1,0,
1140  0,1,0,0,4,0,0,0,8,11,7,0,0,5,17,16,0,20,12,9,
1141  3,0,9,8,0,6,0,0,13,0,14,0,0,18,20,15,1,0,0,0,
1142  13,10,0,0,12,0,2,0,14,17,0,11,7,20,8,0,0,0,9,0,
1143  0,3,15,0,13,0,4,6,0,14,8,19,0,0,0,20,0,10,16,0,
1144  8,7,17,0,0,0,0,0,9,0,0,18,0,15,3,5,19,14,10,0,
1145  4,17,0,10,7,0,0,1,0,3,9,16,18,0,0,0,11,0,0,12,
1146  0,0,13,0,0,0,14,20,15,6,0,0,3,8,16,0,0,5,0,4,
1147  16,0,14,17,3,0,12,0,18,0,0,0,0,19,6,0,7,2,0,10,
1148  0,16,0,14,17,0,1,0,0,0,10,0,8,0,0,0,20,3,4,7,
1149  1,2,0,12,0,10,19,4,17,0,0,3,11,0,0,7,0,0,5,0
1150  };
1151 
1152  const int d20_187_6[] = {
1153  // Size: 20 x 20
1154  20,
1155  // Pre-assigned fields
1156  1,0,0,15,3,0,0,7,6,0,0,17,13,0,4,0,20,0,19,0,
1157  0,7,0,0,20,2,12,0,0,0,0,9,6,18,13,0,11,0,8,14,
1158  18,0,16,0,11,0,0,0,1,0,10,20,15,13,14,0,0,0,4,3,
1159  0,0,6,17,4,5,0,8,16,11,0,0,0,3,0,1,9,2,0,0,
1160  0,5,11,4,12,15,0,0,2,3,17,0,20,0,0,7,0,0,0,0,
1161  15,9,12,16,0,0,0,19,0,0,0,0,18,14,3,2,0,1,0,7,
1162  0,4,0,0,7,18,0,1,0,6,0,2,3,0,0,16,0,17,10,15,
1163  0,15,10,0,0,4,18,0,0,1,11,0,0,0,8,5,12,0,17,0,
1164  13,2,19,0,0,12,9,0,0,16,20,0,0,15,6,0,0,11,0,8,
1165  0,12,3,14,0,17,2,6,0,13,0,0,0,19,0,0,0,4,16,11,
1166  9,8,20,0,0,0,4,0,7,0,18,1,0,5,0,12,10,3,0,0,
1167  0,14,0,6,13,0,17,0,11,0,0,19,5,8,0,0,3,0,0,4,
1168  20,0,18,0,0,0,3,0,8,17,1,16,4,0,0,11,0,0,0,19,
1169  7,0,0,20,0,14,0,18,0,9,0,10,0,11,16,0,13,15,0,2,
1170  0,0,0,19,5,20,0,9,0,14,2,18,0,4,7,0,0,0,12,10,
1171  12,0,0,10,0,0,0,2,14,0,4,8,19,0,0,13,16,5,0,0,
1172  0,16,0,3,19,0,0,5,18,0,15,0,0,6,0,10,0,14,7,20,
1173  2,0,14,0,0,0,11,10,0,12,6,0,7,0,0,19,15,8,18,0,
1174  11,19,0,0,0,16,20,0,0,7,0,0,14,0,12,17,8,9,13,0,
1175  14,0,0,0,6,10,1,17,15,0,0,12,0,0,20,0,5,0,2,0
1176  };
1177 
1178  const int d20_187_7[] = {
1179  // Size: 20 x 20
1180  20,
1181  // Pre-assigned fields
1182  3,10,14,5,0,0,0,7,0,0,9,0,1,6,13,8,0,11,0,0,
1183  18,0,9,20,0,14,0,10,0,0,0,7,4,0,0,0,12,0,2,15,
1184  0,1,0,0,12,19,0,0,13,4,0,0,0,3,10,0,14,7,15,11,
1185  0,14,0,0,9,0,5,0,0,15,8,0,0,12,4,18,13,1,10,0,
1186  11,17,18,0,1,0,0,2,19,0,0,0,13,5,0,9,6,0,0,0,
1187  0,11,0,1,0,0,8,4,15,0,5,0,2,17,0,0,0,13,14,6,
1188  1,0,0,4,6,0,17,0,10,7,19,0,9,8,0,16,2,0,0,0,
1189  14,0,12,19,0,10,0,0,8,20,0,0,17,0,0,4,15,6,18,0,
1190  4,0,11,6,0,16,2,5,0,0,0,15,0,0,0,0,8,17,13,20,
1191  16,20,0,13,19,3,1,0,12,8,18,17,0,0,0,7,0,0,0,0,
1192  0,0,0,17,0,0,3,0,4,9,11,0,0,14,0,15,0,16,5,18,
1193  10,2,5,0,0,0,15,20,16,17,0,19,3,13,0,1,0,0,0,0,
1194  0,0,16,0,0,13,0,11,0,3,14,10,7,15,0,0,5,19,0,12,
1195  0,0,0,18,5,17,12,0,0,13,2,0,0,16,6,3,20,0,0,7,
1196  15,0,6,3,0,0,13,1,0,10,0,20,16,0,11,0,0,8,7,0,
1197  0,9,17,0,13,0,0,0,0,0,7,0,18,19,5,6,11,0,0,4,
1198  0,16,3,0,11,8,7,6,0,0,0,4,0,0,17,0,0,9,20,0,
1199  0,0,0,16,3,20,9,17,0,0,0,1,0,0,12,19,0,0,8,5,
1200  19,8,0,0,14,4,0,12,5,1,0,3,0,0,7,0,0,15,0,9,
1201  13,18,2,0,7,0,0,0,1,0,10,5,15,0,14,0,3,0,0,0
1202  };
1203 
1204  const int d20_187_8[] = {
1205  // Size: 20 x 20
1206  20,
1207  // Pre-assigned fields
1208  7,16,8,19,0,0,0,5,4,0,0,0,11,3,12,9,0,0,0,18,
1209  0,0,7,18,0,0,0,20,0,3,0,8,10,9,0,0,13,14,1,17,
1210  18,0,13,0,9,0,8,4,11,0,0,0,3,12,0,5,16,6,0,0,
1211  14,3,2,9,0,0,0,10,0,0,0,4,0,0,1,0,11,18,17,6,
1212  0,0,12,8,0,0,9,3,1,0,0,15,13,19,14,6,0,0,0,0,
1213  4,0,18,0,13,0,6,14,7,0,0,12,16,0,20,3,0,0,8,0,
1214  0,13,0,15,0,3,10,0,8,0,5,0,0,0,9,0,4,20,7,1,
1215  10,19,3,0,0,9,0,0,14,2,7,18,0,4,17,0,0,0,0,20,
1216  0,0,10,0,12,18,0,7,16,17,0,0,0,0,0,13,6,2,19,11,
1217  6,18,0,11,0,0,0,12,0,0,0,13,17,15,2,7,0,0,20,5,
1218  0,4,5,2,15,12,14,0,0,0,3,0,0,18,0,1,19,7,0,0,
1219  0,2,0,20,0,4,0,0,17,7,13,0,5,16,11,0,15,0,9,0,
1220  9,6,0,12,5,13,15,0,0,20,4,0,0,0,0,0,7,0,14,0,
1221  11,0,6,0,4,8,17,0,0,9,16,14,1,2,0,19,0,0,0,0,
1222  20,0,0,14,0,17,0,8,10,0,12,1,0,0,0,0,9,11,3,19,
1223  0,8,0,10,14,0,2,9,0,12,0,3,0,0,16,0,0,0,5,4,
1224  0,0,0,0,17,6,7,18,0,10,15,0,19,5,0,0,0,1,13,0,
1225  5,0,17,0,0,0,13,0,0,14,1,20,8,0,0,2,12,0,0,3,
1226  17,0,0,0,20,0,5,0,18,1,0,7,15,0,0,8,14,13,0,0,
1227  0,9,0,0,1,16,0,0,2,0,20,0,0,7,15,14,0,4,0,8
1228  };
1229 
1230  const int d20_187_9[] = {
1231  // Size: 20 x 20
1232  20,
1233  // Pre-assigned fields
1234  0,6,0,0,1,0,12,0,5,7,19,0,0,15,9,0,17,0,14,0,
1235  4,0,0,2,7,0,19,0,0,0,18,6,8,5,0,12,0,0,20,0,
1236  5,0,16,18,0,8,0,13,0,12,14,0,0,0,10,0,0,11,9,0,
1237  0,9,0,0,17,16,6,0,0,0,0,11,5,3,8,0,0,10,12,4,
1238  0,10,2,11,0,18,0,3,8,0,0,1,0,0,15,0,9,5,0,16,
1239  0,5,0,10,9,0,0,17,7,0,3,18,11,16,0,2,0,0,0,15,
1240  13,3,20,0,11,0,0,14,0,5,0,2,0,8,0,0,15,4,0,0,
1241  1,0,0,0,0,20,11,12,4,0,2,0,9,19,14,0,18,0,17,0,
1242  0,14,19,0,13,6,0,0,0,15,0,0,0,7,20,4,3,1,0,8,
1243  0,2,0,12,0,7,5,0,0,3,0,15,14,0,16,0,19,20,1,0,
1244  6,4,0,0,12,0,10,0,0,0,11,17,18,0,0,20,5,0,0,3,
1245  0,0,12,15,0,0,14,7,11,17,0,0,4,0,0,0,20,8,6,1,
1246  2,0,4,13,0,0,0,5,1,10,17,0,16,18,0,19,0,0,0,9,
1247  10,0,14,0,0,2,18,20,0,6,9,0,0,0,17,8,0,3,4,0,
1248  0,0,17,9,0,11,8,15,3,13,4,0,0,0,18,10,2,0,0,0,
1249  0,19,6,4,0,5,15,0,9,8,0,0,20,0,0,7,0,0,11,0,
1250  0,0,15,1,20,0,0,16,17,0,0,7,10,13,0,0,6,0,18,2,
1251  9,7,0,0,8,0,13,0,6,0,1,4,0,0,11,3,0,12,0,0,
1252  15,0,1,16,4,14,0,19,0,0,6,12,0,9,0,13,0,0,0,5,
1253  11,15,0,0,0,1,0,0,16,0,0,9,0,0,12,14,10,2,5,20
1254  };
1255 
1256  const int d25_264_0[] = {
1257  // Size: 25 x 25
1258  25,
1259  // Pre-assigned fields
1260  6,13,17,0,0,15,10,0,0,4,7,3,0,2,0,0,22,25,14,0,0,1,0,18,19,
1261  22,0,7,4,0,0,0,0,14,17,0,25,0,0,0,0,15,20,3,1,11,0,12,5,13,
1262  0,4,12,0,18,24,17,0,2,11,20,19,0,0,15,0,0,0,0,8,22,25,0,10,16,
1263  20,0,15,19,0,0,5,1,10,2,0,11,0,24,25,14,16,21,0,0,13,0,0,0,18,
1264  2,9,14,0,22,0,0,20,23,24,0,0,0,25,16,4,0,12,17,10,6,0,0,11,0,
1265  3,2,11,20,7,0,6,5,12,0,23,0,18,0,0,0,0,0,0,17,0,24,16,0,4,
1266  0,0,0,6,12,0,7,13,0,0,0,16,0,14,22,5,25,0,8,2,19,21,0,9,10,
1267  14,8,0,5,0,7,0,22,13,0,3,0,23,0,19,0,21,0,0,16,0,11,1,0,17,
1268  0,20,9,12,8,11,1,7,4,0,0,13,0,0,10,0,0,0,6,0,5,0,21,2,0,
1269  0,0,0,0,0,0,0,0,18,1,6,0,25,0,8,20,4,14,21,3,15,9,22,19,2,
1270  0,7,0,0,1,0,21,0,0,0,0,5,0,0,11,16,2,10,0,13,14,17,15,8,22,
1271  1,11,0,0,15,17,23,0,0,3,8,22,0,21,7,24,13,0,10,6,9,0,0,0,0,
1272  11,0,4,0,5,21,2,24,0,18,19,6,0,13,0,1,0,9,0,14,25,0,0,0,0,
1273  5,1,22,11,23,16,0,0,0,0,0,15,0,3,0,9,20,0,25,0,0,2,0,14,8,
1274  12,0,24,0,3,6,0,10,1,16,25,0,13,0,0,21,8,23,0,5,18,22,0,0,0,
1275  8,0,21,0,0,5,14,0,0,15,17,0,20,11,0,0,6,0,18,22,24,4,2,1,0,
1276  0,22,0,0,14,20,16,0,7,12,13,4,21,18,23,11,0,0,0,0,0,0,9,24,0,
1277  0,0,0,15,19,0,0,16,22,0,0,14,11,20,0,8,12,4,0,0,17,3,25,0,21,
1278  16,0,0,8,20,0,0,23,0,13,2,0,12,19,14,22,0,17,0,0,3,0,0,7,9,
1279  7,6,0,14,0,4,15,3,9,21,0,0,10,17,20,0,0,0,12,18,0,0,19,0,0,
1280  10,24,0,25,0,18,0,0,15,19,0,0,2,0,5,13,0,8,23,0,0,12,6,0,3,
1281  0,23,8,0,0,1,0,21,6,0,9,24,16,5,13,0,14,11,0,0,0,19,0,4,0,
1282  0,25,19,23,16,0,4,12,0,0,21,0,7,8,3,0,18,13,2,0,10,0,5,0,0,
1283  4,0,3,17,0,8,25,0,0,0,11,0,1,6,0,23,0,16,19,15,0,5,7,0,24,
1284  0,0,0,13,0,25,0,11,5,20,1,18,8,0,0,10,0,2,4,19,0,0,24,21,0
1285  };
1286 
1287  const int d25_264_10[] = {
1288  // Size: 25 x 25
1289  25,
1290  // Pre-assigned fields
1291  0,24,0,0,4,5,0,21,0,20,9,19,1,0,0,6,0,0,0,16,0,25,3,8,12,
1292  22,17,25,0,0,2,19,0,20,5,1,16,0,18,6,23,0,0,0,24,8,0,15,0,0,
1293  0,22,0,0,0,16,0,17,24,7,10,0,25,15,0,0,21,1,13,8,0,19,0,18,23,
1294  10,4,0,15,9,0,12,7,0,0,3,13,0,0,11,17,25,0,21,0,0,2,18,0,22,
1295  19,5,10,0,18,23,0,0,13,16,0,6,0,17,0,0,2,21,8,7,0,0,0,9,0,
1296  0,0,8,19,2,0,24,3,11,0,0,0,4,0,16,5,0,23,0,12,0,18,7,0,20,
1297  0,14,0,25,17,9,0,0,0,10,0,8,12,0,0,18,22,0,6,3,4,16,0,0,13,
1298  1,0,14,0,0,0,20,0,0,17,4,15,5,13,23,8,0,3,0,0,11,0,9,16,2,
1299  8,20,0,17,0,0,0,11,18,0,0,23,0,4,0,16,7,10,24,0,0,1,13,3,6,
1300  21,15,3,0,0,0,6,2,16,0,17,0,0,9,0,0,12,25,0,0,14,7,0,24,10,
1301  0,19,0,24,11,20,4,0,15,0,7,12,13,16,0,9,18,0,25,0,0,22,0,2,0,
1302  6,0,4,0,0,0,1,0,22,25,20,0,8,0,14,11,5,0,0,0,19,10,12,17,0,
1303  3,0,20,1,7,10,0,15,0,11,0,0,19,0,0,0,0,2,0,14,5,21,24,6,9,
1304  0,0,11,12,24,0,22,23,19,0,25,2,9,14,18,0,17,0,16,1,0,0,0,0,8,
1305  16,0,0,21,22,4,0,0,3,8,0,0,0,1,5,10,6,0,23,0,18,17,0,20,19,
1306  25,21,7,14,0,0,16,10,0,9,6,20,0,0,15,0,0,24,4,0,1,0,19,0,0,
1307  0,2,0,20,0,0,14,6,0,12,19,0,11,0,10,7,8,17,3,0,9,0,0,25,0,
1308  0,0,17,5,0,14,3,0,7,18,0,22,0,10,20,0,15,0,0,11,0,0,6,12,24,
1309  0,0,1,0,0,8,0,19,17,3,16,4,0,21,12,20,24,14,0,0,13,0,22,0,0,
1310  18,0,0,16,1,6,0,0,4,0,0,10,14,23,24,0,0,12,15,25,21,0,5,0,0,
1311  4,0,16,23,10,0,0,0,0,0,2,0,15,0,25,24,0,18,22,0,7,14,0,13,21,
1312  23,12,13,0,0,22,10,0,14,0,8,7,2,5,0,0,19,0,17,20,25,0,21,0,0,
1313  0,1,0,2,23,15,0,5,25,4,21,24,0,3,22,0,0,6,0,13,0,12,0,0,0,
1314  7,16,18,0,12,0,17,8,0,0,0,0,0,0,0,4,11,22,0,6,20,9,10,21,25,
1315  0,0,9,0,20,25,8,18,0,0,0,0,21,2,19,15,0,0,5,10,23,3,0,22,0
1316  };
1317 
1318  const int d25_264_11[] = {
1319  // Size: 25 x 25
1320  25,
1321  // Pre-assigned fields
1322  0,7,1,23,18,22,0,0,19,0,12,25,0,16,0,4,8,0,0,0,5,0,13,21,0,
1323  15,14,0,0,0,10,2,22,4,19,7,0,9,13,20,18,5,0,0,0,0,0,23,0,0,
1324  0,1,3,0,20,18,0,19,0,8,2,0,15,0,0,25,24,11,6,22,0,9,0,23,0,
1325  22,0,14,0,0,3,18,13,0,9,1,0,12,0,0,17,0,25,19,7,0,20,24,2,0,
1326  2,16,20,4,5,14,11,0,21,15,0,0,17,19,0,0,13,0,0,1,0,7,0,0,0,
1327  0,10,6,25,0,0,8,17,5,0,20,0,0,0,1,2,16,15,0,0,0,0,7,9,23,
1328  0,9,4,8,25,0,19,24,0,18,6,7,0,17,22,0,11,0,0,13,16,0,12,0,0,
1329  1,0,0,0,0,2,7,0,3,0,0,13,0,15,8,20,0,14,23,9,12,11,4,5,0,
1330  9,21,25,0,10,16,20,0,0,0,0,11,0,0,24,0,6,19,14,4,13,0,22,0,0,
1331  23,0,0,16,0,17,1,14,10,12,0,15,18,20,0,0,0,0,0,2,21,6,0,0,13,
1332  24,0,0,2,13,8,25,0,0,0,0,17,0,4,18,9,0,20,0,0,0,19,11,6,16,
1333  0,0,0,20,9,6,0,7,15,0,3,14,0,11,0,8,10,0,5,21,0,13,19,0,1,
1334  0,0,0,3,2,0,4,9,14,0,17,16,0,0,21,24,0,7,22,0,6,0,0,8,11,
1335  10,0,0,0,0,0,12,21,16,0,0,2,7,0,0,3,22,23,4,0,8,0,25,20,19,
1336  19,0,2,0,23,0,22,0,20,10,24,6,11,0,0,12,0,0,0,3,0,5,0,13,4,
1337  0,0,13,11,15,0,0,4,0,7,16,0,0,3,14,0,19,1,0,0,22,2,0,25,21,
1338  0,18,7,6,17,12,0,0,0,4,0,8,22,2,5,0,0,13,16,10,0,25,0,0,0,
1339  11,6,0,0,0,15,0,2,0,0,18,0,0,0,10,1,25,24,0,5,23,3,9,22,17,
1340  16,0,0,0,0,0,10,1,22,0,0,0,21,25,23,0,12,8,13,0,2,18,3,0,5,
1341  13,3,9,19,0,11,0,5,18,22,0,23,14,0,2,16,0,0,8,0,7,0,0,0,0,
1342  3,0,5,0,1,0,0,18,0,11,0,10,13,14,7,0,0,4,21,15,17,0,0,12,20,
1343  0,4,22,7,0,0,17,0,0,24,0,18,0,9,13,6,2,0,15,25,0,14,10,0,8,
1344  0,8,0,22,21,0,0,0,13,3,11,20,16,1,0,0,0,12,9,0,14,0,18,10,25,
1345  20,5,0,0,16,13,0,15,24,2,22,0,1,0,3,0,18,0,0,0,19,17,0,7,9,
1346  25,15,8,17,3,24,9,0,0,14,23,0,10,0,0,5,0,18,12,16,0,0,0,19,0
1347  };
1348 
1349  const int d25_264_12[] = {
1350  // Size: 25 x 25
1351  25,
1352  // Pre-assigned fields
1353  11,0,0,22,18,0,0,5,0,8,3,0,4,2,23,0,15,0,25,20,0,14,19,10,0,
1354  3,8,22,20,0,0,2,0,17,1,13,12,23,18,0,0,4,0,0,0,10,5,16,0,0,
1355  24,9,21,0,15,3,0,0,10,0,17,0,13,12,0,6,0,0,22,2,0,23,20,0,0,
1356  0,0,0,23,20,25,6,1,16,19,0,14,0,0,18,8,24,0,21,0,12,0,3,0,13,
1357  0,1,24,0,13,12,18,0,11,0,0,3,0,0,0,0,0,25,0,6,14,10,4,2,23,
1358  16,24,0,12,8,19,0,21,0,6,0,17,5,0,14,0,0,13,15,0,0,0,23,0,20,
1359  0,0,5,6,0,0,23,0,13,0,4,15,10,0,0,0,14,0,19,24,16,12,0,25,18,
1360  0,0,16,0,14,0,11,0,22,0,24,0,1,8,21,3,20,19,0,13,7,2,0,0,25,
1361  5,13,3,0,16,2,17,0,25,23,0,0,19,6,0,21,7,0,0,0,0,0,0,14,9,
1362  23,0,15,0,12,14,20,0,0,2,0,24,18,0,0,0,0,4,11,8,5,6,21,0,0,
1363  21,0,0,0,3,15,7,17,0,0,0,0,0,0,19,14,11,8,12,0,20,16,13,0,2,
1364  19,16,14,0,0,0,0,20,0,24,21,7,0,23,13,15,3,6,9,0,0,25,0,0,17,
1365  14,4,23,5,10,0,0,18,3,0,0,22,0,0,17,9,8,0,16,0,0,15,0,19,1,
1366  6,0,12,15,1,16,0,19,20,4,0,13,21,0,0,0,0,0,10,5,17,0,0,0,11,
1367  0,12,25,0,6,11,0,0,15,3,10,2,22,16,8,0,0,5,0,7,21,0,0,13,0,
1368  12,5,18,0,0,1,0,0,0,0,14,10,0,0,4,11,22,0,0,15,8,24,2,7,0,
1369  0,0,0,10,7,4,1,13,0,18,0,0,0,15,6,24,23,22,2,0,25,0,0,20,0,
1370  0,18,0,3,0,24,0,4,7,16,0,19,6,13,5,12,0,0,0,0,0,1,10,15,22,
1371  0,6,0,8,0,18,0,22,12,0,16,0,2,21,11,0,0,0,5,10,0,7,1,23,0,
1372  0,0,2,0,0,0,5,25,1,10,22,0,0,7,9,23,21,12,0,14,0,0,17,8,0,
1373  0,25,0,0,0,0,0,11,0,14,7,0,0,17,24,18,16,10,3,21,2,0,12,1,15,
1374  0,22,0,14,17,21,12,0,0,0,0,9,0,5,0,20,0,24,0,0,3,19,7,18,16,
1375  13,0,0,25,0,0,24,6,0,0,8,5,17,10,0,16,0,11,0,22,15,0,0,21,14,
1376  10,19,13,11,23,0,3,0,14,0,12,8,15,25,0,0,0,20,0,4,0,22,0,0,21,
1377  15,21,19,2,0,0,14,8,0,9,5,0,0,0,16,4,1,18,13,25,22,0,0,0,0
1378  };
1379 
1380  const int d25_264_13[] = {
1381  // Size: 25 x 25
1382  25,
1383  // Pre-assigned fields
1384  17,15,0,6,0,4,0,23,0,8,0,0,1,21,16,0,12,2,10,18,0,0,0,24,0,
1385  9,0,4,3,22,6,0,21,17,10,0,24,15,0,0,13,0,1,0,11,20,7,0,0,0,
1386  0,11,13,0,10,21,18,0,0,15,0,7,0,16,0,17,0,5,0,0,2,25,0,3,1,
1387  23,16,9,0,0,0,24,14,0,0,0,11,2,7,0,20,8,6,0,12,17,0,5,0,0,
1388  0,25,22,1,6,5,15,0,0,11,2,12,0,3,0,8,0,16,17,20,0,0,0,0,10,
1389  21,13,0,0,0,2,0,0,6,7,0,0,20,18,0,0,17,24,1,0,0,16,14,23,25,
1390  20,2,12,0,0,25,0,0,21,0,0,5,11,17,3,15,23,0,0,19,0,24,9,0,0,
1391  24,0,0,0,23,10,0,2,4,0,0,18,16,9,0,0,0,3,11,1,5,21,8,15,0,
1392  0,12,0,0,0,7,6,20,15,0,0,0,23,0,9,25,13,19,22,14,0,0,16,0,21,
1393  7,4,6,0,0,14,13,9,0,19,16,0,0,0,15,0,22,0,0,21,0,17,0,5,11,
1394  2,0,25,0,0,23,3,8,18,0,17,0,0,0,0,22,0,9,0,10,24,20,15,7,12,
1395  18,10,8,0,16,0,0,0,12,6,3,0,0,0,19,0,11,23,15,7,13,0,22,0,0,
1396  5,0,17,24,9,0,16,19,0,22,4,25,21,0,7,10,0,0,0,0,3,0,6,0,0,
1397  14,0,23,11,12,0,4,0,1,17,20,0,24,2,0,0,0,22,19,0,18,0,0,0,7,
1398  11,0,0,16,1,0,0,0,7,0,22,23,9,0,0,21,18,0,3,13,0,15,4,6,5,
1399  0,0,0,4,25,1,11,0,0,18,12,0,0,22,14,5,2,17,20,6,19,0,0,9,0,
1400  12,17,11,7,14,19,20,0,0,0,15,0,0,25,0,6,0,13,24,0,10,2,0,4,0,
1401  0,0,0,25,3,0,0,0,14,12,0,17,13,8,20,18,9,0,2,0,0,0,1,11,19,
1402  0,22,2,13,18,0,0,7,19,25,14,0,4,0,21,0,10,0,5,0,0,23,0,20,8,
1403  0,20,0,17,8,3,5,24,0,0,21,0,0,12,25,9,0,0,14,0,22,0,18,10,6,
1404  0,0,0,18,0,0,17,1,3,24,0,14,0,13,5,12,0,8,9,0,25,11,0,21,4,
1405  19,14,0,12,7,0,0,25,9,0,0,22,17,0,6,0,0,0,0,0,15,10,2,16,18,
1406  0,0,0,10,17,0,22,5,24,3,1,15,0,0,23,0,21,0,6,0,9,13,0,19,20,
1407  6,7,5,0,0,12,23,22,8,4,25,16,0,0,2,0,24,0,0,3,0,0,21,0,0,
1408  0,0,3,0,0,11,0,0,0,0,19,20,8,6,17,23,7,12,0,25,14,5,24,0,0
1409  };
1410 
1411  const int d25_264_14[] = {
1412  // Size: 25 x 25
1413  25,
1414  // Pre-assigned fields
1415  0,0,11,0,0,18,22,0,24,0,23,0,0,10,17,3,4,6,8,20,2,0,9,25,0,
1416  9,0,13,24,10,20,19,0,0,0,0,0,11,0,25,16,17,0,18,21,0,12,3,0,0,
1417  0,5,0,15,7,0,1,16,13,0,0,17,24,0,22,12,0,2,0,0,0,9,8,19,11,
1418  3,11,0,18,0,0,15,5,23,0,12,0,16,0,0,25,14,4,0,24,13,6,0,0,8,
1419  22,0,8,0,4,0,0,0,0,18,0,0,2,0,21,24,1,25,12,19,3,0,20,5,0,
1420  8,16,6,0,18,2,11,0,0,0,13,7,0,24,12,22,0,21,0,25,23,19,0,0,0,
1421  0,9,0,22,11,0,8,0,20,17,15,4,0,0,10,5,0,0,0,0,18,14,1,6,0,
1422  0,0,10,0,0,17,0,9,0,7,0,11,23,20,15,2,0,0,22,18,19,0,13,0,5,
1423  24,13,0,0,0,15,0,10,17,0,20,21,18,5,4,0,25,0,0,0,0,3,0,11,2,
1424  14,15,23,0,0,0,0,0,4,13,24,0,0,9,0,0,19,10,0,17,11,25,12,22,0,
1425  0,0,0,11,2,23,0,1,15,0,3,16,9,0,0,18,0,24,0,12,25,21,0,20,6,
1426  25,21,1,0,17,5,14,0,8,0,11,0,6,0,0,20,0,0,15,10,0,0,18,4,7,
1427  13,0,0,4,0,3,9,0,21,0,0,2,17,0,14,0,6,0,11,0,20,7,19,1,0,
1428  4,0,0,9,5,1,10,23,0,14,0,0,0,15,0,0,11,13,20,0,21,0,7,17,12,
1429  5,2,0,7,0,8,6,25,12,16,9,18,0,1,0,0,21,0,17,23,0,0,15,0,0,
1430  0,24,0,0,15,10,0,20,0,25,8,1,5,0,19,4,0,14,0,9,6,0,0,0,13,
1431  21,0,7,3,0,0,18,24,1,15,0,0,0,19,0,0,23,16,0,6,10,13,0,0,17,
1432  0,0,22,10,24,0,0,0,0,12,0,20,3,6,9,13,0,11,0,14,16,1,21,0,0,
1433  15,0,12,19,25,0,0,0,0,0,0,6,10,16,18,0,22,9,13,0,8,2,14,0,1,
1434  0,18,21,0,9,0,2,0,25,1,7,24,22,17,0,23,20,0,0,16,0,0,0,8,0,
1435  0,0,0,8,6,0,0,2,11,20,18,15,19,25,0,0,5,0,16,0,4,24,0,23,0,
1436  6,4,0,5,0,0,13,8,0,22,1,9,0,0,0,0,2,18,24,0,0,20,23,16,25,
1437  0,6,3,0,0,19,23,13,22,8,16,12,0,21,7,17,0,0,9,0,0,0,2,0,15,
1438  0,22,2,20,14,9,0,6,7,19,0,0,8,4,0,0,0,17,10,0,0,0,0,3,21,
1439  2,19,16,0,1,7,17,15,0,5,0,0,0,18,13,0,0,8,14,0,0,4,0,0,3
1440  };
1441 
1442  const int d25_264_1[] = {
1443  // Size: 25 x 25
1444  25,
1445  // Pre-assigned fields
1446  7,0,0,10,0,5,9,23,17,0,0,12,18,0,4,15,19,0,0,13,22,0,0,20,24,
1447  0,0,0,21,1,8,14,22,0,0,10,6,7,9,17,25,0,0,13,0,0,16,15,0,5,
1448  14,24,3,18,0,9,0,0,0,17,6,10,0,0,23,0,22,19,15,0,16,7,0,0,1,
1449  0,0,0,3,8,22,10,9,0,0,0,24,20,0,0,21,0,0,4,17,5,1,6,13,0,
1450  18,0,8,0,7,11,0,20,0,0,21,17,0,23,0,1,0,0,10,5,0,14,13,2,19,
1451  15,0,5,0,0,6,23,19,0,0,0,20,24,14,12,0,7,18,22,0,25,2,0,0,0,
1452  2,9,18,25,13,0,0,7,5,0,0,0,0,0,8,0,14,6,0,22,1,3,0,17,0,
1453  0,16,0,0,11,4,19,0,1,13,0,5,15,0,0,23,24,0,0,0,3,0,9,6,7,
1454  8,10,4,22,3,0,0,0,0,21,5,15,0,20,0,6,11,23,0,14,24,0,0,12,0,
1455  13,21,25,0,0,0,0,17,2,7,1,14,0,18,19,20,4,0,0,0,0,8,24,0,22,
1456  0,0,20,14,12,0,13,10,11,24,0,0,23,3,0,17,0,0,7,9,0,21,4,0,18,
1457  9,25,15,0,0,1,0,0,0,23,16,0,17,22,10,3,12,0,5,0,21,6,0,0,0,
1458  6,5,2,23,0,21,0,0,0,0,0,3,4,1,18,0,0,10,24,11,0,0,17,0,9,
1459  12,22,0,0,0,0,5,18,4,10,0,0,19,25,13,0,6,14,0,23,2,0,0,16,0,
1460  0,14,21,2,25,0,0,11,6,3,4,0,9,0,24,0,0,8,0,0,19,0,16,18,15,
1461  16,17,11,4,0,0,22,24,9,0,2,0,0,8,0,0,3,0,0,10,23,25,0,0,12,
1462  0,12,0,0,23,13,2,25,15,16,14,4,0,24,0,10,0,0,11,8,0,0,0,1,0,
1463  1,0,19,0,6,0,12,0,20,11,7,0,25,17,5,24,0,15,0,0,10,0,0,0,8,
1464  0,7,22,24,0,0,0,13,19,12,0,2,1,0,0,0,9,3,20,16,0,15,25,0,11,
1465  0,0,14,0,4,24,0,0,8,0,11,18,0,19,0,5,17,21,16,0,0,13,2,9,0,
1466  0,0,0,15,0,0,21,8,0,18,3,7,11,5,0,0,0,1,0,4,13,9,10,14,0,
1467  3,0,0,0,21,18,8,0,0,22,9,0,5,0,16,0,0,11,19,0,17,0,20,7,23,
1468  17,6,0,7,20,0,1,0,3,25,19,23,0,16,0,0,0,9,21,15,18,0,0,10,0,
1469  25,8,0,5,0,20,4,0,21,0,12,0,2,0,15,13,18,0,17,0,0,0,1,11,16,
1470  0,0,0,16,18,15,3,6,0,2,0,0,0,0,14,7,5,24,0,20,0,19,12,23,0
1471  };
1472 
1473  const int d25_264_2[] = {
1474  // Size: 25 x 25
1475  25,
1476  // Pre-assigned fields
1477  0,0,0,0,0,15,0,16,0,2,0,12,23,0,21,19,6,13,24,10,0,0,9,7,5,
1478  22,0,0,7,18,21,9,2,0,3,1,0,0,11,0,0,0,10,6,13,15,19,0,0,0,
1479  4,13,0,10,0,22,17,0,18,0,0,14,8,0,0,0,15,7,21,0,0,23,12,1,3,
1480  11,9,0,0,15,0,0,0,0,22,0,7,18,25,0,0,4,1,17,12,20,16,0,14,8,
1481  0,5,24,14,0,3,0,10,0,18,17,15,0,0,7,0,13,21,0,1,22,0,4,11,0,
1482  9,18,10,13,0,1,0,7,11,14,20,0,0,23,15,8,3,0,0,0,0,22,0,0,0,
1483  0,25,21,0,3,0,24,18,16,0,0,5,13,0,2,20,0,0,0,8,17,0,0,4,12,
1484  13,3,20,0,2,0,0,0,6,9,12,0,25,19,0,0,18,0,4,0,21,0,0,16,17,
1485  18,21,13,0,16,17,10,20,0,1,7,0,0,0,19,4,25,0,0,0,8,0,0,15,22,
1486  0,0,0,3,5,0,13,0,8,21,10,0,0,0,0,25,14,12,15,24,16,0,7,0,1,
1487  0,8,0,0,11,19,0,0,9,15,23,21,5,2,0,0,0,24,14,4,0,20,10,18,0,
1488  16,17,12,15,6,0,7,3,0,0,0,0,0,13,4,0,0,8,25,11,0,24,22,0,0,
1489  0,0,22,0,21,0,5,0,1,0,16,4,6,18,23,17,0,25,0,7,0,10,0,0,20,
1490  15,2,0,0,7,16,0,0,0,23,0,9,0,0,14,22,19,0,5,0,4,25,20,6,21,
1491  0,0,18,25,0,9,19,12,15,0,13,22,0,17,0,11,23,2,16,21,7,0,0,0,0,
1492  0,0,0,6,24,12,14,0,2,0,0,16,19,9,20,1,10,17,7,0,0,5,8,0,0,
1493  2,11,0,24,19,0,23,15,17,0,25,1,3,0,6,5,0,14,0,0,0,18,0,0,4,
1494  6,0,2,23,0,0,0,11,19,0,0,20,15,22,0,0,16,5,0,0,9,0,1,25,24,
1495  21,20,14,18,0,0,15,0,24,4,0,0,0,8,0,3,0,0,23,22,0,11,13,0,19,
1496  0,0,25,4,22,0,0,0,14,8,11,0,0,12,10,16,24,0,9,15,0,0,0,2,18,
1497  0,16,4,8,14,13,2,17,0,6,0,18,20,0,0,10,1,0,0,23,0,12,0,3,0,
1498  0,4,0,0,0,24,0,21,0,16,6,0,17,1,0,18,0,0,0,3,14,7,11,13,23,
1499  23,0,0,0,25,2,3,13,4,0,8,10,0,5,22,0,0,9,19,0,6,0,18,0,0,
1500  8,0,9,0,0,14,16,6,25,19,24,0,2,0,3,0,0,0,0,0,23,1,17,22,0,
1501  17,1,7,9,0,0,18,0,0,0,0,3,14,0,11,0,5,4,2,0,12,0,16,21,13
1502  };
1503 
1504  const int d25_264_3[] = {
1505  // Size: 25 x 25
1506  25,
1507  // Pre-assigned fields
1508  0,2,3,0,11,9,0,15,18,0,17,13,0,16,7,6,4,0,5,1,0,0,0,0,25,
1509  21,0,0,0,3,0,14,0,11,18,0,10,0,15,0,19,0,2,20,4,8,9,25,0,12,
1510  5,0,14,0,20,0,16,18,17,10,0,2,12,0,0,9,0,24,0,0,0,19,15,0,7,
1511  19,12,0,3,0,25,6,24,16,0,4,20,7,0,9,1,18,0,0,0,14,23,0,0,0,
1512  0,0,6,1,0,12,0,22,0,0,23,24,2,19,11,5,21,0,3,16,0,0,0,17,0,
1513  0,20,0,0,0,10,9,0,12,0,8,14,22,0,0,0,1,6,21,18,2,24,0,11,0,
1514  23,0,9,2,14,8,24,11,22,0,0,0,0,6,0,18,17,0,0,12,25,0,1,0,0,
1515  9,3,0,19,1,0,0,8,6,0,7,23,0,0,24,0,0,0,11,22,0,16,0,25,15,
1516  0,0,5,0,0,24,17,9,7,3,0,0,0,22,16,0,11,0,14,8,12,0,2,21,10,
1517  0,15,0,5,0,0,10,0,21,0,18,0,3,2,19,25,24,8,7,0,17,11,20,0,0,
1518  8,25,4,13,24,0,2,0,0,12,11,0,18,5,21,0,0,1,0,0,0,0,7,0,16,
1519  18,1,0,24,10,0,0,0,0,13,0,0,0,7,0,14,0,3,8,0,22,20,6,23,11,
1520  7,0,10,12,0,0,0,6,19,4,0,0,0,0,8,0,13,0,25,21,18,0,14,15,9,
1521  11,21,24,8,0,2,7,19,0,5,15,9,0,4,0,0,0,0,0,3,0,10,0,16,13,
1522  0,0,13,23,17,22,0,14,0,0,0,21,16,0,4,3,0,25,2,0,15,1,0,6,20,
1523  15,10,0,0,8,4,22,0,20,23,0,11,0,0,0,2,0,19,9,6,0,7,0,0,18,
1524  2,16,15,17,21,7,0,0,0,22,25,19,0,0,0,20,9,0,13,0,6,0,0,24,23,
1525  0,0,0,18,0,19,0,17,0,15,13,22,6,10,25,12,16,20,23,14,0,8,0,0,0,
1526  0,0,23,21,0,0,4,0,1,24,10,0,20,0,0,0,5,15,0,7,0,25,12,13,2,
1527  0,11,21,0,22,15,0,3,0,17,0,7,8,12,0,0,0,23,0,5,20,0,19,9,0,
1528  10,0,0,0,19,0,5,7,23,21,0,6,13,0,2,15,20,0,0,0,16,0,11,3,0,
1529  0,0,0,4,5,23,11,0,0,0,22,0,10,0,17,0,2,18,6,24,0,0,3,19,14,
1530  1,23,0,0,0,0,19,0,8,25,6,0,0,9,18,24,3,11,0,0,13,22,4,12,0,
1531  24,22,2,0,15,0,23,12,14,8,0,0,5,13,0,10,0,7,0,0,21,4,0,0,3,
1532  20,14,7,0,23,5,0,0,0,0,9,0,25,3,15,0,6,10,19,0,0,17,21,0,0
1533  };
1534 
1535  const int d25_264_4[] = {
1536  // Size: 25 x 25
1537  25,
1538  // Pre-assigned fields
1539  8,12,0,0,0,6,2,0,11,0,0,0,16,3,0,21,25,13,15,0,24,10,5,0,7,
1540  23,0,0,20,17,0,22,13,0,19,25,4,14,18,15,0,0,0,0,0,5,0,21,7,16,
1541  10,7,18,6,1,0,9,2,0,22,17,0,0,14,0,0,16,23,0,0,0,21,24,0,0,
1542  0,0,16,12,0,17,21,0,15,0,20,0,24,0,10,23,4,22,8,0,0,14,13,1,0,
1543  5,16,19,0,12,8,0,0,24,11,7,0,0,21,0,0,2,9,0,4,23,1,0,17,0,
1544  0,0,0,0,6,0,24,4,25,21,0,0,0,20,12,9,0,19,0,8,10,5,7,23,11,
1545  6,0,0,22,2,4,7,0,0,18,0,0,25,12,0,0,0,0,16,9,20,8,19,21,5,
1546  22,11,0,7,0,16,19,0,0,0,0,18,5,0,25,10,0,8,0,0,15,3,20,0,2,
1547  0,15,0,9,0,0,0,14,0,3,0,16,0,23,20,12,21,0,1,2,19,0,0,10,6,
1548  17,20,14,0,10,12,5,0,21,7,0,0,6,0,0,25,18,0,0,13,0,16,23,0,0,
1549  0,6,0,18,16,23,8,1,0,4,0,5,10,25,0,0,0,0,21,12,11,0,0,0,22,
1550  0,0,0,0,15,18,25,23,2,0,10,17,0,0,1,22,24,0,11,16,0,0,6,4,9,
1551  0,0,12,21,0,0,0,24,0,0,18,20,1,17,9,0,23,15,3,0,6,4,0,2,0,
1552  0,0,22,19,24,0,0,9,23,8,13,12,0,15,0,1,7,17,0,11,4,2,0,0,0,
1553  0,19,25,2,0,21,0,22,17,0,8,9,0,0,0,0,3,18,23,24,1,20,0,0,0,
1554  0,0,7,14,0,3,0,18,6,24,0,13,15,0,16,0,11,0,10,0,0,19,0,20,4,
1555  16,17,5,10,23,0,0,0,1,0,12,0,13,22,0,2,0,25,7,19,0,0,0,15,0,
1556  14,0,0,5,9,0,10,0,13,0,0,25,11,0,19,24,20,2,0,0,12,0,22,6,0,
1557  18,24,13,11,4,1,0,12,0,0,5,0,0,0,14,0,17,6,0,10,0,15,0,0,21,
1558  2,0,0,0,13,0,15,8,3,17,0,0,18,19,0,5,0,0,14,1,7,0,0,9,20,
1559  0,4,11,0,20,24,17,3,18,0,9,2,0,0,6,13,0,0,0,23,0,0,8,0,25,
1560  21,14,2,0,0,0,0,0,0,16,11,6,7,24,13,19,12,0,20,5,0,25,0,0,23,
1561  0,23,3,0,0,2,0,16,7,10,4,15,0,0,17,8,0,0,5,6,0,0,11,24,1,
1562  24,0,6,0,0,20,0,0,0,14,0,0,17,4,11,0,15,3,22,0,8,7,9,0,13,
1563  13,5,0,8,25,19,4,10,0,1,24,14,0,0,2,0,0,12,17,0,0,0,3,11,0
1564  };
1565 
1566  const int d25_264_5[] = {
1567  // Size: 25 x 25
1568  25,
1569  // Pre-assigned fields
1570  14,0,0,20,16,24,10,0,0,0,0,15,0,21,23,3,6,0,12,19,0,2,9,0,0,
1571  12,6,0,15,0,22,0,14,8,0,4,5,0,0,21,16,0,0,20,0,13,7,0,1,10,
1572  0,9,17,4,1,0,20,0,0,0,0,0,21,12,0,0,0,13,0,16,22,23,24,14,5,
1573  16,12,20,7,14,2,0,0,0,0,0,23,0,25,0,15,18,0,21,0,5,24,0,17,9,
1574  0,21,25,1,8,3,23,12,10,0,0,0,17,0,22,0,13,24,0,0,0,0,5,20,0,
1575  0,0,4,12,0,0,21,18,24,2,0,6,0,22,0,11,0,20,0,17,0,0,8,13,16,
1576  0,0,0,0,0,0,15,24,0,1,6,0,0,10,11,12,8,9,19,7,3,0,14,5,23,
1577  20,14,10,22,12,0,0,0,16,13,11,7,6,17,0,5,0,0,0,1,0,0,0,15,0,
1578  2,22,18,21,15,0,0,1,4,23,0,0,0,9,10,19,0,0,17,11,0,14,0,0,0,
1579  0,25,0,0,0,5,17,4,19,10,0,0,18,0,6,13,15,0,16,22,12,0,23,0,3,
1580  0,23,15,0,0,4,0,21,1,0,0,25,11,6,18,0,9,2,0,10,19,13,3,0,0,
1581  21,16,19,0,5,6,0,17,18,25,0,0,1,8,0,0,20,0,3,0,2,22,0,10,0,
1582  0,0,0,0,0,0,9,13,2,15,14,0,20,0,8,22,11,23,0,0,1,6,19,25,0,
1583  9,0,16,0,18,15,11,0,13,0,17,21,0,0,12,0,25,10,0,5,14,0,7,0,1,
1584  0,0,24,0,21,12,5,0,0,0,8,11,0,0,0,23,3,19,10,4,0,18,2,0,6,
1585  1,0,0,0,0,0,22,23,6,20,18,14,10,3,0,0,0,16,11,24,9,0,0,0,21,
1586  8,0,0,0,17,11,24,0,0,22,19,18,23,0,0,0,21,14,4,13,6,20,0,0,0,
1587  15,0,6,24,20,8,0,0,3,11,5,0,0,7,0,2,4,0,0,0,0,21,12,18,0,
1588  11,24,0,0,19,1,6,2,0,7,0,10,3,13,9,0,0,0,0,0,23,0,0,22,25,
1589  19,0,1,0,22,16,0,0,20,0,0,24,8,15,3,0,0,17,0,2,18,0,25,0,13,
1590  5,0,12,8,6,0,0,0,0,0,25,0,4,18,15,7,2,21,22,0,0,16,0,3,19,
1591  4,17,8,6,23,0,2,15,0,0,9,0,24,0,5,1,0,3,25,0,0,10,0,12,0,
1592  6,5,11,13,0,23,1,0,0,9,15,0,0,0,16,25,19,0,8,0,0,17,0,7,4,
1593  0,2,0,11,0,7,18,8,9,6,20,22,0,0,0,0,10,1,0,14,4,0,16,0,0,
1594  0,20,0,10,0,0,0,22,7,17,21,19,15,0,25,4,0,0,6,0,24,12,18,0,8
1595  };
1596 
1597  const int d25_264_6[] = {
1598  // Size: 25 x 25
1599  25,
1600  // Pre-assigned fields
1601  14,23,12,4,0,21,16,0,0,10,0,0,0,1,0,0,18,9,15,2,3,0,20,0,7,
1602  10,18,0,0,0,0,9,0,20,2,0,0,11,0,0,0,7,25,1,24,19,13,0,12,5,
1603  0,10,0,11,0,17,18,20,0,15,24,0,0,0,9,0,3,0,7,0,13,23,14,0,12,
1604  22,3,25,0,0,4,0,10,0,23,0,0,17,9,0,12,16,5,0,0,0,2,15,0,13,
1605  12,8,0,13,0,14,0,3,15,4,19,23,0,2,0,0,25,0,0,7,0,0,11,5,6,
1606  0,0,7,0,16,13,0,18,25,0,10,11,14,0,0,3,0,1,4,0,24,12,22,0,20,
1607  0,7,24,14,0,9,3,1,0,17,0,18,0,0,22,5,23,4,0,0,0,21,0,0,8,
1608  6,12,13,0,0,0,17,9,0,0,18,14,0,0,0,10,19,24,8,0,22,5,2,21,0,
1609  3,0,0,23,13,16,20,4,10,0,8,0,18,0,0,0,22,12,0,0,0,11,0,24,9,
1610  0,4,2,0,25,0,10,8,6,0,0,12,13,24,0,0,0,0,0,21,16,14,0,15,17,
1611  0,13,10,12,7,5,24,0,19,20,15,22,0,0,18,21,1,0,16,14,0,0,0,0,0,
1612  1,14,0,9,11,0,23,0,0,12,20,6,15,21,0,0,10,22,0,0,0,19,17,0,4,
1613  0,0,18,0,0,12,0,0,2,0,21,0,10,7,4,15,0,13,5,25,20,0,24,9,0,
1614  5,0,0,25,22,11,0,0,8,0,9,1,19,10,21,6,0,0,23,13,18,0,0,0,0,
1615  20,6,0,16,8,0,2,25,0,0,3,4,24,11,0,0,0,0,19,0,17,0,5,18,14,
1616  0,0,8,20,12,0,0,0,9,13,6,0,4,14,3,25,15,0,2,10,0,22,7,0,0,
1617  25,21,20,3,19,0,0,17,14,0,0,0,1,0,23,22,0,8,0,6,0,0,10,11,0,
1618  8,17,5,6,0,19,4,0,0,0,0,21,0,18,14,2,0,7,0,0,15,20,0,13,0,
1619  0,0,0,0,14,0,6,13,24,3,0,9,2,5,15,16,0,0,18,0,8,0,12,20,0,
1620  0,0,15,0,0,0,14,24,0,6,4,3,0,0,16,13,9,21,11,5,0,0,18,1,0,
1621  16,0,11,0,0,0,0,23,0,9,0,2,0,22,12,0,8,19,25,17,6,4,13,0,18,
1622  13,0,0,15,21,3,0,19,0,0,12,0,0,17,11,7,20,23,0,22,2,0,0,0,16,
1623  0,0,0,7,4,0,13,0,1,19,0,15,25,0,17,14,0,0,0,20,9,10,8,16,3,
1624  0,1,4,22,10,25,0,0,11,24,16,7,6,19,0,9,13,0,20,0,0,0,0,17,0,
1625  15,25,0,0,18,23,0,6,17,22,5,0,0,0,1,0,0,0,13,12,4,8,0,14,0
1626  };
1627 
1628  const int d25_264_7[] = {
1629  // Size: 25 x 25
1630  25,
1631  // Pre-assigned fields
1632  0,0,0,0,0,10,24,0,2,0,18,8,0,7,19,6,0,12,11,0,0,9,1,25,16,
1633  20,3,2,0,19,5,23,4,8,17,16,0,0,0,14,0,6,13,21,0,0,0,7,0,0,
1634  0,0,0,0,16,21,13,7,5,0,0,12,0,25,24,3,10,0,0,2,4,20,23,0,0,
1635  22,12,0,0,10,0,3,0,23,19,5,0,0,17,11,0,0,0,4,18,13,1,9,0,0,
1636  0,7,17,0,0,0,0,0,10,15,0,11,4,3,1,8,22,18,5,16,0,0,0,20,25,
1637  15,18,0,16,24,12,0,11,0,9,20,7,0,0,8,0,0,22,2,0,23,3,0,6,0,
1638  13,21,9,0,20,0,0,3,0,12,0,14,22,0,0,0,7,4,17,6,11,2,0,0,19,
1639  0,24,0,6,12,1,0,23,14,10,4,0,13,0,9,11,18,0,0,0,0,0,16,19,0,
1640  11,0,20,7,0,0,5,10,13,24,0,0,8,0,25,0,0,14,0,1,0,6,3,12,15,
1641  21,0,18,8,0,0,0,0,0,0,25,23,15,0,13,1,5,19,16,14,9,0,0,0,17,
1642  12,0,0,0,9,7,0,0,15,4,11,0,2,20,22,5,0,0,0,0,14,0,17,8,13,
1643  0,0,6,14,0,0,0,22,0,0,13,10,12,24,0,23,0,21,0,19,8,15,25,11,2,
1644  0,10,11,0,0,15,0,13,1,22,23,0,0,21,0,0,0,24,7,17,0,19,0,16,6,
1645  0,20,0,18,0,16,1,14,0,0,0,0,0,23,10,12,17,8,24,0,22,11,21,0,0,
1646  19,0,0,24,1,0,2,0,3,0,21,15,20,0,18,0,11,0,22,13,0,10,0,14,23,
1647  14,6,3,5,0,8,16,0,21,0,0,2,11,9,0,17,0,10,18,0,0,25,0,13,0,
1648  4,19,21,0,22,11,0,0,0,25,0,0,9,0,0,24,0,0,3,0,5,18,15,2,10,
1649  0,0,0,23,17,25,20,0,0,7,12,0,5,8,15,10,0,11,0,3,0,0,0,4,22,
1650  24,9,22,21,0,0,19,25,4,16,0,1,14,6,0,0,12,0,0,5,7,0,0,0,0,
1651  17,5,10,15,0,0,25,19,0,11,2,13,7,1,0,22,21,0,0,24,6,0,0,0,0,
1652  0,0,12,0,2,4,0,20,0,14,0,0,23,22,17,0,16,0,10,15,24,13,8,0,18,
1653  7,0,4,2,11,19,0,0,0,0,1,9,0,0,0,13,25,0,0,0,15,12,6,18,5,
1654  1,14,0,3,5,0,7,0,0,0,24,22,25,2,4,0,15,0,0,0,0,0,18,21,12,
1655  0,2,0,17,0,23,9,21,22,0,3,5,0,15,0,19,24,20,6,0,0,0,12,0,0,
1656  10,23,24,12,13,2,4,1,6,3,0,0,0,0,0,16,8,25,0,11,18,0,0,0,0
1657  };
1658 
1659  const int d25_264_8[] = {
1660  // Size: 25 x 25
1661  25,
1662  // Pre-assigned fields
1663  0,0,22,25,0,0,16,9,4,0,12,0,0,0,0,2,18,0,15,14,5,11,3,13,24,
1664  21,0,0,0,0,0,0,2,7,20,0,0,9,1,10,16,15,0,0,6,23,12,25,0,4,
1665  11,21,6,0,0,5,0,19,18,0,13,10,0,25,0,0,0,12,24,8,3,0,23,2,0,
1666  19,4,0,0,8,0,9,0,12,23,15,0,1,0,6,0,16,10,5,0,0,20,14,25,0,
1667  24,0,0,19,16,21,2,0,0,0,3,0,14,0,18,10,0,1,25,23,0,22,4,0,20,
1668  0,0,17,0,24,20,19,0,10,13,2,25,0,0,9,3,11,0,14,7,0,0,0,0,16,
1669  0,22,24,16,11,14,0,20,15,9,23,0,0,0,0,0,8,13,0,0,25,7,1,6,0,
1670  12,9,13,21,0,16,15,0,0,0,17,18,0,5,19,0,6,0,1,4,0,10,0,0,0,
1671  0,0,0,14,2,0,18,0,0,17,7,0,0,13,4,19,22,21,0,3,0,15,5,0,1,
1672  15,18,3,10,7,0,0,8,0,2,0,21,0,0,14,1,0,0,0,24,11,23,12,0,0,
1673  0,0,11,8,20,10,0,0,21,0,0,5,25,7,23,0,0,3,2,22,0,4,0,12,19,
1674  9,0,18,12,19,2,0,17,14,16,0,0,0,0,20,4,7,22,3,0,13,0,0,0,0,
1675  4,5,0,18,0,13,0,6,0,8,20,16,17,0,12,0,10,23,0,0,1,0,22,24,0,
1676  0,11,0,1,0,8,0,21,2,14,10,13,18,19,0,22,0,6,0,16,0,0,0,20,0,
1677  0,0,5,7,9,0,1,0,0,10,0,4,0,11,13,23,24,16,17,0,12,0,0,0,2,
1678  10,0,14,0,3,6,25,16,0,0,9,0,5,24,17,0,0,0,0,0,18,1,7,21,0,
1679  0,19,0,9,4,24,17,0,5,0,0,1,22,23,15,0,0,0,21,2,16,0,0,3,11,
1680  16,12,0,0,0,25,13,7,3,5,0,0,4,0,21,17,19,0,23,0,0,14,0,0,22,
1681  0,25,1,11,0,0,21,0,0,18,0,14,7,15,0,0,4,19,20,5,6,0,17,8,0,
1682  22,20,15,0,0,4,0,18,6,0,1,0,10,17,0,21,0,2,0,0,0,19,24,0,9,
1683  2,24,0,0,23,0,0,4,0,21,0,9,0,12,0,5,0,0,6,15,20,25,19,1,17,
1684  0,0,12,0,13,7,14,25,22,0,6,2,23,3,1,0,0,0,18,0,0,0,15,5,0,
1685  5,23,0,0,17,22,6,0,9,0,0,0,8,18,0,7,25,20,11,1,0,0,0,0,3,
1686  6,0,10,17,0,0,0,13,0,12,4,7,11,0,0,9,3,24,0,0,15,21,0,18,8,
1687  3,7,0,5,0,0,23,1,0,25,11,19,24,0,0,20,17,0,0,0,4,0,0,9,14
1688  };
1689 
1690  const int d25_264_9[] = {
1691  // Size: 25 x 25
1692  25,
1693  // Pre-assigned fields
1694  8,0,1,21,0,0,0,7,13,0,9,0,24,0,4,3,16,6,15,0,0,20,0,22,0,
1695  0,0,0,0,20,7,0,0,15,8,16,0,19,10,18,4,1,0,17,5,9,0,0,24,0,
1696  23,0,9,19,0,21,5,12,22,18,0,6,0,0,0,20,0,3,7,8,0,0,16,0,14,
1697  22,8,0,0,0,0,0,9,0,20,3,14,21,23,10,0,0,0,0,6,11,24,0,4,16,
1698  25,0,10,7,0,15,0,11,18,0,0,8,5,13,6,0,22,9,0,3,24,0,0,14,0,
1699  0,16,4,8,18,0,7,22,0,25,0,0,15,0,23,6,0,0,0,0,19,0,24,17,11,
1700  0,18,2,0,19,8,17,0,16,0,10,0,13,21,22,0,0,0,0,11,1,14,6,0,25,
1701  20,0,11,0,5,9,2,0,23,4,1,0,0,22,0,7,6,0,0,0,21,10,15,0,12,
1702  16,0,0,12,0,0,0,21,7,15,0,24,3,11,9,10,5,23,0,14,0,0,22,0,0,
1703  0,25,17,0,0,0,14,0,0,22,7,1,0,3,24,18,23,0,0,12,15,16,5,0,0,
1704  11,23,22,0,10,16,21,14,9,0,0,15,0,0,0,0,4,8,1,17,0,0,0,13,0,
1705  0,20,0,14,24,5,3,6,10,7,0,23,4,0,12,0,0,0,16,0,0,0,17,8,18,
1706  0,0,0,16,8,3,0,1,0,5,6,4,22,0,19,0,15,14,0,0,0,0,20,10,24,
1707  15,0,0,0,2,0,24,0,0,0,20,0,1,7,0,0,10,16,9,22,25,5,0,12,21,
1708  0,7,12,0,23,13,0,24,11,21,0,0,10,0,0,16,18,19,2,9,0,15,4,0,0,
1709  17,3,0,0,1,10,4,0,0,0,22,21,7,24,5,0,2,0,18,0,0,6,0,25,8,
1710  0,0,8,20,13,25,16,0,6,23,0,0,0,5,15,2,0,24,3,1,17,0,0,0,0,
1711  6,13,23,25,17,1,0,4,0,0,19,11,0,0,0,14,7,0,0,20,10,22,0,0,0,
1712  13,4,0,22,9,0,0,0,17,0,23,0,0,14,0,1,0,25,12,19,3,21,0,0,5,
1713  0,0,20,10,0,19,6,0,12,0,13,22,0,8,0,0,0,5,11,2,0,4,9,18,23,
1714  7,19,0,13,11,0,0,3,2,0,18,10,25,0,20,0,17,0,0,0,0,0,12,9,15,
1715  10,17,7,0,0,4,15,25,8,9,0,0,0,0,13,0,0,1,24,0,14,19,0,21,0,
1716  21,0,15,3,0,0,0,0,0,14,24,13,0,18,0,11,0,4,20,0,5,8,23,16,2,
1717  0,11,0,18,0,22,13,8,0,0,15,0,9,6,0,23,25,7,0,0,2,17,19,0,4,
1718  0,24,16,17,22,0,10,2,0,19,0,5,0,4,14,15,12,0,8,0,0,0,18,0,6
1719  };
1720 
1721 
1722  /*
1723  * Instances taken from examples that ship with the generator
1724  * "lsencode" by Carla Gomes <gomes@cs.cornell.edu>.
1725  */
1726 
1727  const int d30_316[] = {
1728  // Size: 30 x 30
1729  30,
1730  // Pre-assigned fields
1731  30,24,2,18,0,15,20,0,5,0,7,0,0,0,21,0,0,23,0,0,17,26,0,25,4,19,12,11,14,0,
1732  0,20,0,0,9,30,28,0,0,21,2,0,0,22,17,0,6,1,27,0,0,0,10,14,24,18,0,8,19,12,
1733  25,16,24,14,4,0,2,0,0,29,11,0,30,17,0,0,21,0,1,0,0,0,0,10,0,0,23,26,9,5,
1734  0,5,30,27,25,24,23,0,0,8,0,0,0,12,2,6,18,0,28,0,19,22,7,17,0,16,4,0,0,1,
1735  28,0,4,3,14,0,0,12,0,2,17,22,0,8,11,20,26,0,21,0,0,0,19,27,0,10,0,0,0,23,
1736  0,10,0,30,0,1,14,0,0,0,21,0,19,11,18,23,9,7,13,0,0,27,0,0,0,0,28,20,24,29,
1737  0,0,0,0,0,16,0,2,0,30,19,28,25,26,6,14,1,27,0,0,0,0,24,0,21,0,0,23,17,7,
1738  10,0,0,15,21,28,19,23,0,26,9,12,1,0,24,22,0,4,0,0,5,29,0,20,17,11,0,14,27,18,
1739  5,0,10,0,19,12,3,7,25,0,6,14,21,0,0,29,8,18,16,4,24,9,0,0,26,2,22,15,0,13,
1740  7,17,14,19,27,20,0,0,29,3,0,0,0,9,0,0,28,13,0,1,15,0,0,4,10,0,26,24,30,0,
1741  0,4,13,20,0,0,0,28,12,19,27,6,0,7,26,5,24,2,11,9,22,14,0,18,0,1,8,17,0,0,
1742  26,14,22,8,0,10,0,6,0,4,0,0,0,0,0,19,0,15,29,3,20,7,9,13,0,0,11,0,0,24,
1743  24,0,11,0,0,18,0,0,14,5,22,8,0,0,0,0,12,17,9,23,6,0,0,0,30,28,0,0,21,2,
1744  16,27,15,24,12,26,25,17,0,1,0,0,23,0,0,30,0,0,10,0,21,28,18,3,29,14,9,7,6,22,
1745  18,3,26,0,7,0,4,0,0,10,29,0,22,23,0,1,0,19,5,28,9,17,25,0,11,0,0,0,20,14,
1746  0,0,20,0,0,3,0,29,10,28,30,13,26,24,0,16,0,21,25,8,23,19,1,9,14,4,18,27,0,17,
1747  19,0,7,25,20,9,16,15,3,14,0,10,17,30,29,27,4,0,23,21,18,0,11,0,28,0,6,12,2,8,
1748  0,2,19,29,26,0,11,10,0,16,8,23,0,21,5,24,0,0,20,0,7,0,3,0,0,9,25,0,4,28,
1749  9,23,0,7,6,0,29,0,22,24,10,0,0,1,4,26,11,5,19,0,12,2,13,16,3,27,0,30,0,20,
1750  2,0,29,16,10,0,0,11,18,15,1,5,0,4,13,17,20,0,6,24,0,21,14,12,8,30,0,0,22,0,
1751  6,29,1,0,28,17,27,0,0,0,0,20,0,14,7,0,3,0,0,2,8,0,4,22,15,26,21,5,16,30,
1752  0,0,18,0,22,29,0,0,0,17,0,25,20,10,19,0,5,0,15,27,0,30,2,6,0,0,24,28,1,9,
1753  0,12,21,0,18,27,30,0,0,0,28,4,2,0,9,25,23,14,0,0,0,11,0,29,0,6,0,10,0,3,
1754  0,11,28,0,29,22,17,0,24,6,0,9,0,16,20,21,0,25,0,12,30,0,0,0,2,7,0,1,5,19,
1755  29,22,6,21,13,11,26,0,1,0,20,19,24,2,0,8,0,16,17,0,27,3,0,28,0,25,10,0,23,0,
1756  0,26,9,22,24,4,5,20,11,27,18,17,0,13,25,28,19,12,14,6,2,0,8,30,0,29,3,21,15,10,
1757  8,0,16,9,0,0,0,21,27,25,24,7,12,19,0,18,0,0,2,0,1,4,0,0,22,20,30,0,13,0,
1758  22,30,8,0,0,0,0,0,21,0,0,27,11,0,1,10,7,28,4,17,14,6,29,0,9,24,20,25,0,16,
1759  0,19,27,28,17,6,0,0,4,0,25,21,15,20,30,2,29,8,26,0,0,0,0,24,5,23,16,22,3,0,
1760  1,15,17,0,0,19,24,0,9,23,14,3,6,0,0,4,16,0,0,20,11,12,0,0,0,0,7,13,0,26
1761  };
1762 
1763  const int d30_320[] = {
1764  // Size: 30 x 30
1765  30,
1766  // Pre-assigned fields
1767  0,2,3,0,5,6,7,8,9,0,11,0,0,0,0,16,17,18,0,20,21,22,0,24,0,0,0,28,0,30,
1768  2,3,4,0,6,7,0,9,10,0,12,0,14,15,0,17,18,0,20,21,22,0,24,0,26,27,0,29,30,0,
1769  0,4,5,6,7,8,9,10,0,0,0,14,15,16,0,18,19,20,21,22,23,24,0,26,27,28,0,30,1,2,
1770  0,5,0,7,8,9,10,11,12,0,14,15,16,0,18,19,20,21,22,23,0,25,26,27,28,29,30,1,2,0,
1771  0,0,7,8,0,0,0,12,0,0,15,16,17,18,19,0,21,22,0,24,25,0,27,28,29,30,0,0,3,4,
1772  6,7,0,0,0,11,12,13,14,15,16,17,0,19,20,21,22,0,24,0,0,0,0,29,0,1,2,0,0,5,
1773  0,0,9,10,11,12,13,14,15,0,17,18,19,0,21,0,0,0,25,26,27,0,0,0,1,2,3,4,0,0,
1774  0,9,0,11,12,13,14,15,0,17,18,0,20,21,0,0,24,25,26,27,28,29,0,1,0,3,4,0,0,0,
1775  9,10,0,12,13,14,15,16,0,18,19,20,21,22,23,24,25,0,0,28,29,30,0,0,3,4,5,6,7,0,
1776  0,11,0,0,0,0,0,17,18,19,20,21,22,0,0,25,26,27,0,0,30,0,2,3,4,5,0,0,8,9,
1777  11,12,13,14,15,0,17,0,19,20,21,22,0,0,25,26,0,28,29,30,1,2,3,4,0,6,7,8,0,10,
1778  12,13,0,15,16,0,18,0,20,0,22,23,0,25,26,27,0,0,0,1,2,3,4,0,6,7,0,9,0,11,
1779  0,0,15,16,0,0,0,20,21,22,23,0,25,0,27,28,29,0,0,2,3,4,5,6,7,8,0,10,11,12,
1780  0,0,16,17,0,19,20,0,22,0,0,25,0,27,28,29,0,1,2,3,4,0,0,7,8,9,10,11,0,13,
1781  0,16,17,0,0,20,0,22,23,24,0,26,27,0,0,30,0,2,0,4,0,6,7,0,0,10,11,12,13,14,
1782  0,17,18,0,0,21,22,23,24,25,26,27,0,29,30,1,2,0,0,0,6,0,0,9,10,0,0,13,0,15,
1783  0,0,19,20,21,22,23,0,25,26,27,0,29,30,0,0,3,4,5,6,7,8,0,0,11,12,0,0,15,16,
1784  0,19,20,0,0,23,0,0,26,27,28,29,30,1,2,0,4,0,0,7,8,9,10,11,0,13,14,0,16,17,
1785  19,0,0,0,0,24,25,26,0,0,0,0,1,0,3,0,5,0,0,8,9,0,11,12,13,0,15,16,0,0,
1786  0,0,22,23,0,0,26,0,28,29,30,1,0,0,4,5,6,0,8,9,10,0,12,0,14,0,16,0,0,19,
1787  21,22,23,0,25,26,27,0,29,30,0,2,3,4,5,6,0,8,9,0,0,0,13,0,0,16,17,18,19,0,
1788  22,23,24,25,26,27,28,29,0,1,2,3,0,5,6,0,0,9,0,11,12,13,0,15,0,17,18,19,0,21,
1789  23,24,25,0,0,28,0,0,0,0,0,4,5,0,7,0,0,0,0,12,13,0,0,0,0,18,19,0,0,0,
1790  24,0,0,27,0,0,30,1,2,0,0,5,0,0,8,0,0,11,0,13,14,15,16,17,0,19,20,21,0,0,
1791  25,0,27,28,29,30,1,2,3,4,5,6,7,8,0,0,0,12,0,14,0,16,17,18,19,20,0,22,23,24,
1792  26,27,28,29,0,1,0,3,4,0,6,0,8,9,10,11,12,0,14,15,0,17,0,0,20,21,0,0,24,25,
1793  27,0,0,0,0,2,3,4,0,6,7,8,9,10,0,0,13,14,15,16,17,0,19,0,21,22,0,24,25,0,
1794  28,29,30,0,2,3,4,0,0,0,0,0,10,11,12,13,14,15,0,0,18,19,20,21,0,23,24,25,26,27,
1795  0,0,1,0,0,4,0,0,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,23,24,25,26,27,0,
1796  30,1,0,3,4,5,6,7,0,9,0,11,12,0,14,0,0,0,18,19,0,21,22,23,24,0,26,27,28,29
1797  };
1798 
1799  const int d33_381[] = {
1800  // Size: 33 x 33
1801  33,
1802  // Pre-assigned fields
1803  0,0,2,3,28,19,14,33,21,17,0,15,0,0,0,26,4,8,32,16,20,6,29,31,0,0,25,11,0,0,0,0,10,
1804  19,0,0,24,26,9,21,30,0,12,20,0,0,10,33,14,32,0,6,0,11,0,0,28,0,0,23,7,4,0,18,16,22,
1805  0,1,28,0,18,0,19,20,0,5,8,17,0,12,27,0,24,23,0,9,0,32,0,22,10,7,0,29,0,31,3,26,16,
1806  7,16,9,14,27,0,32,0,0,0,31,0,0,5,0,6,25,33,0,0,10,2,0,30,19,0,0,26,12,13,1,22,18,
1807  11,10,4,31,25,0,8,24,0,30,27,0,0,0,19,0,29,32,17,0,18,28,22,6,7,9,0,20,15,0,0,0,0,
1808  24,0,3,9,33,0,5,21,16,31,0,6,25,22,29,0,30,0,10,0,0,11,18,0,1,26,28,0,0,4,0,15,19,
1809  31,32,20,5,0,29,23,0,33,3,17,4,26,19,16,0,22,0,15,0,28,0,0,12,24,6,7,30,13,0,0,0,0,
1810  5,0,6,0,0,2,26,13,10,0,1,24,11,30,4,31,33,29,0,0,19,25,0,16,32,14,0,21,0,0,22,3,0,
1811  0,0,0,0,10,17,12,23,32,18,14,33,19,8,0,3,0,26,0,22,21,1,11,0,0,0,20,27,31,0,9,13,6,
1812  32,33,0,8,5,0,0,4,28,22,24,0,15,0,0,10,31,21,0,26,0,0,7,0,6,1,13,0,30,19,17,29,9,
1813  0,29,0,19,2,31,3,6,12,9,18,0,4,0,21,17,7,0,26,33,32,0,0,8,0,0,22,23,0,20,0,10,0,
1814  1,15,0,0,0,33,24,18,11,19,2,22,29,0,31,32,16,5,27,0,23,7,12,0,25,0,0,9,0,8,0,0,14,
1815  25,24,12,0,15,13,0,0,18,20,0,0,21,33,32,2,14,0,28,0,9,29,6,19,0,0,0,0,0,22,16,8,31,
1816  30,11,18,33,29,0,0,0,0,21,28,14,10,2,13,0,0,0,5,31,7,0,19,26,16,22,27,4,0,1,6,0,0,
1817  0,22,26,27,0,4,0,0,29,0,30,0,5,11,0,0,0,24,16,6,12,0,25,18,31,8,0,28,19,3,13,2,0,
1818  14,23,0,0,0,10,0,12,0,2,26,0,3,0,7,18,0,31,0,17,29,27,30,0,20,32,15,19,6,28,0,9,0,
1819  4,27,19,0,31,0,6,28,3,0,0,16,17,0,22,0,8,13,0,32,0,18,2,0,0,0,0,24,21,12,15,33,25,
1820  15,0,0,12,7,25,20,8,22,23,0,0,0,21,10,0,26,2,0,29,5,0,24,17,0,0,6,13,14,11,0,0,27,
1821  8,4,0,21,12,11,31,0,15,0,0,30,0,9,20,0,0,1,23,0,13,10,3,14,26,0,24,0,22,27,2,5,0,
1822  0,0,0,29,0,28,18,1,9,25,11,19,6,15,0,33,12,10,0,0,0,5,26,32,0,2,30,0,17,21,31,0,20,
1823  0,7,0,0,4,18,0,0,30,0,25,32,20,29,24,0,17,0,14,2,27,15,0,21,0,12,9,0,8,0,10,19,3,
1824  20,25,31,11,0,0,0,26,14,0,7,0,1,13,12,0,21,0,8,3,0,0,0,5,29,0,4,15,2,10,24,32,17,
1825  0,0,10,0,0,6,11,22,0,13,0,21,16,20,23,4,0,3,2,14,0,0,33,0,15,29,32,25,18,17,0,31,0,
1826  0,0,16,0,20,1,0,32,24,0,0,27,22,0,0,21,23,4,33,28,31,0,14,11,17,15,3,10,29,0,8,0,0,
1827  27,0,14,0,6,15,25,10,0,32,22,3,13,17,0,20,1,0,18,0,0,8,9,0,23,31,5,0,16,26,0,0,0,
1828  18,30,0,7,22,26,4,19,27,0,0,25,8,0,0,5,0,17,21,12,0,16,28,0,0,13,2,33,0,0,20,14,0,
1829  0,12,0,26,13,16,30,0,1,0,0,0,0,0,8,7,0,0,3,15,22,33,32,20,9,5,0,0,11,29,19,27,21,
1830  13,0,8,30,0,14,0,0,31,16,21,18,0,32,9,1,0,7,0,20,0,3,0,27,12,10,0,0,33,23,25,0,4,
1831  0,0,27,16,11,0,0,15,0,33,0,5,0,25,0,24,0,22,1,30,3,9,17,13,0,4,12,8,10,0,26,18,29,
1832  16,20,22,32,0,0,10,2,0,15,6,7,0,27,0,23,0,0,11,18,25,13,0,0,33,21,1,0,3,30,0,0,26,
1833  3,26,21,15,1,5,0,0,2,11,9,29,18,28,0,30,0,12,31,0,0,19,0,23,14,0,0,32,0,0,4,7,8,
1834  10,2,17,0,9,0,29,0,0,1,3,0,0,0,5,12,27,0,0,11,15,20,4,33,0,16,31,0,28,25,30,21,13,
1835  17,31,5,10,0,0,0,27,23,0,15,12,9,0,6,29,11,25,13,19,24,0,8,0,2,33,18,0,0,0,0,20,30
1836  };
1837 
1838  const int d35_405[] = {
1839  // Size: 35 x 35
1840  35,
1841  // Pre-assigned fields
1842  1,2,3,0,5,6,0,8,9,10,11,12,13,14,0,16,17,0,0,20,0,22,23,0,25,0,27,28,29,30,31,32,33,0,0,
1843  2,3,4,5,0,0,8,9,10,11,12,0,14,0,16,0,18,19,20,21,22,23,24,25,0,27,28,29,0,31,32,33,34,0,1,
1844  0,4,5,0,7,8,0,10,11,0,13,14,15,16,0,0,0,0,21,0,23,24,25,26,27,0,29,0,31,32,33,34,35,1,2,
1845  0,5,0,7,0,9,0,11,0,13,0,0,16,0,18,0,20,0,22,23,0,0,0,27,0,29,30,31,32,33,34,0,0,2,3,
1846  5,6,7,8,0,10,11,12,13,0,15,16,17,0,19,20,21,22,0,24,25,26,27,28,29,30,0,32,0,34,35,1,2,0,4,
1847  6,7,8,9,10,11,12,13,14,15,16,17,18,19,0,21,0,23,24,0,26,27,28,29,0,0,32,33,34,35,1,0,0,4,5,
1848  7,0,0,0,0,12,13,14,0,16,0,0,19,20,21,22,0,24,25,0,27,0,29,30,31,0,0,0,35,1,2,0,0,5,6,
1849  0,0,0,0,12,13,14,0,0,0,18,0,20,21,22,23,24,0,0,27,28,29,30,31,32,33,34,0,1,0,3,4,0,6,7,
1850  9,0,11,12,13,0,0,16,0,18,19,20,21,0,23,24,25,26,27,28,29,30,31,32,33,0,35,0,2,3,4,0,0,7,8,
1851  10,11,12,0,14,0,16,17,0,0,20,0,0,23,0,25,26,27,28,0,30,31,32,33,34,0,1,0,3,0,5,0,7,8,9,
1852  11,0,13,0,15,0,17,0,19,0,0,22,0,24,0,26,27,0,29,30,31,32,33,34,35,1,2,3,0,5,0,7,8,9,10,
1853  12,13,14,0,16,17,18,0,20,21,22,0,0,25,26,27,28,29,30,31,32,33,34,35,1,2,3,0,5,6,7,0,9,0,0,
1854  13,14,15,16,17,0,19,20,21,0,0,0,25,26,0,28,29,30,31,0,0,34,0,1,2,3,0,0,6,0,8,9,10,11,0,
1855  14,0,16,17,18,19,20,21,22,23,0,0,26,27,0,29,0,0,32,0,34,35,1,2,3,4,5,6,7,8,9,10,11,0,0,
1856  0,16,17,0,19,0,21,22,23,0,0,26,27,28,29,30,31,32,0,34,35,1,0,3,4,5,0,7,8,9,10,0,12,0,14,
1857  16,17,18,19,20,21,22,0,0,25,0,27,0,29,0,31,0,0,34,0,0,0,0,4,0,0,7,8,9,10,11,12,0,14,15,
1858  0,18,19,20,0,22,0,24,0,0,27,0,29,30,31,32,33,34,0,0,0,0,0,5,0,7,8,9,10,11,0,0,14,15,16,
1859  18,19,20,21,22,0,24,25,26,0,28,0,0,31,32,33,0,35,1,0,0,0,0,0,7,8,9,10,11,12,13,14,15,16,0,
1860  19,0,0,22,23,0,25,26,27,28,29,30,0,32,33,34,35,1,2,3,4,0,6,0,8,0,10,11,12,0,0,0,0,0,18,
1861  0,0,22,23,24,0,0,27,28,29,0,31,32,0,34,35,0,0,0,4,0,0,7,8,9,0,11,0,0,14,15,16,0,0,19,
1862  21,22,23,0,25,0,27,28,29,0,0,0,33,0,35,1,2,0,4,0,6,7,0,9,0,0,0,0,0,0,0,0,0,19,0,
1863  0,0,24,0,0,27,28,29,30,0,32,0,0,35,1,2,3,4,0,6,7,0,9,10,11,12,13,14,0,16,17,18,0,0,21,
1864  0,24,0,26,27,0,29,30,0,32,33,34,0,1,2,3,4,5,0,0,0,9,0,11,12,13,14,15,0,0,0,0,20,0,22,
1865  24,25,0,0,28,0,30,0,32,0,34,35,1,2,3,4,0,6,7,0,9,0,11,0,13,0,0,16,0,18,19,0,21,22,23,
1866  25,0,27,28,0,30,0,32,33,0,35,0,0,3,0,5,0,0,0,9,10,11,12,0,14,15,16,17,18,19,20,0,22,23,24,
1867  26,27,28,29,0,0,0,33,0,35,1,2,3,0,0,0,0,8,0,0,11,12,0,0,15,16,17,18,19,20,21,22,23,24,25,
1868  27,0,0,30,0,32,33,34,35,1,2,3,4,5,6,7,0,9,0,11,12,0,14,0,16,17,18,0,0,21,22,23,24,25,26,
1869  0,29,0,0,32,0,0,35,1,2,0,4,5,6,0,0,9,0,11,12,0,14,15,16,17,18,0,0,0,0,23,0,25,26,27,
1870  29,30,31,32,33,0,0,1,2,3,0,5,6,7,8,0,10,0,0,13,0,15,0,17,18,0,20,21,22,0,24,25,26,0,0,
1871  30,31,0,33,34,35,0,0,3,0,0,6,7,0,9,10,0,12,13,0,0,16,0,0,19,0,21,22,23,0,25,0,27,28,29,
1872  0,32,33,0,35,1,2,3,4,5,0,7,8,9,10,0,0,13,14,15,16,17,18,0,0,21,22,23,24,0,26,0,0,29,30,
1873  0,33,34,35,1,0,3,0,5,6,7,8,9,0,11,12,13,14,15,16,17,0,19,20,21,22,0,0,25,26,27,28,0,0,0,
1874  33,0,0,1,0,0,4,5,6,7,0,9,10,11,12,0,14,15,16,17,18,19,20,21,22,23,24,25,26,27,0,0,30,31,32,
1875  0,35,0,2,0,0,5,6,7,8,9,10,11,12,0,0,15,0,0,18,19,20,21,0,23,24,25,0,27,28,0,0,31,32,0,
1876  35,1,2,3,4,5,6,0,0,0,10,11,0,13,14,15,16,0,18,19,20,21,22,23,24,0,0,27,28,29,30,31,32,33,34
1877  };
1878 
1879  const int d40_528[] = {
1880  // Size: 40 x 40
1881  40,
1882  // Pre-assigned fields
1883  1,2,3,4,5,0,7,8,9,10,0,0,0,0,15,0,0,0,19,0,21,22,0,0,0,26,27,28,0,0,31,32,0,0,35,0,0,0,39,0,
1884  2,3,0,5,6,7,0,9,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,0,26,0,0,29,30,0,32,33,34,0,0,0,38,39,0,1,
1885  3,4,0,6,7,8,9,0,0,0,0,0,0,16,0,0,0,0,21,22,23,24,25,26,27,28,29,30,0,0,0,34,35,0,37,38,39,40,1,2,
1886  0,5,6,0,8,9,10,0,12,0,14,0,16,17,18,19,0,0,0,0,24,25,0,27,28,29,0,31,32,33,0,35,36,0,38,0,0,1,2,0,
1887  5,6,7,0,9,0,11,12,13,14,15,16,17,0,19,0,21,0,23,24,25,26,27,28,0,30,0,32,33,0,35,0,37,38,0,40,1,0,0,4,
1888  6,7,8,9,0,11,12,13,14,15,0,17,18,0,20,21,22,0,24,25,0,27,0,29,30,31,0,33,34,35,0,37,38,39,0,1,2,0,0,5,
1889  7,8,0,10,0,0,0,14,15,16,17,18,19,20,21,0,23,24,25,0,27,28,29,30,31,32,33,34,35,36,37,38,39,0,1,2,3,4,5,6,
1890  0,9,10,0,12,13,14,15,16,17,0,19,20,0,0,23,24,25,26,27,28,29,0,31,32,33,0,0,36,37,0,39,40,1,0,0,0,5,0,0,
1891  9,10,11,12,13,14,0,0,17,18,19,0,21,22,23,24,25,0,0,28,29,0,0,0,33,34,0,0,37,38,39,0,1,2,0,0,5,0,7,8,
1892  10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,0,0,29,30,31,0,0,0,35,36,37,38,39,40,1,0,3,4,5,6,0,8,9,
1893  11,12,0,14,15,16,17,18,19,0,0,0,23,24,25,26,27,28,0,0,31,0,33,0,35,0,0,38,39,40,0,2,0,4,5,6,7,0,9,10,
1894  0,13,14,15,0,17,0,0,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,0,36,37,0,39,40,0,0,3,4,5,6,0,0,0,10,0,
1895  0,0,15,16,0,18,19,20,0,0,23,24,25,26,0,28,29,0,31,0,0,34,35,36,37,38,39,0,0,2,3,0,0,6,7,8,9,10,11,0,
1896  14,15,16,0,18,19,0,21,22,23,24,25,26,27,28,0,30,31,32,33,34,0,36,37,38,39,0,1,0,3,4,0,6,0,0,9,10,11,12,13,
1897  15,16,17,0,0,20,21,22,23,0,25,26,27,28,29,30,31,32,33,0,35,36,37,0,0,40,0,2,3,4,0,6,7,8,0,10,11,12,13,0,
1898  0,0,0,19,20,21,0,0,24,25,26,0,28,29,30,31,32,0,34,35,36,0,0,39,40,1,2,0,0,5,0,7,0,9,10,11,0,13,0,15,
1899  17,18,19,0,21,22,23,0,0,26,27,0,29,30,31,32,33,34,0,36,0,38,0,40,1,2,3,0,5,6,0,8,0,0,11,12,0,14,15,16,
1900  18,0,0,21,22,23,24,0,26,0,28,0,0,31,0,0,34,0,0,37,38,39,40,1,2,3,4,0,6,7,8,9,0,11,12,0,14,0,16,0,
1901  0,20,21,22,0,24,0,0,0,28,29,30,31,32,33,34,0,36,37,38,0,0,1,2,3,0,0,6,7,8,0,10,0,12,13,0,0,0,17,0,
1902  0,0,22,23,0,25,0,27,28,29,0,31,0,33,34,35,36,37,0,39,40,0,2,3,4,5,6,7,8,9,10,0,0,13,0,0,16,17,0,0,
1903  21,22,23,24,25,26,27,0,29,30,31,0,33,34,35,36,37,0,39,40,1,2,3,4,0,6,7,8,0,0,0,12,13,14,0,16,0,18,19,20,
1904  0,23,0,0,0,0,28,29,30,31,32,33,34,35,36,37,38,0,0,0,2,0,0,5,6,0,0,0,10,11,12,13,14,15,0,17,18,0,20,21,
1905  23,0,25,26,27,28,29,30,31,32,33,34,35,0,0,0,39,40,0,2,3,4,5,6,0,0,0,10,0,0,13,14,0,16,17,18,0,20,21,22,
1906  24,0,0,27,28,0,0,0,0,33,0,35,0,0,0,39,40,1,2,3,4,0,6,7,8,9,10,11,12,13,14,15,0,0,0,19,20,21,0,23,
1907  0,26,27,28,0,30,0,32,33,34,0,0,37,38,0,40,1,2,3,4,5,6,7,8,0,0,0,12,13,14,0,0,0,0,19,20,21,0,23,24,
1908  26,27,28,0,0,0,32,0,34,35,0,37,0,39,0,1,2,0,4,0,0,7,0,9,0,0,0,13,14,0,16,0,0,0,20,0,22,23,0,25,
1909  0,28,0,30,31,0,33,34,35,0,37,0,0,40,1,0,3,4,0,6,7,0,9,10,11,0,0,0,15,16,17,18,19,20,21,0,0,24,25,0,
1910  28,29,0,31,32,0,34,0,0,0,38,39,0,0,2,3,4,0,6,7,8,9,10,11,12,13,14,0,16,17,18,19,20,21,0,23,24,25,26,27,
1911  0,0,0,32,33,34,0,0,37,38,0,40,1,0,0,0,5,6,7,8,9,0,0,12,13,14,0,16,0,0,0,20,21,22,23,24,25,26,27,0,
1912  30,0,32,33,0,35,36,37,38,39,0,1,2,0,0,0,0,0,0,0,0,11,12,0,14,15,16,0,18,0,0,0,22,0,24,0,26,0,28,29,
1913  0,0,0,0,35,36,37,0,0,40,1,2,3,4,0,6,7,8,0,10,11,0,0,0,0,0,17,0,0,20,21,0,23,24,0,26,27,28,0,30,
1914  32,0,34,0,36,0,0,39,40,1,2,3,4,5,6,0,8,9,10,11,0,13,14,0,0,17,18,0,20,0,0,23,0,25,0,27,28,0,30,31,
1915  0,0,35,36,37,38,39,40,0,0,0,4,5,6,7,8,9,10,0,12,13,14,15,16,17,18,19,0,0,22,23,24,25,26,27,28,0,30,31,0,
1916  0,35,36,0,38,39,40,1,2,0,4,0,0,7,8,0,10,11,12,0,14,15,16,17,18,0,20,0,0,23,24,25,26,27,28,29,30,31,32,33,
1917  35,36,37,38,0,40,1,2,3,0,5,6,7,8,9,10,11,12,0,14,15,16,17,18,19,20,21,22,23,24,0,0,0,0,29,30,31,32,0,34,
1918  0,37,0,39,40,0,0,3,0,0,6,0,8,9,0,11,0,13,0,15,0,0,18,19,0,21,22,23,0,25,26,27,28,29,30,31,32,33,0,35,
1919  0,38,39,40,1,2,0,4,5,0,0,0,0,10,0,0,13,14,15,16,17,18,19,0,21,22,0,0,0,0,0,28,0,30,31,32,33,34,35,36,
1920  38,39,40,1,2,3,4,5,6,0,8,0,0,11,12,0,14,0,16,0,18,0,0,0,22,23,0,0,26,27,28,0,30,31,32,33,34,0,36,37,
1921  0,40,1,2,3,4,0,6,7,8,0,10,11,12,13,14,15,16,17,18,19,20,21,22,0,0,0,26,0,28,0,30,31,0,33,0,35,36,37,38,
1922  40,1,2,3,0,5,0,7,8,9,10,0,12,13,14,15,0,17,18,19,0,0,0,23,0,25,0,0,28,29,30,31,0,33,34,35,0,37,0,39
1923  };
1924 
1925  const int d40_544[] = {
1926  // Size: 40 x 40
1927  40,
1928  // Pre-assigned fields
1929  15,0,2,0,34,30,26,29,18,0,35,37,4,13,6,0,14,25,21,20,0,9,0,24,38,3,16,0,40,0,28,23,33,11,10,17,39,22,31,5,
1930  27,22,7,26,17,40,0,1,13,28,12,0,31,0,30,8,20,5,33,38,10,0,29,23,0,0,2,0,37,18,24,4,14,32,0,9,25,21,0,0,
1931  0,10,0,4,0,32,14,26,0,0,18,0,36,9,0,0,27,11,1,35,0,16,33,37,0,31,8,0,0,40,0,0,6,5,29,34,3,7,24,30,
1932  1,0,34,10,39,0,0,0,6,0,23,35,25,0,27,0,9,3,5,24,29,37,0,0,0,0,30,22,0,2,13,31,26,0,32,38,11,15,0,0,
1933  34,0,5,22,1,19,38,0,0,18,0,0,32,2,36,11,0,16,0,12,33,30,0,29,21,23,15,0,0,27,10,0,24,0,0,7,31,4,28,13,
1934  0,29,27,13,0,24,22,0,0,0,16,3,10,34,19,4,33,30,15,9,20,0,0,6,7,36,40,0,39,17,0,0,21,14,31,18,26,2,11,23,
1935  0,32,4,0,0,22,25,34,0,26,0,27,0,0,40,2,11,29,0,0,16,3,8,1,19,18,20,14,0,21,5,0,0,9,0,0,35,6,0,0,
1936  11,0,38,17,2,31,0,36,0,5,0,25,40,4,16,10,19,0,37,18,0,0,0,32,9,7,33,23,0,0,0,0,39,12,0,0,24,0,29,21,
1937  35,0,30,0,0,39,0,38,28,6,0,23,0,0,31,33,36,0,27,29,3,12,20,0,18,0,37,21,15,24,16,0,0,8,2,0,1,17,25,0,
1938  25,0,15,6,9,29,0,18,21,23,26,28,16,30,24,37,0,17,14,22,0,5,11,0,10,0,34,0,0,0,31,2,36,4,1,32,0,19,0,0,
1939  0,0,0,0,38,0,0,0,39,16,22,24,13,6,0,0,12,18,2,11,28,0,1,0,31,0,0,0,0,30,32,0,34,36,26,0,4,5,15,19,
1940  7,1,10,21,40,35,9,0,0,0,3,34,12,36,0,13,8,0,0,27,32,17,25,0,39,0,23,26,6,0,0,24,0,0,0,20,15,37,0,0,
1941  6,20,39,0,0,26,4,30,0,40,0,0,29,14,0,1,0,7,0,8,0,38,2,28,5,0,32,0,0,11,25,37,0,0,22,0,10,12,27,36,
1942  0,27,8,0,0,2,0,25,32,29,36,15,0,11,21,17,1,9,19,4,18,34,5,0,23,0,12,0,22,0,38,35,7,28,14,0,37,24,0,26,
1943  0,0,0,29,0,11,0,20,14,25,0,0,26,40,38,28,6,0,0,13,34,24,16,22,0,0,0,0,35,33,9,0,0,31,8,1,0,18,0,39,
1944  0,0,0,16,11,21,7,39,29,0,34,4,1,0,25,24,32,0,3,0,6,33,0,5,36,0,22,35,18,19,0,26,38,0,13,0,9,30,0,0,
1945  3,38,24,0,14,36,0,2,12,10,11,19,0,8,0,39,4,6,40,16,15,1,27,0,30,37,0,17,0,0,0,22,29,0,0,26,0,23,0,35,
1946  21,23,18,19,29,25,10,6,24,0,1,14,15,5,35,0,0,0,13,28,0,26,0,34,0,0,4,38,0,16,12,30,37,17,0,40,20,36,0,22,
1947  40,0,0,0,22,0,32,8,35,0,25,20,0,0,7,18,37,38,29,30,0,14,0,0,4,0,0,33,2,39,0,0,16,10,0,23,6,0,26,17,
1948  16,15,14,18,0,0,12,0,0,0,0,32,0,0,26,40,34,28,0,37,35,8,30,39,33,5,6,19,0,0,0,0,10,3,38,0,29,20,17,25,
1949  0,12,29,15,32,34,39,0,0,0,30,0,0,26,33,0,31,40,35,3,17,0,21,27,14,2,0,25,24,4,0,1,0,18,36,28,38,16,9,37,
1950  9,17,20,0,24,1,0,19,0,35,32,40,5,37,0,0,0,0,36,21,31,10,4,26,0,33,29,3,16,25,0,38,22,2,18,13,0,0,0,6,
1951  10,13,26,12,0,0,40,0,0,4,0,0,21,0,28,0,3,0,17,0,30,0,37,14,2,22,0,0,23,32,39,27,18,34,6,29,16,8,1,0,
1952  20,0,16,34,28,0,21,27,40,0,2,36,0,0,15,29,0,37,10,31,13,0,3,35,0,6,0,7,0,14,1,0,17,23,5,19,30,39,0,32,
1953  33,37,19,23,25,17,0,35,31,30,0,5,24,39,0,0,22,32,0,40,0,21,7,0,27,12,38,36,29,0,15,0,0,0,20,16,28,26,0,11,
1954  14,34,11,33,0,12,3,37,19,20,9,0,6,32,17,30,0,23,31,1,0,4,0,0,0,13,27,2,0,35,0,29,15,22,39,0,0,38,5,16,
1955  32,18,17,36,0,4,0,0,33,2,40,26,0,0,8,0,21,14,11,7,37,28,6,0,0,15,39,9,34,13,0,0,0,20,12,22,5,10,38,1,
1956  39,0,33,2,0,5,0,28,34,0,38,0,11,25,0,6,0,0,7,0,36,0,0,18,0,24,0,8,20,0,17,19,23,0,27,0,40,35,30,3,
1957  17,24,23,9,0,14,5,31,25,0,28,11,0,38,0,0,16,35,32,19,0,7,0,12,0,0,18,0,0,37,3,0,13,0,0,0,22,0,0,29,
1958  2,0,0,37,18,10,1,0,0,9,0,31,3,27,5,21,29,0,6,39,0,0,22,0,11,28,35,13,0,15,19,0,25,38,0,8,7,0,34,20,
1959  30,11,21,35,0,33,24,32,10,31,5,0,8,0,0,0,25,12,0,14,0,18,39,38,0,0,0,27,19,0,29,0,0,7,0,0,0,13,16,40,
1960  4,19,40,14,26,0,0,22,0,0,0,21,35,0,0,9,5,27,0,15,0,6,13,2,3,25,0,30,12,0,34,0,31,33,17,0,32,29,18,24,
1961  13,40,37,0,27,0,0,9,30,0,33,0,14,0,0,38,0,0,28,6,11,0,24,0,1,0,26,0,0,23,7,16,0,0,21,3,12,34,19,31,
1962  23,25,3,0,8,28,0,7,16,27,0,17,20,15,13,22,2,33,12,0,19,31,36,0,6,10,1,0,26,38,14,34,40,0,0,24,18,9,35,0,
1963  22,31,0,7,37,6,0,15,27,0,0,0,18,0,1,5,38,0,0,0,24,11,0,8,0,30,13,4,32,34,33,12,20,0,0,10,14,28,0,0,
1964  29,5,12,40,0,37,33,16,0,36,8,39,27,0,3,26,18,0,38,0,1,0,14,0,0,4,19,32,13,0,35,0,9,24,0,25,23,31,21,28,
1965  36,0,6,0,15,16,2,12,3,13,0,0,0,21,0,0,30,0,22,0,0,19,0,9,37,14,0,24,33,29,0,0,1,35,4,27,0,25,0,18,
1966  0,0,22,0,0,0,11,13,38,34,0,0,0,0,0,35,39,0,0,2,4,0,40,31,17,16,0,29,10,12,0,32,8,26,25,5,0,1,20,27,
1967  26,30,0,0,20,0,0,17,7,19,0,6,0,0,0,16,0,0,8,33,0,39,38,0,12,35,36,0,0,3,4,0,32,0,37,2,0,27,14,0,
1968  0,2,0,8,0,0,0,3,36,22,0,33,34,0,23,14,15,13,25,5,38,0,0,20,0,0,28,0,9,31,26,21,0,16,35,4,19,0,0,12
1969  };
1970 
1971  const int d40_560[] = {
1972  // Size: 40 x 40
1973  40,
1974  // Pre-assigned fields
1975  15,36,2,27,0,0,26,0,18,32,35,37,4,13,0,12,0,0,21,20,8,0,19,0,38,3,16,0,40,7,0,0,33,11,0,17,39,0,31,5,
1976  27,0,7,26,0,0,36,0,13,28,12,16,31,3,30,8,20,5,33,0,0,0,29,23,35,0,0,0,37,18,24,4,14,32,0,0,25,0,6,34,
1977  0,0,0,4,19,32,14,26,17,12,0,0,36,9,20,0,27,11,0,35,0,0,33,37,0,31,0,0,21,40,0,0,6,0,29,34,0,7,24,30,
1978  1,33,34,10,39,0,20,4,6,0,23,35,0,12,0,19,9,3,5,24,29,37,0,0,40,17,30,0,14,2,0,0,26,21,32,38,11,0,36,8,
1979  0,39,0,22,1,19,38,0,26,0,0,0,0,2,36,11,35,16,0,12,33,30,0,29,0,23,0,0,17,27,0,14,24,25,0,7,31,0,28,13,
1980  38,0,0,13,12,24,22,5,8,1,16,0,10,34,0,4,33,30,15,9,20,0,35,6,7,0,40,28,0,0,37,0,0,14,0,0,26,0,11,23,
1981  0,0,4,38,33,22,25,34,0,26,0,0,17,0,40,2,11,0,0,36,0,0,0,0,19,18,20,14,28,0,5,15,0,9,23,31,35,6,13,0,
1982  0,8,38,17,2,31,13,36,20,0,27,0,40,0,16,10,0,22,37,18,0,0,34,32,0,7,0,23,1,28,30,6,39,12,15,14,0,3,0,21,
1983  35,9,0,32,0,39,34,38,28,0,13,23,22,0,31,33,36,0,27,29,3,12,0,7,18,0,0,21,15,0,16,40,0,8,0,0,0,17,25,14,
1984  0,0,15,6,9,29,8,18,0,23,0,28,0,30,0,37,40,17,14,22,0,5,0,3,10,38,34,12,27,20,0,2,0,4,1,32,13,0,0,33,
1985  37,7,0,0,0,3,23,21,39,0,22,24,13,6,0,0,0,18,2,11,28,40,1,33,0,0,0,10,0,30,32,17,34,0,26,35,4,5,15,19,
1986  0,1,10,21,40,0,0,0,0,33,3,0,12,0,0,13,0,0,16,27,32,17,25,0,39,19,23,26,0,5,18,24,28,0,30,20,0,0,22,38,
1987  6,0,39,0,0,0,4,0,9,0,15,0,0,0,0,1,0,7,0,0,23,38,0,28,0,0,32,0,0,0,0,37,0,0,22,0,10,12,0,0,
1988  0,27,8,3,13,2,6,0,0,29,36,15,30,0,21,17,1,0,19,4,0,34,5,40,23,20,12,16,22,10,38,0,7,28,14,39,37,0,33,26,
1989  0,21,0,29,7,11,0,20,14,0,0,0,26,0,0,28,6,4,23,13,0,0,16,0,0,32,3,37,35,33,9,0,0,31,8,1,0,0,0,39,
1990  8,14,0,16,11,21,0,39,0,37,34,4,0,31,0,0,32,0,3,17,6,33,0,5,0,0,0,0,0,19,2,26,38,0,13,0,9,30,10,0,
1991  0,38,0,0,14,36,0,0,12,0,11,19,7,8,18,39,0,6,0,16,0,0,27,25,0,0,21,17,5,0,20,22,0,0,0,26,33,23,32,35,
1992  21,23,18,19,29,25,10,6,0,0,1,14,15,5,0,0,7,2,0,0,9,26,32,34,0,0,4,0,11,16,12,30,0,17,33,0,20,36,3,22,
1993  40,3,31,0,22,0,0,8,35,15,25,0,0,0,0,0,0,38,0,30,0,14,12,19,4,34,0,33,0,0,36,13,16,0,24,23,6,0,0,17,
1994  16,0,0,18,21,0,12,0,1,24,0,0,2,23,26,0,0,28,9,37,35,0,30,39,33,5,0,19,31,22,27,7,10,3,38,0,29,0,0,25,
1995  0,0,29,15,32,34,39,10,11,8,0,22,23,26,0,20,31,0,35,3,0,0,0,27,14,2,7,0,0,4,0,0,0,0,36,0,38,16,0,37,
1996  9,0,0,30,24,0,27,19,0,0,0,0,5,0,12,0,0,0,36,21,31,10,0,26,28,0,29,3,16,25,11,0,22,0,0,13,34,14,39,6,
1997  10,13,26,12,35,0,40,33,5,4,19,0,0,0,28,36,0,15,17,0,0,20,0,14,2,22,31,11,0,32,0,27,18,0,6,0,16,8,0,0,
1998  20,4,0,34,28,9,21,27,40,11,2,36,0,0,15,0,26,0,10,0,13,0,3,35,0,0,24,0,38,14,0,0,0,23,5,19,30,0,0,32,
1999  33,37,19,23,25,0,18,35,0,30,6,5,0,0,0,0,0,0,34,40,0,21,0,13,27,12,38,36,29,0,15,9,0,1,20,16,0,26,4,0,
2000  14,34,0,33,0,12,3,0,19,0,9,18,6,0,0,0,28,23,31,1,25,0,26,36,24,13,0,2,0,0,0,0,0,22,0,21,0,38,5,16,
2001  32,18,0,0,31,0,29,0,33,0,40,26,19,35,8,25,0,14,11,7,0,0,6,30,16,0,39,0,34,0,0,0,0,20,12,0,5,10,0,1,
2002  39,16,33,0,4,5,31,28,34,0,0,12,11,25,29,6,0,21,7,26,0,0,10,18,32,0,9,8,20,1,17,0,23,37,27,0,0,35,30,3,
2003  0,24,23,0,36,14,5,0,0,21,0,0,0,38,2,34,0,35,32,19,27,7,15,12,26,0,18,20,4,37,3,10,0,6,40,30,22,33,0,0,
2004  0,26,0,37,18,10,1,23,4,0,0,31,3,0,5,0,0,24,6,39,0,36,22,17,11,28,35,13,0,15,0,33,0,38,16,0,7,40,0,20,
2005  0,11,0,35,23,0,0,0,0,0,5,0,8,20,0,15,0,12,4,14,22,0,39,38,34,9,0,27,0,26,29,36,3,7,28,6,2,13,0,40,
2006  4,19,40,0,0,0,16,22,23,0,20,21,35,0,11,0,5,0,39,15,0,6,13,2,0,25,0,0,12,36,0,0,31,0,17,37,0,0,18,24,
2007  13,0,37,25,27,0,0,9,30,17,33,2,14,22,32,38,10,0,28,6,11,29,24,4,1,8,26,18,0,23,0,16,0,15,21,3,12,0,19,31,
2008  23,25,3,39,8,28,37,7,16,0,0,17,0,15,13,22,2,33,12,32,0,0,36,21,6,10,0,0,26,38,0,34,0,30,11,24,18,9,0,4,
2009  0,0,0,7,37,6,0,15,27,3,21,29,18,16,1,0,38,36,26,23,0,0,17,8,25,0,13,4,0,0,33,0,0,39,9,0,14,28,40,2,
2010  29,5,12,0,30,37,33,16,22,36,8,39,27,17,3,0,0,34,0,10,1,2,14,0,20,4,0,0,13,0,0,11,0,24,0,25,0,0,21,28,
2011  36,28,0,0,15,0,2,12,3,13,0,10,0,21,39,0,30,0,0,0,40,19,0,0,0,14,11,0,0,29,8,20,0,35,0,27,0,25,23,0,
2012  0,0,0,28,0,0,0,0,38,0,24,7,37,33,0,35,39,19,30,0,0,23,0,31,0,16,14,29,10,0,0,32,8,26,0,0,36,1,0,0,
2013  0,30,13,11,20,23,15,17,7,19,31,6,28,29,0,16,24,1,8,0,5,0,38,10,0,35,0,34,25,3,0,18,0,40,37,0,0,0,0,0,
2014  24,2,1,8,6,7,0,3,0,22,17,33,34,0,0,0,15,13,25,0,0,27,0,20,0,39,28,40,9,0,0,21,11,16,0,4,19,32,0,12
2015  };
2016 
2017  const int d50_750_bal[] = {
2018  // Size: 50 x 50
2019  50,
2020  // Pre-assigned fields
2021  43,28,49,45,17,31,9,0,19,26,0,29,18,41,15,14,32,0,0,0,3,13,50,8,0,10,2,1,0,25,27,11,0,39,47,0,20,0,36,12,0,5,0,44,37,0,0,40,4,0,
2022  26,18,14,0,43,24,6,17,9,38,0,2,0,12,0,46,47,0,44,15,0,0,0,0,42,8,48,41,30,32,4,25,37,33,19,0,0,34,11,35,40,0,10,23,0,39,50,0,0,5,
2023  5,38,10,32,18,23,21,31,41,16,17,0,36,0,50,0,33,37,0,40,48,25,2,0,0,49,0,0,3,7,14,29,30,44,0,46,43,0,0,0,24,0,15,0,0,22,1,8,27,12,
2024  18,0,2,36,26,48,0,27,22,0,0,20,41,0,30,25,11,7,9,28,0,39,21,37,0,15,24,40,0,3,35,0,14,10,0,0,4,0,8,34,0,23,43,29,5,32,0,0,31,6,
2025  11,36,0,14,37,0,7,10,0,30,38,0,4,1,0,18,22,6,32,2,20,50,0,29,39,31,3,12,0,0,42,0,0,34,26,41,25,8,19,44,13,0,35,0,0,46,5,0,49,0,
2026  40,0,33,29,16,0,0,1,0,36,0,0,0,0,31,0,0,0,5,27,0,6,8,49,2,0,4,34,35,20,24,32,46,47,25,22,38,0,50,23,19,13,30,45,15,0,14,11,7,3,
2027  0,0,25,0,30,27,50,45,0,0,31,42,13,4,10,35,0,40,28,19,15,11,49,36,0,0,17,8,16,34,21,6,7,0,0,0,47,0,0,29,0,0,5,3,38,44,37,9,14,32,
2028  45,0,0,15,6,44,0,37,43,50,13,8,0,33,19,36,7,23,20,5,30,38,1,40,29,0,0,9,32,0,0,0,0,46,0,26,17,0,35,4,21,0,48,16,0,0,3,18,42,47,
2029  0,30,11,16,14,33,42,15,0,10,44,0,17,7,0,49,0,4,0,22,37,26,0,45,34,47,5,50,13,24,0,48,8,23,20,27,9,0,0,0,0,25,0,28,39,6,19,0,0,2,
2030  0,12,24,19,42,6,49,0,0,31,43,27,0,37,45,17,0,0,3,8,21,36,34,15,0,44,0,10,5,41,33,2,50,22,0,48,29,14,28,0,0,9,16,0,0,0,0,46,18,1,
2031  19,48,4,13,0,1,40,11,49,23,0,0,35,34,20,0,9,17,26,43,0,44,25,18,46,0,21,0,0,5,0,12,16,29,28,0,15,47,0,27,0,24,0,37,0,10,8,42,0,14,
2032  33,5,39,50,24,12,20,6,10,0,30,18,0,16,26,0,27,0,0,4,0,40,41,31,36,48,25,0,0,21,0,7,0,14,0,2,44,32,37,45,0,3,29,38,1,0,0,22,34,0,
2033  7,3,0,47,0,42,0,21,37,0,15,24,34,31,36,1,0,33,0,11,10,12,0,32,25,6,0,49,48,14,8,0,0,27,17,43,0,0,23,16,26,0,0,46,40,41,18,38,0,50,
2034  34,7,19,33,0,0,30,49,47,11,16,36,9,14,4,41,0,0,0,26,6,0,31,10,40,18,45,32,0,37,0,23,0,25,50,0,13,39,44,0,0,0,0,2,27,0,12,5,46,17,
2035  3,32,36,2,23,0,16,0,21,22,35,33,7,0,0,0,37,0,34,31,50,0,0,12,0,1,0,44,4,0,17,0,49,45,0,0,10,24,9,6,5,30,28,0,43,19,13,20,40,26,
2036  46,39,0,0,12,0,8,0,0,49,20,1,24,0,41,16,40,0,0,0,26,0,47,44,11,2,36,28,23,0,45,0,21,19,35,3,22,6,32,18,9,50,0,0,7,17,0,48,15,25,
2037  48,9,46,34,49,0,33,28,44,42,19,0,32,0,27,10,0,0,0,3,0,16,11,23,0,13,29,14,20,15,7,17,25,0,45,36,40,18,31,38,1,22,0,0,47,0,24,0,0,0,
2038  38,37,1,27,20,0,0,35,12,0,4,13,6,8,0,0,23,9,0,0,44,17,14,0,0,33,0,43,46,16,0,45,36,21,0,32,34,48,0,22,7,18,0,26,29,5,41,24,0,10,
2039  37,47,0,30,4,25,0,0,36,3,46,0,40,20,0,6,34,49,15,10,0,31,28,35,5,7,16,39,1,0,9,0,44,0,23,0,33,29,41,0,0,0,12,11,24,0,42,45,26,0,
2040  36,0,32,31,0,15,12,8,0,0,0,23,39,42,25,0,44,35,11,0,0,0,0,30,45,41,49,0,27,40,0,38,6,16,9,13,21,2,34,0,37,33,14,18,26,3,0,19,0,43,
2041  32,0,22,48,0,0,0,14,0,39,24,31,0,40,35,13,0,36,27,44,23,34,37,47,38,0,7,0,42,49,19,18,0,0,16,29,0,26,5,0,3,4,8,9,17,43,0,12,6,0,
2042  25,19,15,0,28,0,0,39,20,5,0,0,21,0,0,50,42,45,7,35,16,32,13,17,33,0,0,4,22,46,18,36,40,24,49,47,0,44,0,2,0,38,11,30,0,12,0,0,9,34,
2043  0,33,30,39,32,11,0,23,28,8,21,49,0,38,0,0,31,15,18,0,25,37,19,24,44,22,34,42,6,0,36,43,12,17,0,9,0,0,3,7,4,0,0,0,0,0,29,35,48,45,
2044  0,40,0,9,45,29,28,48,4,0,5,0,0,3,0,15,0,0,19,39,17,0,23,22,14,0,0,47,25,42,41,35,2,1,18,6,32,36,0,8,0,46,37,24,16,30,11,0,0,20,
2045  12,0,47,7,0,18,25,36,0,0,40,38,5,49,1,0,35,27,50,33,13,41,0,0,37,0,42,11,39,28,29,16,0,0,0,10,23,0,0,0,2,14,9,21,8,31,0,17,20,46,
2046  0,14,0,37,7,0,4,29,24,0,26,0,0,36,0,43,0,25,42,0,8,35,3,6,15,11,13,33,0,0,16,44,39,28,0,21,50,38,27,0,0,40,22,31,32,45,49,30,23,0,
2047  44,8,0,0,15,38,0,30,32,9,6,0,0,47,34,0,45,20,21,12,0,0,10,39,31,16,23,18,24,4,0,0,17,35,41,0,0,0,42,14,28,36,46,49,33,0,27,0,25,22,
2048  9,50,28,23,25,14,43,0,0,34,48,21,49,0,0,33,46,0,0,17,0,0,15,0,0,27,47,19,29,0,0,41,35,0,38,44,16,30,45,42,36,20,7,0,0,1,32,31,37,40,
2049  0,46,38,25,29,22,36,0,40,13,0,10,0,0,44,7,39,0,24,14,42,2,0,0,0,0,35,20,37,17,30,5,23,0,4,12,45,41,1,43,48,11,18,6,0,0,9,0,33,0,
2050  50,29,0,0,0,13,35,16,8,25,12,32,44,46,49,0,0,14,4,0,28,7,5,2,20,36,0,38,17,43,39,10,0,3,21,19,30,40,0,0,15,0,0,0,45,11,23,0,0,37,
2051  39,6,0,3,0,0,47,9,45,18,0,34,0,0,13,37,50,16,23,7,0,5,0,42,48,17,31,0,12,0,22,4,0,36,15,25,41,11,0,21,14,19,49,20,10,29,0,26,0,0,
2052  27,0,42,21,3,34,0,0,33,29,32,46,30,0,0,0,36,0,10,0,0,1,4,7,16,23,37,17,26,13,12,0,15,2,31,14,0,43,0,24,44,49,6,19,0,9,20,0,8,0,
2053  0,0,20,42,2,0,0,0,29,27,50,0,31,21,0,23,8,18,30,32,33,46,40,0,0,12,43,0,0,0,25,9,0,15,34,17,0,37,14,10,41,47,26,0,13,24,28,44,5,39,
2054  0,0,45,0,5,16,34,13,46,0,18,41,38,26,0,9,0,28,0,0,47,0,20,0,49,30,33,0,0,8,32,27,31,42,10,1,37,3,22,36,11,21,19,25,44,35,17,0,0,0,
2055  17,34,0,0,8,20,32,0,0,0,2,22,1,23,6,21,18,0,45,36,29,0,39,46,10,0,0,35,0,27,0,24,0,41,5,33,0,15,38,30,31,37,42,12,19,13,0,47,28,0,
2056  23,10,5,0,0,46,44,0,27,40,0,16,15,0,17,30,0,34,41,0,11,21,35,0,9,38,22,37,19,0,0,0,0,31,7,45,49,0,18,32,47,2,39,36,0,26,43,14,3,0,
2057  0,0,0,38,0,0,29,32,42,7,0,19,14,15,47,0,30,41,0,1,0,24,48,0,22,45,46,0,21,44,0,28,11,0,8,4,3,12,40,39,20,0,2,13,6,18,31,37,0,16,
2058  42,27,0,28,36,32,13,7,18,4,45,39,2,5,43,48,24,50,0,0,49,15,0,0,0,0,30,0,11,0,44,0,22,0,0,0,0,25,20,9,34,41,47,33,14,23,40,10,0,35,
2059  4,0,8,0,0,2,0,0,6,32,0,15,43,9,40,28,19,39,25,23,34,18,0,16,0,0,38,48,33,30,3,22,41,0,29,5,0,27,0,13,0,35,17,0,12,50,0,1,47,36,
2060  24,22,0,0,1,0,26,0,7,0,0,4,37,0,18,0,15,44,14,21,36,0,16,13,0,28,50,23,10,47,34,3,20,48,43,35,0,46,6,0,38,0,40,0,11,33,39,0,45,31,
2061  15,35,26,22,44,50,37,18,0,12,36,48,0,27,3,8,0,32,43,0,24,0,0,14,17,0,19,0,0,45,0,0,38,20,39,11,31,10,49,5,0,6,0,40,9,0,0,41,1,7,
2062  0,4,0,0,0,35,46,26,0,1,0,14,33,28,24,44,49,42,40,30,41,0,36,0,32,5,0,45,15,9,38,19,13,0,0,0,6,16,0,25,12,31,23,0,20,8,0,43,39,21,
2063  0,45,17,0,40,26,23,42,3,24,11,25,22,10,14,5,0,29,46,0,38,49,27,0,43,9,32,36,0,0,50,20,47,0,0,0,8,21,0,31,39,15,0,4,0,0,44,7,19,0,
2064  0,0,37,46,13,0,18,34,5,14,39,17,0,0,28,38,3,11,35,9,22,0,42,50,41,43,0,0,7,1,0,15,0,0,33,30,36,0,2,40,16,0,0,8,31,4,0,21,29,19,
2065  0,0,31,0,0,41,5,2,0,21,1,37,27,32,11,19,10,48,6,29,39,33,45,20,13,0,0,0,8,38,23,0,34,40,14,0,24,4,12,0,50,0,3,0,42,0,46,0,44,18,
2066  41,0,9,20,0,7,38,4,13,0,14,0,46,0,39,0,16,19,36,0,43,30,12,5,24,3,1,0,34,31,10,0,29,26,27,0,0,28,17,0,0,8,0,0,35,42,47,32,50,15,
2067  0,43,35,0,19,36,27,0,23,0,34,0,16,22,46,24,26,38,0,18,14,0,0,25,47,32,41,3,0,0,37,31,0,0,48,42,0,0,15,33,17,1,21,50,49,20,10,13,0,28,
2068  28,20,6,8,21,5,0,0,0,0,10,0,29,11,33,26,2,13,1,50,0,23,0,0,0,4,0,31,14,39,0,37,45,0,0,24,46,0,30,17,27,0,32,35,18,49,15,36,16,42,
2069  10,13,23,18,0,30,0,20,50,17,0,5,3,45,37,39,12,0,0,42,0,19,44,0,7,34,0,29,0,6,31,14,33,4,46,0,2,9,24,0,8,32,38,0,22,16,36,0,0,0,
2070  1,15,3,41,48,4,24,22,14,37,9,35,0,43,0,32,17,5,33,0,19,42,0,27,6,0,8,0,0,0,49,0,18,38,36,34,0,20,0,0,25,44,0,10,0,0,16,23,21,13
2071  };
2072 
2073  const int d50_825_bal[] = {
2074  // Size: 50 x 50
2075  50,
2076  // Pre-assigned fields
2077  0,2,3,4,0,0,7,0,9,10,11,0,13,14,0,16,17,18,19,20,0,22,23,24,25,0,0,0,29,30,0,32,33,0,35,36,0,0,0,40,41,42,43,44,0,0,47,48,49,50,
2078  0,3,4,5,6,0,8,9,10,11,0,13,14,0,16,0,0,19,20,0,22,23,24,0,0,27,28,29,30,0,32,0,34,35,36,0,38,0,40,41,0,0,0,45,46,47,48,49,50,1,
2079  3,0,0,6,7,8,9,0,11,12,13,14,15,16,0,0,0,20,21,0,23,0,25,26,27,0,29,0,31,32,0,34,0,36,37,0,39,0,41,42,0,44,45,0,47,48,49,50,1,0,
2080  4,5,6,7,8,9,10,0,12,0,14,0,16,0,18,19,20,0,22,23,0,0,26,0,0,29,30,31,0,33,0,0,36,37,38,39,0,41,42,43,44,45,46,0,0,0,0,1,2,3,
2081  0,6,7,8,9,10,0,12,0,14,15,16,17,18,19,20,0,0,23,24,25,0,27,28,29,30,31,32,33,0,0,36,37,0,0,40,0,0,43,44,45,46,47,0,49,0,0,0,3,4,
2082  0,7,8,9,10,0,12,13,0,15,16,17,0,0,0,21,22,23,24,0,26,0,28,0,30,31,32,33,34,35,36,37,0,0,0,41,0,43,44,45,46,47,48,0,50,0,2,3,0,5,
2083  7,0,9,10,0,12,13,14,15,16,0,0,19,20,0,0,23,24,25,26,27,0,0,30,0,32,33,34,35,0,37,38,39,40,41,0,0,44,45,0,47,0,0,0,1,2,0,4,5,6,
2084  8,9,10,0,12,0,0,15,16,17,0,0,0,0,22,23,24,25,26,0,0,29,30,31,32,0,34,35,36,37,0,39,40,0,42,0,44,45,46,47,48,0,50,0,2,3,4,5,6,0,
2085  9,0,0,0,0,14,15,0,17,18,19,20,0,0,23,24,25,0,27,0,29,30,31,32,33,34,35,0,37,0,0,40,41,0,43,44,0,46,47,48,49,50,1,0,0,4,0,6,7,8,
2086  10,0,12,13,14,0,16,0,0,19,20,21,22,23,24,25,26,27,0,0,30,31,32,0,0,0,0,0,38,39,0,41,42,43,44,45,46,0,48,0,50,0,2,3,4,5,6,7,0,9,
2087  0,12,0,0,15,16,17,18,0,0,0,22,23,24,25,26,27,0,0,30,31,32,33,34,0,36,0,38,39,40,0,42,43,44,45,46,0,48,49,0,1,2,0,4,0,6,7,8,0,10,
2088  12,13,14,15,16,17,0,19,0,21,22,0,24,0,26,27,28,0,0,0,0,33,0,35,36,37,38,39,40,41,42,43,44,0,0,47,48,0,0,1,0,3,4,5,6,7,0,0,0,11,
2089  0,14,15,16,0,0,0,20,0,22,23,24,0,26,0,0,29,30,31,0,33,0,35,36,0,38,0,0,0,42,43,44,45,46,47,48,49,50,1,2,3,4,0,6,7,0,9,10,0,12,
2090  0,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,0,34,35,36,0,0,0,40,41,42,0,44,0,0,0,48,0,0,1,0,3,4,0,0,7,8,0,10,11,12,0,
2091  15,16,0,18,0,20,0,22,23,24,0,0,27,28,29,0,31,32,0,34,35,0,0,38,39,40,0,42,0,0,45,46,47,0,49,0,0,2,3,4,5,6,7,8,9,0,0,12,13,14,
2092  0,0,18,19,20,21,0,23,24,25,26,0,0,29,30,31,32,0,0,35,0,37,0,0,40,41,0,43,44,45,46,0,48,49,50,1,0,3,0,5,0,7,8,0,0,11,12,13,14,15,
2093  17,18,19,20,0,22,23,24,25,26,0,28,29,30,31,0,0,34,35,0,0,0,39,40,41,42,0,0,0,0,47,48,49,50,1,2,3,4,0,0,7,8,9,0,0,0,13,14,0,16,
2094  18,19,20,0,22,0,0,25,0,0,28,29,30,31,32,33,34,35,0,37,38,39,40,41,42,43,44,0,0,47,48,49,50,1,0,0,4,5,0,7,0,9,0,0,0,13,0,0,16,17,
2095  0,20,21,22,23,24,25,26,0,0,29,30,31,0,0,34,0,0,0,38,39,40,41,42,0,44,0,46,0,48,49,50,1,0,0,4,5,6,0,8,9,10,11,12,13,0,15,16,0,18,
2096  20,21,22,23,0,0,0,27,0,29,0,0,32,33,0,0,36,0,38,39,40,41,42,43,0,45,46,47,48,49,0,1,2,3,0,5,6,7,8,9,10,11,12,0,14,15,0,17,0,0,
2097  21,22,23,0,25,26,0,0,29,30,31,0,33,0,35,36,0,38,39,40,41,42,43,44,45,0,0,48,0,0,1,0,0,4,5,6,7,8,9,0,11,0,13,0,0,16,17,18,19,20,
2098  22,23,0,25,26,27,0,0,30,31,32,33,0,35,36,0,0,0,40,41,42,43,0,45,0,47,48,49,50,1,0,0,0,0,6,0,8,9,10,11,0,13,14,15,0,17,18,0,20,21,
2099  23,0,25,0,27,28,29,0,31,0,33,34,0,36,37,0,0,40,41,42,0,0,0,0,47,48,49,0,0,2,3,4,5,6,7,8,9,10,11,12,0,14,15,0,17,18,0,0,21,22,
2100  24,25,26,27,28,29,30,31,0,33,34,35,0,0,0,39,0,41,42,43,0,45,46,47,0,49,50,0,2,3,4,5,0,0,8,0,10,11,0,13,0,15,16,17,0,0,20,0,22,0,
2101  25,26,27,28,0,30,31,32,33,0,35,36,37,38,39,0,0,42,43,44,0,46,0,0,49,50,1,2,3,4,0,0,0,8,0,0,0,12,13,14,15,16,17,18,19,20,21,0,0,0,
2102  0,27,0,29,0,0,32,33,34,0,36,37,0,39,40,0,0,43,44,45,46,47,48,49,0,1,2,3,4,5,6,7,0,9,10,11,12,0,0,0,0,17,18,0,20,21,22,23,24,0,
2103  27,0,29,0,31,0,33,0,35,0,37,0,39,0,41,42,43,44,45,46,0,48,0,50,1,2,3,4,0,6,7,8,0,10,0,12,13,14,0,0,17,0,19,20,0,22,23,24,25,26,
2104  28,29,30,31,0,33,34,35,36,37,0,39,40,41,0,0,44,0,46,47,48,0,50,0,2,3,4,5,0,7,8,0,10,11,12,0,14,0,16,17,0,19,20,0,0,0,24,25,0,0,
2105  29,30,0,32,0,34,35,0,37,0,39,40,41,42,43,0,45,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,0,12,13,14,0,0,17,18,19,20,21,0,23,24,25,0,27,28,
2106  30,0,32,33,34,0,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,1,0,3,4,0,0,0,8,0,0,11,12,13,0,15,16,0,18,0,20,21,22,23,24,0,0,0,0,0,
2107  31,32,33,0,35,36,0,38,39,40,0,42,0,0,45,46,47,48,49,0,0,2,3,4,0,6,7,0,0,10,11,12,13,14,15,16,17,0,0,0,21,22,0,24,25,0,27,28,29,0,
2108  32,33,34,35,0,0,38,39,40,0,0,0,44,45,0,47,48,49,0,0,0,0,0,5,6,0,8,9,10,0,12,13,14,15,16,17,18,19,0,21,22,23,24,25,26,0,28,29,30,0,
2109  33,34,35,0,37,38,39,40,41,42,43,0,45,46,47,0,0,50,0,2,3,4,5,0,7,0,9,0,11,12,13,14,15,0,17,0,0,0,21,22,23,0,0,26,0,28,29,0,31,32,
2110  34,35,36,37,0,0,40,0,42,43,0,45,46,47,48,49,0,0,0,3,4,0,0,7,8,9,0,0,12,0,14,0,16,17,18,19,20,0,0,23,24,0,26,27,28,0,30,31,32,33,
2111  35,0,37,38,39,0,0,0,43,0,0,46,47,48,0,50,1,2,3,4,0,0,7,8,9,10,11,12,13,14,15,0,17,0,19,0,0,0,23,0,25,0,27,28,29,30,31,32,33,34,
2112  0,37,0,0,0,41,42,43,0,45,0,47,48,49,50,1,2,0,4,5,6,7,8,9,10,0,12,13,0,0,16,0,18,19,20,21,22,0,24,25,26,0,0,29,30,31,0,0,34,35,
2113  0,0,39,40,41,0,43,44,0,46,47,0,0,50,1,2,3,4,0,0,7,8,0,0,11,0,0,14,15,16,17,18,0,20,21,22,23,24,0,26,0,0,29,30,31,32,0,34,35,36,
2114  38,0,0,41,0,43,44,45,46,0,48,49,50,1,0,3,4,0,0,7,8,9,0,11,12,13,14,0,16,17,0,19,20,21,22,23,0,25,0,27,28,0,0,31,0,33,0,35,36,0,
2115  0,0,41,42,0,44,0,46,0,0,49,50,0,0,0,4,5,6,0,0,9,10,11,12,13,0,15,0,17,18,19,20,0,0,23,24,25,26,27,28,0,30,31,32,33,34,35,0,37,38,
2116  40,0,42,0,44,45,0,47,0,49,50,1,2,3,4,5,0,7,8,9,10,11,0,0,0,15,0,17,0,19,20,0,22,23,0,25,26,27,28,0,0,0,32,33,34,35,0,37,38,39,
2117  41,42,0,0,45,46,47,48,0,0,1,2,3,0,5,6,0,8,9,10,11,12,0,0,15,0,17,18,19,20,0,0,0,24,25,0,27,28,29,0,31,32,0,34,35,36,0,38,0,40,
2118  0,43,0,0,46,0,48,49,50,1,0,3,4,5,6,7,8,9,0,11,12,13,14,15,0,0,18,0,0,21,22,23,0,25,26,0,28,0,30,0,32,33,0,35,36,37,38,39,0,41,
2119  0,44,45,46,47,48,49,0,1,0,3,4,0,6,0,0,0,0,11,12,13,0,15,16,17,18,0,20,21,0,23,0,25,0,0,28,29,30,31,32,33,34,35,0,37,38,39,40,41,0,
2120  44,45,0,0,48,49,0,0,0,0,4,5,0,7,0,9,10,11,12,0,14,15,16,0,0,0,20,21,0,23,24,25,26,27,28,29,30,31,32,33,34,35,0,37,38,39,40,0,0,0,
2121  45,46,0,0,49,50,1,0,3,4,5,6,0,0,9,10,11,0,13,14,0,16,17,18,19,20,0,22,23,24,0,26,0,0,0,0,31,32,33,0,0,36,0,38,39,40,41,42,43,44,
2122  46,0,48,0,0,0,0,3,4,5,6,7,0,0,10,11,12,13,14,15,16,17,18,0,20,21,22,23,0,25,26,0,28,29,0,31,0,33,34,0,0,0,38,39,0,41,42,43,0,45,
2123  47,48,0,50,1,2,0,4,5,6,0,0,9,10,11,0,13,14,0,16,0,18,19,20,21,22,23,24,25,0,27,28,29,30,0,32,33,34,35,36,0,38,0,40,0,0,0,0,0,0,
2124  48,0,0,1,2,3,4,5,6,0,0,0,0,11,0,13,14,15,16,17,18,0,20,21,22,23,24,0,26,27,0,0,0,0,32,33,34,35,36,37,38,39,0,41,42,0,44,0,46,47,
2125  49,50,1,2,3,4,5,0,7,8,0,10,11,0,13,14,15,0,0,0,19,0,0,22,23,0,25,26,27,0,29,30,31,32,0,34,0,36,0,0,0,0,41,42,43,44,45,46,47,0,
2126  0,0,0,3,4,5,6,7,0,9,10,0,12,13,14,15,0,17,18,19,0,21,22,0,0,0,0,27,28,0,0,31,32,33,0,35,36,37,38,0,40,41,42,43,44,45,0,0,48,49
2127  };
2128 
2129  const int d60_1080_bal[] = {
2130  // Size: 60 x 60
2131  60,
2132  // Pre-assigned fields
2133  8,0,44,0,0,25,0,26,48,6,57,0,0,7,29,40,0,0,31,36,50,21,32,52,38,49,13,56,37,51,0,0,45,59,1,27,15,9,0,0,47,0,16,33,18,0,39,46,0,0,42,17,54,20,11,0,0,23,53,60,
2134  34,31,17,0,39,0,12,0,3,52,25,55,0,0,16,43,0,0,57,0,30,0,48,13,15,7,49,10,45,60,0,22,11,51,5,29,6,53,19,0,36,0,0,0,58,1,35,33,37,0,47,41,0,0,44,28,0,42,56,24,
2135  0,45,18,44,58,11,53,41,0,35,26,23,0,0,0,49,17,57,1,0,7,19,31,43,21,0,9,54,38,36,4,51,0,39,29,22,60,25,24,0,50,0,0,42,47,0,32,14,0,0,12,0,0,30,13,55,34,20,0,0,
2136  1,0,33,46,20,17,41,49,34,26,35,21,3,13,44,0,0,47,0,0,40,36,38,0,31,27,0,42,30,32,48,2,4,43,8,0,0,24,0,0,58,0,9,7,29,50,51,18,45,0,0,0,39,0,6,0,5,60,57,0,
2137  35,4,10,59,0,57,56,9,60,34,0,0,5,25,38,46,33,0,21,29,53,37,11,42,36,32,0,58,0,0,0,50,43,0,3,13,0,6,0,28,40,18,0,1,19,8,23,16,14,26,0,39,0,0,7,0,49,0,52,0,
2138  45,10,49,0,16,0,14,48,0,0,37,17,57,52,0,3,51,0,0,58,4,0,0,7,8,0,33,29,42,5,28,54,23,21,20,0,0,0,43,0,30,0,18,15,0,46,0,0,25,22,32,60,13,40,2,39,44,9,35,34,
2139  27,21,16,0,23,37,0,0,35,45,0,30,51,9,50,20,36,54,0,34,0,25,17,0,22,0,58,13,59,0,0,0,52,4,0,0,0,15,46,0,31,49,44,0,10,33,29,47,0,53,7,18,55,0,5,41,39,48,28,56,
2140  32,0,1,41,18,0,49,23,7,13,15,22,43,0,0,12,0,16,30,45,21,44,8,50,19,0,0,26,0,2,59,11,6,0,47,35,28,55,5,25,34,29,0,46,0,0,0,42,27,3,0,0,0,17,58,0,4,0,39,40,
2141  0,60,9,3,29,53,0,33,50,54,22,52,37,0,0,6,0,40,55,23,8,26,58,36,56,1,0,14,57,10,30,47,28,20,0,0,11,48,31,4,59,19,0,0,0,42,0,0,44,0,0,46,41,39,25,0,0,15,0,17,
2142  60,56,37,0,55,5,10,59,40,8,48,12,21,0,43,22,15,25,45,42,0,7,0,0,0,0,57,0,27,0,23,44,31,52,4,49,9,51,41,0,0,1,24,0,26,16,0,0,58,30,20,11,0,0,14,19,50,54,0,0,
2143  31,55,0,0,47,29,15,1,0,57,0,0,0,35,10,8,3,33,14,0,32,0,20,30,40,59,0,16,0,9,11,52,7,54,0,0,12,49,0,27,4,5,0,22,0,58,19,37,34,44,36,0,56,51,28,50,0,0,2,23,
2144  12,58,36,50,0,13,0,35,51,0,39,4,0,27,0,0,6,0,0,0,0,5,42,0,23,28,43,0,21,20,45,0,46,11,55,44,33,38,25,15,56,48,19,9,2,0,0,7,0,47,0,59,49,54,0,14,30,18,10,1,
2145  54,0,28,31,4,42,58,0,0,16,47,0,48,0,0,7,0,9,0,0,14,32,0,53,0,46,26,35,0,13,10,49,0,0,33,43,3,0,40,55,22,56,51,19,44,5,37,24,17,39,6,25,60,15,0,45,57,0,0,52,
2146  38,0,6,26,60,0,0,30,8,46,7,9,13,56,35,58,0,48,11,1,0,0,0,23,32,34,0,43,54,29,17,0,21,10,37,0,40,3,52,36,0,0,15,18,51,0,0,20,0,0,4,0,25,41,0,24,42,2,19,59,
2147  49,52,0,45,0,0,35,51,10,9,4,0,23,0,12,33,44,27,28,17,0,40,56,1,37,22,38,0,7,57,0,0,25,0,0,0,30,32,11,39,19,3,0,13,42,0,60,0,0,58,55,16,34,0,26,2,20,0,48,14,
2148  26,0,0,0,0,10,51,52,17,0,9,8,36,55,32,18,50,0,39,37,29,0,53,24,34,6,31,0,0,0,7,59,0,45,21,0,0,0,54,12,35,23,13,0,56,0,0,5,15,57,16,42,0,19,49,33,46,27,60,30,
2149  19,0,55,0,48,0,60,46,0,17,0,0,29,14,0,0,0,0,24,18,35,0,0,11,52,45,25,38,32,28,36,15,30,42,23,50,49,0,9,5,0,12,39,37,41,44,40,51,7,27,0,4,22,57,3,6,47,0,0,0,
2150  36,6,34,52,0,0,0,17,0,41,32,0,20,39,9,0,24,13,0,31,22,18,5,35,0,57,0,44,15,33,0,30,0,55,0,40,38,2,58,60,0,0,43,0,1,0,25,28,53,49,0,45,46,7,48,42,54,0,14,16,
2151  41,27,3,0,5,49,0,58,0,48,6,14,18,26,15,2,60,0,52,40,44,0,55,0,17,29,0,53,0,11,54,37,0,8,31,34,0,45,36,24,20,39,21,25,0,0,13,19,0,28,56,0,42,0,0,0,59,0,51,33,
2152  6,25,0,37,53,22,19,0,52,0,46,24,14,2,21,0,20,42,0,15,23,0,0,39,26,31,54,34,0,0,27,0,0,5,44,1,10,0,13,7,48,43,11,60,0,0,41,56,3,0,29,0,0,4,0,30,38,12,50,57,
2153  0,17,0,5,0,9,38,57,0,20,13,0,0,16,49,24,41,34,0,0,47,0,0,31,0,0,56,40,18,0,0,25,19,15,0,11,52,0,29,51,45,42,55,0,7,53,33,12,26,59,2,36,30,48,8,0,32,3,43,28,
2154  42,30,57,0,2,41,54,0,18,51,40,0,0,3,19,0,39,28,0,0,0,15,0,60,16,38,17,4,46,0,0,32,8,14,6,10,5,47,33,48,7,44,1,43,27,23,0,31,0,35,21,0,37,11,0,25,0,13,0,0,
2155  0,39,0,23,0,0,7,0,0,53,14,0,49,38,55,34,0,58,16,0,5,45,59,37,0,41,0,0,19,15,40,31,17,0,32,0,48,22,60,50,26,0,6,56,33,57,4,44,21,11,18,0,36,27,10,0,0,29,25,12,
2156  5,49,45,33,40,0,0,37,15,32,27,59,34,0,4,30,0,0,42,0,11,60,0,56,55,0,52,21,0,12,29,16,35,24,54,0,1,0,20,23,2,0,36,53,6,0,0,0,46,17,58,50,0,0,22,48,9,14,0,18,
2157  0,0,12,32,8,36,22,0,31,11,19,33,0,54,37,60,14,21,0,16,0,0,13,47,43,15,20,28,39,18,34,0,49,2,56,9,58,26,0,0,6,4,30,0,50,24,42,0,51,40,0,48,0,0,29,7,25,0,0,0,
2158  50,38,0,8,57,24,0,0,0,0,59,0,22,32,13,0,0,41,27,47,25,43,6,0,14,10,0,2,26,0,44,29,0,7,52,42,45,46,0,31,18,54,17,21,34,60,0,9,20,0,0,0,23,12,1,40,0,11,3,19,
2159  15,50,4,54,51,23,47,0,0,28,18,7,46,58,0,0,26,17,9,11,60,0,0,33,41,0,0,6,29,0,35,0,37,1,0,14,0,59,0,0,12,2,3,0,0,21,53,10,39,45,49,31,0,25,43,5,13,19,24,0,
2160  57,44,0,0,19,30,0,0,36,0,58,13,0,0,1,17,22,23,0,6,0,10,26,21,9,20,59,8,25,7,16,0,53,31,0,3,0,27,0,46,0,0,2,49,4,56,14,52,0,42,40,24,28,32,60,0,55,43,5,0,
2161  0,40,53,29,33,1,26,27,20,0,52,0,24,50,42,39,16,38,43,0,46,8,4,15,0,21,14,0,5,48,41,0,18,0,35,17,55,0,49,0,0,57,0,0,54,51,58,2,0,60,0,22,45,0,0,0,36,31,34,11,
2162  22,33,50,0,15,51,0,10,43,36,17,53,19,6,25,0,47,0,60,54,0,0,0,4,0,3,23,1,2,56,57,14,0,0,39,0,41,0,18,0,16,28,38,11,8,45,0,0,0,9,27,0,7,0,31,49,26,44,30,55,
2163  2,54,0,20,0,40,31,11,0,0,0,0,0,29,7,25,19,52,35,49,48,0,28,6,5,23,24,3,16,8,15,0,41,34,36,37,47,0,4,26,0,17,53,14,55,13,43,0,50,32,44,0,57,0,0,0,0,0,59,58,
2164  25,42,39,11,38,56,1,45,0,60,30,0,54,8,0,0,55,6,49,41,15,24,0,0,3,12,16,20,13,0,0,0,0,50,48,21,0,40,53,18,27,7,10,31,46,0,52,0,0,0,0,44,0,58,0,47,35,59,17,32,
2165  0,19,0,21,43,7,39,0,29,12,42,54,2,0,0,31,34,55,37,33,1,59,0,0,44,0,3,11,4,0,0,27,36,0,18,30,0,0,32,13,0,35,58,40,28,0,5,45,0,41,53,57,20,16,0,52,17,0,8,10,
2166  0,13,27,25,59,14,0,22,16,49,20,46,0,60,47,0,54,44,40,0,0,0,35,2,51,36,18,0,0,26,53,12,0,0,7,39,4,0,3,0,21,34,28,0,45,15,0,0,33,6,11,19,0,38,32,56,52,0,29,31,
2167  7,0,0,0,0,34,46,0,56,44,41,26,40,20,60,21,57,36,32,25,0,42,19,45,0,58,48,0,0,50,0,6,55,30,24,31,51,39,12,0,0,0,4,3,23,35,15,59,29,0,52,5,1,53,0,43,0,49,0,0,
2168  0,0,59,42,45,6,37,39,1,0,31,32,12,47,0,52,18,0,0,38,36,17,10,0,20,44,46,33,51,0,0,7,0,0,15,23,29,58,14,35,57,8,0,34,0,0,49,13,11,54,0,40,0,0,55,0,16,4,22,9,
2169  0,36,60,16,22,3,0,0,55,24,0,51,50,33,11,0,0,35,7,2,57,38,47,34,59,0,40,12,9,0,19,0,0,0,14,48,0,0,0,30,52,26,37,0,25,6,44,58,49,31,0,8,0,46,20,32,29,56,0,13,
2170  0,0,21,38,0,19,4,56,25,0,0,49,53,31,17,32,42,0,0,50,24,34,18,29,33,0,8,0,0,35,0,23,0,0,26,5,0,57,10,9,28,40,0,45,22,39,59,11,0,15,0,54,0,37,46,36,27,1,6,20,
2171  16,7,25,55,0,32,50,6,33,0,0,0,52,37,14,0,29,12,5,8,28,11,44,48,0,2,0,49,10,3,0,0,20,17,13,36,0,30,0,19,60,0,0,58,40,41,0,35,54,34,46,27,18,22,0,59,0,0,0,4,
2172  53,20,32,34,0,43,57,42,0,0,0,36,9,0,30,56,48,11,58,0,0,0,0,51,0,13,47,0,44,1,52,41,54,29,16,46,35,14,17,21,0,0,26,0,5,37,6,0,40,0,0,7,31,8,19,0,2,45,4,3,
2173  14,0,7,58,0,0,18,24,0,43,0,42,56,45,59,28,0,1,33,35,55,52,0,0,50,0,34,17,0,39,49,40,22,3,10,54,21,16,0,38,0,53,0,44,37,0,47,48,31,0,13,2,0,6,4,15,8,36,0,0,
2174  0,5,0,0,41,0,40,16,0,15,24,11,44,0,0,45,30,0,38,53,27,14,1,0,49,39,0,32,3,21,25,0,29,0,0,7,46,52,57,2,51,0,31,47,20,59,18,0,12,10,50,0,6,55,34,0,43,37,0,48,
2175  4,0,41,43,7,0,0,60,26,5,8,58,0,44,20,9,0,0,22,27,0,54,0,14,0,56,2,0,33,47,13,19,59,6,0,18,57,0,0,3,0,25,29,30,0,0,0,0,23,37,24,35,17,31,39,53,12,28,15,42,
2176  0,29,5,10,46,12,11,55,4,0,21,16,32,0,45,35,1,60,2,57,58,0,37,44,28,17,50,0,0,0,0,39,15,0,9,0,14,31,7,49,0,41,0,0,0,36,54,27,30,33,38,26,59,0,0,0,56,34,20,0,
2177  0,0,0,0,0,47,16,40,0,0,43,2,58,0,0,11,49,29,13,9,31,48,52,0,27,0,0,18,0,41,6,26,50,44,0,15,59,36,28,33,55,0,12,51,3,34,7,53,32,8,39,30,10,0,0,22,14,46,0,5,
2178  40,51,58,15,26,0,6,29,24,0,55,0,59,41,0,53,0,5,36,7,0,57,54,0,0,18,1,0,0,0,37,45,16,33,0,25,27,0,8,0,0,21,56,0,35,20,9,34,60,0,22,28,3,43,38,17,48,0,49,47,
2179  30,0,0,35,42,0,34,19,11,50,60,31,47,15,56,36,53,49,4,10,54,1,21,27,7,9,0,22,48,24,39,0,14,0,57,0,0,0,23,58,0,59,8,2,0,17,28,0,0,0,41,20,16,0,12,38,0,33,0,0,
2180  18,0,2,51,52,0,23,0,14,0,0,57,28,0,22,1,25,0,0,0,17,4,43,0,12,53,30,39,6,16,3,48,42,56,0,0,7,41,45,0,29,10,0,26,31,38,0,0,59,50,19,15,58,0,24,46,0,35,13,37,
2181  39,32,19,60,49,0,52,18,44,4,0,0,15,46,40,23,0,31,29,14,2,0,7,25,10,0,11,0,1,0,5,42,0,53,50,47,37,0,6,0,8,51,0,57,0,12,36,22,56,0,3,0,26,21,0,13,0,16,9,0,
2182  10,41,24,4,37,28,0,31,59,2,0,25,0,5,26,55,0,7,0,0,20,0,30,0,0,48,0,0,34,17,47,38,44,0,53,58,0,13,0,22,0,6,46,8,14,54,3,0,52,43,9,12,27,18,0,0,23,57,40,49,
2183  28,18,11,6,0,44,9,15,32,19,53,38,0,0,51,37,7,2,20,0,10,16,50,55,48,0,0,24,31,0,0,36,0,41,46,0,54,12,0,29,49,0,0,5,0,0,17,0,43,23,0,0,47,56,57,60,45,8,33,26,
2184  17,34,0,53,0,16,33,3,0,37,0,10,27,4,46,0,40,15,18,44,0,29,0,58,0,52,55,23,56,19,0,43,9,0,0,41,0,50,47,8,11,31,32,39,21,28,20,0,0,0,5,0,0,49,35,57,6,38,7,0,
2185  46,43,0,40,30,39,13,0,45,21,56,35,0,10,27,26,59,18,19,28,0,55,3,17,4,0,5,0,52,0,38,20,32,0,12,60,23,0,0,53,0,24,0,41,0,7,0,1,0,48,57,0,8,33,9,51,22,58,0,0,
2186  0,2,0,14,0,26,0,50,12,22,0,0,55,57,0,44,35,53,25,19,0,56,24,0,0,5,4,48,43,58,60,0,51,49,0,59,42,28,1,0,0,32,41,54,0,30,27,15,36,7,23,0,38,52,0,20,0,6,37,39,
2187  0,0,0,7,25,50,0,43,2,10,0,27,0,0,23,57,0,0,3,0,6,13,14,54,60,0,44,59,0,53,8,46,0,9,0,52,32,20,0,41,24,58,45,29,11,0,48,38,22,0,31,49,5,28,51,0,15,17,42,21,
2188  0,0,42,28,44,15,20,0,58,33,0,60,7,48,2,0,9,56,51,13,26,39,57,46,0,14,12,0,0,49,55,8,0,22,30,0,31,29,0,0,3,0,34,0,0,11,1,43,0,25,0,21,32,24,0,18,41,40,16,50,
2189  58,22,23,39,10,0,0,25,57,7,44,5,0,30,0,0,12,50,0,20,0,49,0,0,2,16,41,46,60,40,43,13,48,38,19,56,0,42,0,52,54,14,33,0,9,47,0,6,28,0,0,32,11,34,37,0,0,0,36,45,
2190  0,37,20,0,6,0,28,54,53,27,0,41,0,17,0,47,45,4,23,43,51,9,46,0,0,60,39,0,0,42,0,34,12,16,0,0,13,33,56,11,5,52,59,35,0,48,0,29,2,21,1,3,15,0,40,44,0,0,18,22,
2191  29,15,26,0,54,21,30,0,41,0,36,48,4,0,0,0,43,0,0,22,56,47,23,49,58,50,0,25,11,46,20,28,0,12,59,0,0,17,38,6,14,0,40,16,60,55,45,8,57,13,51,34,0,1,27,35,0,0,0,0,
2192  56,47,43,0,32,52,5,0,9,0,29,18,16,34,41,0,46,0,0,0,13,6,22,12,0,0,36,57,58,30,31,0,26,60,0,33,17,44,37,42,39,11,0,0,0,25,2,55,1,19,14,51,21,35,50,23,0,0,0,0
2193  };
2194 
2195  const int d60_1152_bal[] = {
2196  // Size: 60 x 60
2197  60,
2198  // Pre-assigned fields
2199  8,14,44,0,35,25,0,26,0,6,57,0,41,7,0,40,0,0,31,36,50,0,0,52,38,49,0,56,37,51,24,58,45,59,1,0,15,9,34,43,47,22,16,33,18,19,39,0,10,0,42,0,54,0,0,0,28,23,0,0,
2200  0,0,17,9,0,0,0,0,3,0,25,55,38,59,16,43,0,14,57,26,0,2,48,13,15,7,0,10,45,0,18,22,11,0,0,29,6,53,0,54,36,46,0,50,58,1,35,33,37,20,47,41,0,23,44,0,21,0,56,0,
2201  59,45,18,44,58,11,0,41,28,0,26,23,0,0,3,49,0,57,1,48,7,0,31,43,0,37,9,54,38,0,0,0,10,39,0,22,60,25,24,0,50,0,0,42,47,0,32,0,0,16,12,0,33,30,13,0,34,20,46,0,
2202  1,12,0,46,20,0,41,0,34,26,0,21,3,13,0,19,23,0,0,56,0,36,0,22,31,27,0,42,30,32,48,2,0,43,8,55,0,24,15,37,58,16,9,7,0,0,51,18,0,0,59,10,39,14,0,0,5,60,57,0,
2203  35,0,10,0,31,0,0,0,0,34,0,15,5,25,38,46,33,0,21,29,53,37,11,0,36,32,27,58,41,0,51,50,43,48,3,13,24,0,0,28,40,18,20,1,19,0,23,16,14,0,0,0,12,0,7,0,49,30,52,0,
2204  45,10,0,27,0,59,14,48,6,0,37,17,0,52,31,3,51,0,0,0,0,53,36,0,8,26,33,29,42,5,28,54,23,21,0,0,50,19,0,47,0,55,0,0,0,46,11,0,0,22,32,60,13,40,2,39,0,9,0,34,
2205  27,0,16,0,23,37,8,14,0,0,0,30,51,9,50,20,36,0,6,0,12,25,17,57,22,0,58,13,59,38,1,60,52,4,43,2,0,15,0,40,31,49,44,32,10,0,29,47,24,53,0,0,0,42,5,0,0,0,0,0,
2206  0,24,0,0,18,38,49,0,7,13,15,22,43,36,33,0,52,16,0,45,21,44,8,0,0,54,0,26,0,0,0,11,0,57,47,35,28,55,5,25,34,29,0,46,53,9,56,42,0,0,60,37,48,17,0,31,0,51,0,40,
2207  0,60,0,0,29,53,32,33,0,54,22,52,37,24,5,6,2,0,55,0,8,0,0,0,56,1,45,0,57,10,30,47,28,0,38,16,11,0,31,4,59,19,35,0,13,0,0,49,44,18,43,46,41,39,0,34,7,0,0,0,
2208  0,0,37,13,55,0,10,0,0,8,0,0,0,18,0,22,15,0,45,42,34,7,39,3,0,33,0,0,27,6,23,44,0,0,0,49,9,51,41,17,0,1,0,28,0,16,46,36,58,0,20,11,29,2,14,19,50,54,38,35,
2209  31,0,0,0,0,29,15,0,21,57,38,39,0,35,10,8,3,33,14,0,0,0,20,30,0,0,60,0,0,9,0,52,0,54,25,45,12,49,0,0,4,5,42,22,24,58,19,37,34,44,36,0,56,51,28,50,18,26,0,23,
2210  0,58,36,50,17,13,0,0,0,29,39,4,0,27,57,41,0,0,8,32,37,5,42,0,23,0,43,31,21,20,0,53,46,11,55,44,33,38,25,15,0,0,19,0,0,3,0,7,0,0,34,0,0,54,52,14,30,18,10,1,
2211  54,0,28,31,4,0,0,21,23,16,47,20,48,11,0,0,0,0,34,30,14,0,2,0,29,46,26,35,12,0,10,49,27,0,0,43,0,8,40,0,22,56,51,19,44,0,0,0,17,39,0,25,60,15,41,45,0,50,1,52,
2212  38,57,0,26,0,27,0,30,8,46,7,0,0,56,0,58,0,48,11,0,39,31,45,23,32,34,22,0,54,29,17,0,0,10,37,12,40,0,52,36,53,33,15,18,0,49,0,20,47,0,4,14,0,0,16,24,42,0,0,59,
2213  49,0,15,45,0,0,35,51,10,0,4,29,23,0,12,33,44,0,28,0,43,40,0,1,37,22,0,50,7,57,46,0,25,47,41,0,0,32,0,39,0,3,54,13,0,31,0,0,8,58,55,16,0,59,26,2,20,0,48,14,
2214  26,48,40,2,11,10,51,52,17,0,9,0,36,0,32,0,0,20,39,0,29,58,53,24,0,6,31,0,0,44,0,0,1,45,21,28,25,0,54,0,0,23,13,4,56,22,0,5,15,0,16,42,0,19,0,33,46,0,60,30,
2215  19,8,0,56,48,0,60,46,13,17,54,34,29,14,58,0,31,0,0,18,35,20,0,11,0,0,25,38,32,28,0,0,30,0,23,50,49,0,9,5,0,0,39,37,0,44,0,51,7,0,0,4,22,57,0,6,47,21,26,53,
2216  0,6,0,52,0,4,0,17,19,41,32,50,20,0,9,27,24,13,0,31,22,18,5,35,11,57,29,0,15,0,56,30,3,55,51,40,38,0,58,60,23,37,0,0,1,0,25,28,0,49,0,45,46,0,0,0,0,0,14,0,
2217  0,27,3,0,5,49,0,58,47,0,6,14,18,26,15,2,60,46,52,40,44,35,55,10,17,29,7,0,22,11,0,0,0,0,31,34,0,0,36,24,20,0,21,0,57,4,0,19,9,0,0,23,0,50,30,0,59,32,51,0,
2218  6,0,47,37,53,22,19,0,52,58,46,24,14,2,21,51,0,42,17,0,23,0,0,39,26,31,54,0,49,0,27,0,40,5,44,1,0,0,13,7,48,43,11,60,16,32,0,0,0,36,29,0,35,0,0,30,0,12,50,0,
2219  0,17,14,5,50,0,0,57,39,20,0,1,10,0,0,24,41,34,46,60,47,23,0,31,54,35,56,0,0,0,21,0,19,0,22,11,52,0,29,51,45,42,55,0,0,0,33,0,26,59,0,36,30,0,8,58,32,3,43,28,
2220  0,0,0,49,0,0,54,20,0,51,40,0,26,0,19,50,0,28,59,52,45,15,12,60,16,0,17,0,46,34,22,0,0,0,6,10,0,47,33,0,7,44,1,43,27,23,0,31,55,35,21,9,37,0,36,0,0,13,58,29,
2221  43,39,46,23,13,54,7,0,0,0,14,0,49,38,55,0,8,58,16,51,5,45,59,37,0,41,42,9,0,0,40,31,17,0,0,0,48,0,60,0,26,20,6,56,0,57,0,44,21,0,18,52,36,0,10,0,3,29,0,12,
2222  5,49,45,33,40,0,25,0,15,0,27,59,34,0,4,30,13,51,0,39,11,60,0,0,55,47,0,21,28,12,0,0,35,0,54,8,1,0,20,0,2,38,0,53,6,10,57,26,46,17,58,0,19,3,0,48,9,0,0,0,
2223  3,1,12,0,8,0,22,0,31,0,19,33,35,0,37,60,14,0,0,16,38,0,0,47,0,0,20,0,39,0,34,57,0,2,56,9,58,26,59,0,6,0,30,52,50,0,42,17,51,40,0,48,53,10,29,7,25,0,23,46,
2224  0,38,35,0,57,0,0,28,49,55,59,0,22,32,13,48,58,41,27,0,25,43,6,5,0,0,51,0,26,4,44,29,0,0,0,0,0,0,16,0,18,54,17,21,34,0,30,9,20,56,15,0,23,12,1,40,33,11,3,0,
2225  0,50,4,0,51,0,47,34,38,28,18,7,46,58,0,16,26,17,9,0,0,22,40,33,0,55,32,6,29,0,0,56,0,1,42,14,20,0,44,0,12,0,3,0,30,21,53,10,39,45,49,0,52,0,0,0,13,0,0,8,
2226  57,44,0,47,19,30,29,12,0,0,0,13,11,51,1,17,22,23,48,0,0,0,26,0,9,20,59,0,25,0,0,35,53,31,45,3,34,0,0,46,0,15,2,49,4,56,14,52,0,42,0,24,28,32,60,37,0,43,0,0,
2227  13,40,0,29,0,1,26,27,20,47,0,0,0,50,42,39,0,38,0,12,46,8,0,15,30,0,14,7,5,48,41,3,18,28,0,0,0,23,0,0,0,57,25,59,54,51,58,0,19,60,0,22,45,0,56,9,36,31,0,11,
2228  22,33,50,24,15,0,0,10,43,0,17,53,19,0,0,29,47,37,0,0,52,0,34,4,42,3,23,0,0,56,57,14,13,32,0,20,41,21,18,59,16,28,38,0,0,45,12,0,35,9,27,0,0,5,0,0,26,0,30,55,
2229  0,54,0,20,0,40,31,11,46,0,33,45,42,29,0,25,19,52,0,49,0,12,28,6,5,23,24,3,0,0,15,21,41,34,0,37,0,56,0,26,0,0,53,14,0,13,43,39,0,32,44,38,57,9,18,27,0,0,0,58,
2230  25,42,39,11,38,56,1,0,5,60,0,19,54,0,34,14,55,6,0,41,15,24,33,0,3,0,0,20,13,22,26,9,0,50,48,0,0,0,53,0,0,0,0,0,46,43,52,57,4,29,37,44,0,0,23,47,35,0,17,32,
2231  24,19,22,21,43,7,39,38,29,0,42,54,0,49,6,31,0,55,37,0,1,59,0,0,0,51,0,11,4,0,0,0,36,46,0,30,56,60,32,13,0,35,0,40,0,14,5,45,0,41,53,57,0,16,0,52,17,25,8,0,
2232  9,13,27,0,59,0,17,22,16,49,20,46,0,0,0,0,54,0,40,55,0,50,35,2,51,36,0,5,24,26,53,0,57,58,0,39,0,37,0,1,21,34,28,0,45,15,8,0,33,6,11,19,43,0,32,0,0,41,0,31,
2233  0,0,38,0,28,34,46,13,56,0,41,26,0,20,0,0,0,36,32,25,9,0,0,45,18,0,48,0,8,0,33,0,55,30,24,31,51,39,12,0,17,47,4,0,23,0,0,59,29,0,52,5,1,53,54,43,0,49,27,2,
2234  21,28,0,42,45,6,37,39,1,56,31,32,12,47,0,0,18,0,26,38,0,0,0,0,0,44,46,33,0,0,2,7,0,25,15,23,0,58,14,35,0,8,5,34,48,27,49,0,11,54,30,40,50,0,55,0,0,0,22,9,
2235  0,36,60,16,22,3,42,53,55,24,10,0,50,0,11,15,0,35,7,0,57,38,0,0,59,43,40,12,9,45,19,0,5,27,14,0,0,54,39,0,52,0,37,0,25,0,44,58,0,31,28,0,0,46,20,0,29,56,0,13,
2236  0,0,21,38,3,19,4,56,25,0,12,49,53,0,0,0,0,43,47,50,24,0,18,0,33,0,0,51,55,35,0,23,60,13,26,5,2,57,10,9,0,0,0,45,22,39,59,11,41,0,48,54,44,0,0,36,27,1,6,0,
2237  16,0,25,55,56,32,0,6,33,42,1,47,0,37,14,38,29,0,0,8,0,11,44,48,57,0,53,0,0,3,9,24,20,0,0,36,43,30,21,0,60,0,23,58,40,41,26,0,54,0,0,27,18,22,0,59,51,39,0,0,
2238  53,0,32,0,0,43,0,42,22,59,23,0,0,28,30,56,0,11,58,24,18,33,49,0,39,0,47,0,0,1,0,0,54,0,16,46,35,14,17,21,15,0,26,0,5,37,0,60,40,12,25,7,31,0,19,10,2,45,0,3,
2239  14,26,7,0,0,0,18,24,0,43,0,0,0,45,59,0,32,1,33,35,0,0,60,19,0,25,34,17,0,39,49,40,22,3,10,0,0,16,30,38,0,53,0,44,37,29,0,48,0,46,13,0,9,6,0,15,8,36,11,51,
2240  0,5,8,36,0,60,0,0,0,15,24,0,44,0,0,0,30,22,0,53,0,14,0,9,49,0,35,32,0,21,25,17,29,19,58,0,46,52,57,0,51,13,31,47,20,0,18,4,0,10,50,56,6,55,34,26,43,0,54,48,
2241  0,46,0,0,0,48,21,60,26,5,0,0,0,44,0,9,10,32,0,27,49,54,51,14,0,56,0,52,0,47,13,19,59,6,11,18,57,34,0,0,38,0,29,30,36,0,16,0,23,37,24,35,0,31,0,53,12,28,15,42,
2242  0,29,5,10,46,12,0,55,0,18,0,16,32,0,45,35,1,0,2,57,58,0,37,44,28,17,0,19,40,52,42,39,0,23,9,51,14,0,0,49,25,0,0,0,0,36,54,0,30,33,38,0,0,13,53,8,0,34,20,6,
2243  20,0,0,57,24,47,16,40,0,25,0,2,58,0,0,0,49,29,0,9,31,48,52,0,27,4,0,18,35,41,6,26,0,44,0,15,59,36,0,33,55,60,0,51,3,34,0,53,0,0,0,30,10,45,42,22,0,46,21,5,
2244  40,51,58,0,26,46,0,29,0,23,0,0,59,41,39,53,11,5,36,7,0,57,54,0,13,18,1,30,0,31,37,0,16,33,0,25,27,10,0,0,0,21,56,0,35,20,9,34,0,0,0,28,3,43,38,0,48,52,49,0,
2245  30,3,52,35,0,0,34,19,11,50,0,31,47,15,56,0,0,49,0,10,54,1,0,27,7,9,6,22,48,24,0,18,0,0,57,0,44,5,0,58,46,59,0,0,32,17,28,0,0,51,41,20,16,0,12,38,0,33,0,0,
2246  18,9,2,0,0,0,23,47,14,40,49,0,28,21,22,0,0,8,44,5,17,0,0,20,12,53,30,39,6,16,0,48,42,56,27,0,7,0,0,34,29,10,60,0,31,0,55,0,59,0,0,0,58,36,24,46,11,0,13,37,
2247  39,32,19,60,49,55,52,18,44,0,0,0,15,46,40,23,27,0,29,14,2,30,7,25,10,0,0,45,0,54,5,0,34,53,0,47,0,35,6,20,8,0,0,0,59,0,0,0,56,38,0,0,26,21,0,13,58,16,9,41,
2248  10,0,0,4,37,28,0,0,0,2,0,25,39,5,0,0,56,7,50,21,0,51,30,16,0,48,15,60,0,17,0,0,0,0,53,0,0,13,42,22,1,6,46,8,14,54,3,32,52,43,9,12,0,0,33,29,0,57,40,49,
2249  28,18,0,6,34,44,9,0,0,19,0,38,0,42,51,0,7,2,20,59,10,0,50,0,48,40,21,24,31,25,14,36,58,41,0,0,54,12,27,29,0,0,22,5,0,0,0,3,0,23,35,13,0,56,0,60,45,8,33,0,
2250  17,0,0,53,14,16,33,3,0,37,51,10,27,0,46,0,40,15,18,44,59,0,25,0,45,52,55,23,56,0,12,43,9,26,0,0,0,0,47,8,11,0,0,39,21,0,20,0,42,2,5,1,0,49,35,57,0,38,7,0,
2251  46,43,31,0,0,0,13,36,45,21,56,0,0,10,27,26,59,18,19,0,0,0,3,17,4,0,0,15,52,14,38,20,32,0,12,60,23,11,0,53,44,24,0,0,0,7,34,1,6,0,57,0,8,0,9,51,0,58,47,54,
2252  11,2,29,14,9,26,3,50,0,0,16,0,55,57,8,44,35,0,25,0,0,56,24,18,0,5,0,48,0,58,0,10,0,0,0,59,42,28,1,0,13,32,0,54,0,0,27,15,36,0,23,47,38,52,21,0,31,6,37,39,
2253  47,35,30,0,25,50,55,43,2,0,34,27,0,12,23,0,37,0,3,4,6,0,0,54,60,19,44,0,36,0,0,0,0,0,40,52,32,20,26,41,0,58,45,29,0,18,48,38,22,1,0,0,5,28,0,16,0,17,42,21,
2254  37,0,42,0,0,15,20,0,0,33,45,60,7,48,2,5,9,56,51,0,0,0,57,46,0,0,12,27,0,49,55,8,47,22,30,0,31,29,35,10,0,0,0,23,52,11,0,43,0,25,0,21,0,24,59,18,41,40,16,50,
2255  58,0,0,39,10,35,27,25,57,7,0,5,17,0,18,4,12,50,0,0,0,49,0,59,0,16,41,0,0,0,43,13,48,0,0,0,0,42,51,52,54,14,33,55,9,47,31,6,28,24,26,32,11,34,0,21,1,0,0,45,
2256  55,37,20,30,0,58,0,0,53,27,0,41,0,0,0,47,0,4,0,43,0,9,46,8,0,60,39,36,14,42,0,34,12,16,49,57,13,33,56,11,0,52,0,35,0,48,10,0,2,21,0,3,0,0,40,0,19,7,18,22,
2257  0,15,0,18,0,21,30,0,41,31,36,48,0,19,0,0,0,3,10,22,56,47,23,0,58,0,0,25,11,46,20,28,0,12,59,0,39,17,0,6,14,9,40,16,60,55,0,0,0,13,51,34,0,1,27,0,24,0,32,7,
2258  56,0,43,48,32,52,5,0,0,38,29,0,16,34,41,54,0,59,0,0,13,6,22,12,24,0,0,57,58,30,0,4,26,60,28,0,17,0,0,42,39,0,49,20,0,25,2,55,1,19,0,0,21,35,50,0,40,0,45,27
2259  };
2260 
2261  const int d60_1440[] = {
2262  // Size: 60 x 60
2263  60,
2264  // Pre-assigned fields
2265  0,14,44,0,35,0,2,26,48,0,0,0,41,0,0,40,0,30,31,36,50,0,32,52,0,0,0,56,37,51,0,58,45,0,1,0,0,0,34,43,47,22,16,33,18,19,0,46,10,0,0,17,0,20,11,4,0,23,53,0,
2266  34,31,0,9,39,8,12,0,3,0,0,55,38,59,0,43,0,14,57,0,0,0,0,13,0,0,49,10,45,60,0,22,0,0,0,0,6,53,19,0,0,46,0,50,0,0,35,0,37,0,0,41,40,23,0,28,21,0,56,0,
2267  59,0,0,44,0,11,53,41,28,35,26,0,0,0,3,0,17,0,1,48,0,19,0,43,21,37,0,54,38,36,4,51,10,39,29,22,60,0,24,56,50,27,52,0,47,0,32,14,0,16,12,0,33,30,0,55,34,20,0,15,
2268  0,0,33,46,20,17,41,49,34,0,0,21,3,0,44,19,23,47,54,0,40,36,38,0,31,0,28,42,30,32,0,2,4,43,8,55,53,24,0,0,0,16,0,7,29,0,0,18,45,52,0,10,0,14,6,11,0,0,57,0,
2269  0,4,0,59,31,0,56,9,0,0,2,0,5,25,38,46,33,45,21,29,53,0,11,0,36,32,27,58,41,0,0,50,0,48,3,0,24,6,0,28,40,0,20,1,19,8,23,16,0,26,17,39,0,0,0,54,49,0,52,44,
2270  0,10,49,27,16,0,0,48,0,0,0,17,0,52,31,0,51,24,56,0,0,53,0,7,0,26,0,29,0,5,28,54,0,0,20,38,0,19,43,47,30,55,18,0,12,46,11,41,25,0,32,60,13,0,0,0,44,9,35,34,
2271  27,21,0,19,23,37,0,14,35,0,3,30,51,9,50,20,36,54,6,0,12,25,17,57,22,11,58,13,59,0,1,60,0,0,0,2,26,0,0,40,31,49,44,0,10,0,0,47,0,53,7,18,0,42,5,0,0,48,0,56,
2272  32,24,0,0,18,38,49,0,7,0,15,0,0,0,33,12,0,0,0,45,0,44,8,50,19,0,0,26,0,2,59,0,6,0,0,35,0,55,0,25,34,0,14,46,0,0,0,0,27,3,0,37,48,17,58,31,0,0,39,40,
2273  51,0,9,3,29,0,0,33,0,0,0,0,0,24,0,0,0,0,0,23,8,26,0,36,0,1,0,14,0,0,0,47,28,20,38,16,0,48,0,4,0,19,35,27,13,42,21,49,44,0,43,46,41,0,0,0,7,15,12,0,
2274  0,56,37,0,55,5,10,59,40,0,0,12,21,18,0,0,15,0,45,0,34,0,0,0,0,33,0,0,0,6,23,44,0,0,4,49,9,51,0,17,32,1,24,0,26,0,46,0,0,0,0,0,0,2,14,0,50,0,38,35,
2275  31,55,13,0,47,29,0,1,21,0,0,0,6,0,10,8,3,0,14,0,32,41,20,30,0,59,60,0,53,9,11,0,7,54,25,45,0,0,0,27,0,5,0,0,24,58,19,37,0,0,0,43,0,51,0,50,18,26,0,23,
2276  12,58,36,50,17,13,24,35,0,29,39,0,0,27,57,0,6,0,8,0,37,0,0,0,23,28,0,0,21,20,45,0,0,0,0,44,33,38,25,0,0,48,19,9,2,0,22,7,0,0,34,59,49,54,52,14,30,0,10,1,
2277  54,0,28,0,0,42,0,21,23,0,47,20,48,11,0,0,38,9,34,30,0,32,2,53,29,46,26,35,0,0,0,49,27,18,0,43,0,0,40,55,0,56,51,0,0,5,0,24,17,0,6,25,60,15,0,0,0,0,1,0,
2278  38,0,6,26,60,0,44,30,0,46,7,0,0,0,35,58,28,0,11,1,39,0,0,23,32,34,0,0,54,0,17,55,21,0,37,0,0,3,0,0,0,33,0,18,51,49,50,0,0,5,0,0,0,0,16,0,0,0,19,0,
2279  49,52,15,0,0,0,35,0,10,9,0,0,0,0,0,0,44,0,0,17,43,0,0,0,37,22,0,0,7,0,0,0,25,47,0,6,0,32,11,39,19,0,54,13,42,31,60,21,0,58,0,16,34,0,0,2,0,0,48,14,
2280  26,48,0,0,11,0,0,52,0,3,9,8,36,0,32,0,0,0,39,37,0,0,0,0,34,6,0,41,47,44,0,59,1,0,21,0,0,43,54,12,35,0,0,4,0,22,38,0,0,0,0,0,14,0,49,0,46,27,60,0,
2281  0,8,55,0,0,2,60,46,13,17,0,34,29,14,58,59,31,10,0,0,35,20,16,11,52,0,0,38,0,28,0,15,30,42,23,50,0,1,0,5,43,0,0,37,0,44,0,51,0,27,33,0,0,57,3,0,47,21,26,53,
2282  0,6,0,52,21,4,0,0,19,0,32,50,20,39,0,0,24,13,12,0,22,18,5,35,11,57,29,44,0,33,56,0,3,55,51,40,38,2,58,60,23,37,0,0,1,26,0,0,53,49,8,45,0,7,0,42,0,47,0,16,
2283  0,27,3,1,0,49,43,58,47,48,0,14,18,26,15,2,0,46,0,40,0,0,55,10,17,0,7,0,22,11,0,37,0,0,31,34,0,0,36,0,0,0,0,25,0,0,13,19,9,28,56,0,42,0,0,0,59,32,0,33,
2284  6,0,0,37,53,22,0,8,52,0,46,24,14,2,0,0,20,42,17,15,23,0,9,0,26,31,54,34,0,0,27,0,40,5,0,0,10,18,0,7,48,0,11,60,0,0,41,56,3,36,29,55,35,4,0,30,38,0,50,57,
2285  44,0,0,0,0,0,38,0,0,20,13,1,10,0,49,0,41,0,46,60,47,23,0,31,54,35,56,40,0,0,21,0,19,15,22,11,0,0,29,51,45,0,0,0,7,0,33,12,26,59,2,36,30,48,8,58,0,0,0,0,
2286  42,30,57,49,0,41,54,20,18,0,40,0,0,0,19,50,0,28,0,52,0,0,12,0,16,38,0,4,0,34,0,0,8,14,0,10,0,47,33,48,7,44,0,0,27,23,24,31,55,35,21,9,0,11,0,25,53,13,58,0,
2287  0,0,46,0,13,0,7,2,0,53,14,0,49,38,55,0,0,58,0,0,5,45,0,37,47,41,42,9,19,0,40,0,0,0,0,0,0,22,60,0,0,0,6,56,0,57,0,0,0,11,0,52,0,27,0,1,0,0,25,12,
2288  5,49,45,33,0,31,0,37,15,32,0,0,34,43,0,0,0,0,42,0,0,60,0,0,55,0,52,0,0,12,0,0,0,0,54,8,1,7,20,23,0,38,36,0,0,0,57,26,46,17,0,50,19,3,22,0,9,14,44,0,
2289  3,1,12,32,8,0,0,0,31,0,19,0,35,0,0,60,14,0,41,0,38,0,0,47,43,15,20,0,39,0,0,0,49,2,0,9,0,26,0,0,0,4,0,0,0,0,42,17,51,40,45,48,53,10,29,7,25,55,23,0,
2290  0,38,35,8,57,24,36,28,0,55,59,37,22,32,0,48,0,41,27,47,25,43,6,5,0,0,0,2,0,4,44,29,0,0,0,42,45,46,16,0,18,54,0,21,0,60,30,9,20,0,0,0,23,12,0,40,33,11,0,19,
2291  0,0,0,0,51,0,0,34,38,28,0,0,46,58,48,16,26,17,0,11,60,22,40,0,0,0,32,6,29,0,0,56,0,1,42,0,20,59,0,0,0,0,3,36,0,0,0,0,39,0,0,31,52,25,43,5,13,19,0,8,
2292  57,44,54,0,19,30,29,0,36,0,58,0,0,51,0,17,0,23,48,6,41,10,0,21,0,20,0,8,25,7,16,35,53,0,45,0,34,27,50,0,33,15,0,49,0,56,0,0,0,42,0,24,0,0,0,0,55,0,0,38,
2293  0,40,53,29,33,1,26,27,0,47,0,6,0,50,42,0,16,0,43,12,0,0,0,0,0,0,0,0,5,0,0,3,18,28,35,17,55,23,49,32,37,57,25,59,0,0,58,0,19,60,10,0,0,44,0,9,0,31,34,11,
2294  0,33,50,0,0,0,48,10,43,36,17,53,0,0,0,29,0,0,60,54,52,0,0,4,42,0,23,0,2,0,0,0,0,0,39,20,0,21,0,59,0,28,38,0,0,45,12,0,0,9,0,0,7,0,31,0,26,44,30,0,
2295  2,54,51,20,1,40,31,0,0,30,0,45,0,29,7,0,19,52,35,0,0,0,0,0,5,23,24,0,0,8,15,21,41,0,0,0,47,56,4,26,0,0,53,0,55,0,43,39,0,32,44,0,57,9,18,0,60,22,59,58,
2296  25,0,0,0,0,0,1,45,5,0,30,0,0,0,34,0,55,6,0,0,15,24,33,28,0,0,0,0,13,22,0,9,0,50,0,21,0,0,0,0,0,7,10,0,46,43,0,57,4,0,37,44,51,58,23,47,35,0,17,32,
2297  0,0,22,21,43,0,39,0,29,12,42,0,2,49,0,31,0,55,37,33,1,0,15,26,44,0,0,11,4,0,50,27,36,46,18,30,0,0,32,0,0,35,58,40,0,14,5,45,48,0,0,0,20,16,47,52,17,25,8,0,
2298  9,13,27,0,59,0,0,0,16,49,20,46,0,0,47,10,0,0,0,55,42,50,35,0,0,36,0,5,24,0,0,0,57,58,7,0,0,0,3,0,21,34,28,48,45,15,8,23,33,0,0,0,43,0,32,56,0,0,29,31,
2299  0,11,38,22,0,34,46,13,56,0,41,0,40,20,60,21,0,36,0,0,9,0,0,45,18,58,48,0,0,0,33,0,0,30,24,0,51,39,12,16,0,47,0,0,0,0,15,59,29,14,0,5,1,0,54,43,10,0,27,0,
2300  21,28,0,42,0,6,37,0,0,0,31,32,0,0,0,0,0,19,0,38,0,17,10,0,0,0,0,33,0,43,2,7,24,0,15,0,29,0,14,35,0,0,0,34,48,27,0,13,11,0,0,0,0,60,55,3,16,4,0,9,
2301  23,0,60,0,0,0,42,0,0,0,0,51,50,33,0,0,0,35,0,2,0,0,47,34,59,43,0,0,9,45,19,0,5,27,14,0,0,54,0,0,52,26,0,0,25,0,44,58,49,31,0,8,4,46,20,0,29,0,41,0,
2302  0,16,21,38,0,0,4,56,25,14,12,49,0,0,17,0,42,0,47,50,24,0,18,0,33,30,8,51,0,0,58,23,60,13,0,5,2,0,0,9,28,0,7,45,0,39,0,11,0,0,48,0,44,37,0,36,27,0,6,0,
2303  16,0,0,55,0,32,50,0,33,0,0,0,0,37,0,0,0,12,0,8,0,11,44,0,0,2,53,0,10,3,9,0,0,17,13,0,0,30,0,0,60,45,0,58,0,41,0,35,0,34,46,27,18,0,0,0,51,39,0,0,
2304  53,20,32,34,27,0,57,42,0,59,0,36,0,0,30,56,0,11,0,24,18,33,0,0,0,13,47,55,0,0,52,41,0,0,0,46,35,14,17,0,0,50,0,38,0,37,0,60,40,12,25,0,31,8,0,0,0,0,0,3,
2305  0,0,0,0,0,0,18,24,0,0,0,42,56,0,0,0,32,1,33,0,55,0,0,19,0,25,34,0,0,39,0,40,22,3,0,54,0,16,30,38,41,53,0,0,37,0,47,48,0,46,13,0,9,0,0,15,0,0,11,51,
2306  33,0,8,36,0,0,40,16,0,15,0,11,0,23,0,45,30,22,0,0,0,14,0,9,49,0,0,0,0,21,0,17,0,19,58,0,46,52,0,2,0,13,31,47,20,0,0,4,0,0,0,0,0,55,34,0,43,0,0,0,
2307  0,0,0,43,0,0,0,0,26,5,0,0,45,0,0,0,0,32,0,27,49,54,51,14,0,56,2,0,0,47,13,19,59,6,11,18,0,34,55,0,0,0,0,30,0,40,0,50,23,0,0,35,17,0,39,53,12,28,15,42,
2308  48,29,5,10,46,0,11,55,4,0,21,16,32,0,0,35,0,60,0,0,58,3,37,44,0,0,50,19,0,0,0,39,0,0,9,0,0,31,7,0,25,0,47,24,0,36,0,0,0,33,38,26,0,13,0,0,0,34,0,6,
2309  20,23,56,57,0,0,16,40,0,25,0,2,58,0,54,11,49,0,13,9,0,0,52,38,0,4,19,0,35,41,6,26,50,44,0,15,59,0,0,33,0,60,0,0,3,34,7,53,0,0,39,0,10,0,42,22,14,46,21,5,
2310  40,51,58,15,0,46,0,29,24,23,55,44,59,41,0,0,11,5,0,0,19,0,54,32,13,18,1,30,50,0,0,45,16,0,2,0,27,10,0,14,0,0,56,0,0,0,9,34,60,4,22,0,3,0,0,17,48,0,49,0,
2311  30,3,52,35,0,0,0,19,11,0,60,31,47,0,56,0,0,0,0,0,54,1,21,0,0,9,6,0,48,24,39,0,0,0,57,0,0,5,23,0,46,59,0,2,32,17,0,25,0,51,0,0,0,0,0,38,37,0,55,0,
2312  18,0,0,51,52,0,23,47,0,40,0,0,28,0,22,1,25,0,44,0,0,4,43,0,12,0,30,39,6,16,0,48,42,0,0,32,0,41,45,34,29,10,0,0,31,38,55,0,0,50,19,15,58,36,24,0,11,35,13,37,
2313  39,0,19,0,49,55,52,18,0,4,28,0,15,46,40,23,27,31,0,14,2,0,7,25,10,0,0,45,1,54,5,42,0,53,0,0,0,35,6,20,8,51,0,0,0,12,36,22,56,38,3,33,26,21,17,13,58,0,9,41,
2314  10,0,24,0,37,0,45,31,0,2,11,25,39,0,26,55,0,7,0,21,0,51,30,0,35,0,15,60,34,17,0,38,44,36,53,58,19,0,42,22,0,0,0,8,14,54,0,32,0,0,0,0,27,18,33,29,0,0,40,49,
2315  0,18,0,6,0,44,0,15,0,19,53,38,1,42,0,0,0,0,20,0,10,16,50,0,48,40,0,24,31,0,0,36,58,0,46,4,0,12,0,29,49,0,22,5,0,0,17,3,43,0,0,0,47,56,0,60,45,0,33,26,
2316  17,34,0,53,14,16,0,0,54,37,51,10,0,0,46,13,40,0,0,0,59,29,25,58,45,0,55,23,0,0,0,0,9,26,60,41,22,50,47,0,0,31,32,39,21,28,20,0,42,2,5,1,0,0,35,57,6,38,7,36,
2317  46,43,0,0,0,39,0,36,0,0,56,35,25,10,27,0,0,18,19,28,16,0,0,17,4,0,0,15,52,14,38,20,32,37,0,60,23,11,2,0,0,0,0,41,49,7,0,0,6,0,57,29,8,33,0,51,0,58,47,54,
2318  0,2,29,0,9,26,0,50,0,0,16,0,0,57,8,44,0,53,25,19,33,0,24,18,0,5,0,48,43,58,0,0,51,0,34,0,42,0,1,45,13,32,0,54,0,30,27,0,36,7,23,47,38,0,21,20,31,6,37,39,
2319  47,0,30,0,25,50,55,43,0,10,34,0,0,0,0,0,0,0,0,4,6,0,0,0,60,19,44,0,0,53,0,0,56,0,0,52,32,20,0,0,24,58,0,29,11,18,48,38,0,1,0,0,5,28,51,16,0,0,42,21,
2320  37,53,42,0,0,15,20,4,0,0,45,0,7,0,0,5,0,56,51,13,26,39,57,46,0,14,12,27,17,49,55,8,0,0,30,19,0,0,35,10,3,36,34,23,52,11,0,0,0,25,0,21,0,24,0,18,41,0,16,50,
2321  0,22,23,39,10,0,0,0,57,7,44,5,0,30,18,4,12,50,15,0,0,0,29,59,2,16,41,46,60,0,43,13,48,38,19,0,8,42,0,52,54,0,0,55,9,47,0,6,28,24,26,32,11,34,37,0,1,53,36,45,
2322  55,37,20,0,6,58,28,0,0,27,50,41,31,0,24,47,45,0,0,43,51,0,46,0,25,60,39,0,0,42,32,34,12,16,0,57,0,0,56,0,5,52,0,35,38,48,10,0,0,0,1,3,15,0,40,44,0,0,0,0,
2323  29,0,0,18,0,0,30,44,0,0,0,48,0,19,52,0,0,3,10,0,0,47,0,49,58,0,0,0,11,0,20,28,33,12,0,53,0,0,38,6,14,9,40,0,0,0,45,8,57,13,0,34,2,1,27,35,24,5,32,0,
2324  56,47,0,0,32,52,0,0,0,38,29,18,16,0,41,54,46,0,0,0,13,6,0,12,0,0,0,0,58,0,31,4,0,60,28,33,0,44,37,42,39,11,0,0,0,25,2,55,0,19,0,51,0,35,0,23,0,10,45,27
2325  };
2326 
2327  const int d60_1620[] = {
2328  // Size: 60 x 60
2329  60,
2330  // Pre-assigned fields
2331  0,14,0,12,0,25,0,0,48,6,57,3,41,0,29,40,0,0,0,0,50,21,32,0,38,49,13,56,0,0,0,58,45,59,0,0,0,0,0,0,47,0,0,0,18,19,39,46,10,55,42,17,0,20,11,4,0,23,0,60,
2332  0,31,0,9,39,8,12,0,0,0,25,55,38,59,0,0,4,0,57,0,30,2,48,0,0,7,49,0,0,60,0,0,11,0,5,29,0,0,19,0,36,0,27,0,58,0,35,33,0,20,47,41,40,23,44,0,21,0,0,24,
2333  59,45,18,0,0,11,53,0,0,35,26,0,8,0,3,49,17,57,0,48,7,19,31,0,0,0,0,0,38,36,0,0,10,0,29,22,60,25,0,0,0,27,0,0,47,0,32,14,0,16,12,6,0,0,0,55,0,20,0,0,
2334  1,0,0,46,20,17,41,49,0,26,0,21,0,0,0,19,23,47,0,0,0,36,38,0,0,0,28,42,0,32,48,0,0,43,8,55,0,0,15,37,0,16,0,0,29,0,51,0,0,52,0,10,0,0,0,11,0,60,57,0,
2335  0,4,10,59,0,57,0,0,60,34,0,0,5,25,38,0,33,0,0,29,53,0,0,42,36,0,27,0,41,0,51,50,0,48,3,13,24,6,22,28,40,18,20,1,19,8,23,16,14,26,17,39,12,47,0,54,49,30,52,0,
2336  0,10,49,0,0,59,0,48,6,1,0,17,57,0,31,3,51,0,56,0,4,53,36,7,8,26,0,29,0,5,28,0,23,21,20,38,50,19,43,0,30,0,0,0,12,46,0,41,0,22,0,60,0,40,0,39,44,0,35,34,
2337  0,0,16,19,0,37,8,0,35,45,3,30,0,0,0,0,0,0,0,34,0,25,0,57,22,0,58,0,0,38,0,0,52,4,0,2,0,15,0,0,0,49,0,0,10,33,29,47,24,53,0,0,55,0,0,0,0,48,28,56,
2338  0,24,1,0,18,38,0,0,0,13,15,22,43,36,0,12,52,16,30,0,21,44,8,50,0,0,10,26,20,2,59,0,0,0,0,0,28,55,5,25,34,29,14,46,53,0,0,0,0,3,60,37,0,17,58,31,4,0,39,40,
2339  51,60,9,3,0,53,32,0,0,54,22,52,37,24,5,0,0,40,55,0,0,0,58,0,56,0,0,0,57,0,30,47,0,20,38,0,0,48,31,4,0,19,0,0,0,0,21,49,44,18,43,0,0,39,25,0,7,15,0,17,
2340  60,56,37,0,0,5,0,0,40,0,0,12,0,18,43,0,15,0,45,42,34,0,39,3,53,0,57,0,0,0,0,44,31,52,0,0,0,0,0,17,32,0,24,28,26,16,0,0,58,0,20,11,0,0,0,19,50,0,38,35,
2341  31,55,13,0,47,29,0,0,0,0,38,0,6,35,10,0,0,0,14,46,0,0,20,30,40,0,60,0,0,9,11,0,0,0,25,45,0,0,48,0,4,0,0,22,24,0,19,0,34,0,36,43,0,51,28,50,18,26,0,0,
2342  0,58,0,0,0,0,24,0,0,29,39,4,60,0,0,0,6,26,8,0,37,0,42,40,0,28,43,31,21,20,45,53,0,0,0,44,0,38,0,15,56,48,19,9,0,0,22,7,0,0,34,59,0,0,0,14,30,18,0,0,
2343  54,59,28,31,0,0,0,21,23,16,47,0,48,0,36,7,38,0,34,0,14,0,2,53,29,0,26,35,12,13,10,49,27,0,33,43,3,8,0,0,0,0,0,19,44,5,0,24,17,39,6,0,60,0,41,0,0,50,0,52,
2344  38,0,0,26,0,0,44,30,8,46,7,0,13,56,35,0,28,48,11,1,0,0,45,23,32,0,0,43,0,29,0,55,0,0,0,12,40,0,52,36,53,33,15,0,0,49,50,20,47,0,4,0,0,41,16,24,0,2,19,59,
2345  49,52,0,45,36,18,0,0,10,9,4,0,0,53,0,33,44,27,0,17,43,40,0,0,37,0,0,0,7,57,46,0,25,0,0,6,0,32,0,39,0,3,0,13,42,31,60,21,0,58,0,16,34,59,26,2,20,0,0,0,
2346  26,0,40,2,11,0,0,52,17,3,0,8,36,0,32,0,0,20,0,0,29,58,0,0,0,6,0,41,47,44,7,59,1,0,0,0,0,43,54,0,0,23,0,0,56,22,0,5,0,0,0,0,14,19,49,33,46,0,60,0,
2347  19,0,0,56,0,2,0,46,13,17,54,0,0,0,58,59,31,0,24,0,0,20,0,11,52,45,0,0,32,0,0,15,30,42,23,50,49,1,0,5,43,12,39,0,41,0,40,51,7,27,33,4,0,0,0,6,47,0,0,53,
2348  0,0,0,0,21,0,59,0,19,0,32,50,20,39,0,27,24,0,12,0,0,0,5,35,0,57,0,0,0,33,56,30,3,0,51,40,38,0,0,0,0,37,43,10,1,0,25,0,0,49,8,0,46,7,48,0,54,0,14,16,
2349  41,27,0,1,0,0,0,58,47,48,6,0,0,0,0,0,60,46,52,0,44,35,55,0,17,0,7,53,0,11,0,37,38,8,0,34,16,0,36,0,0,0,21,25,57,4,0,19,9,28,0,0,0,50,0,0,59,32,0,33,
2350  0,25,47,0,53,0,0,8,52,58,0,24,14,2,0,0,0,42,0,15,23,0,0,0,0,31,0,0,0,59,0,33,40,5,44,0,0,0,0,7,48,43,0,0,16,32,41,0,0,0,29,55,35,4,45,30,38,12,0,0,
2351  0,0,0,5,0,9,38,0,39,20,13,0,0,0,0,0,0,34,0,0,47,23,0,0,54,35,0,40,0,0,0,0,0,0,22,11,52,4,29,51,0,42,0,0,7,53,33,12,0,0,2,0,0,0,8,58,32,0,0,28,
2352  42,0,57,0,0,41,54,0,18,0,0,56,26,0,19,50,0,28,59,0,45,15,12,0,16,0,0,0,0,34,22,0,0,14,0,10,5,47,33,48,7,44,0,43,27,23,0,31,55,35,0,9,37,11,36,0,0,0,0,29,
2353  0,0,46,0,0,54,7,0,0,53,0,0,49,0,55,0,0,58,16,0,0,45,0,37,0,41,42,9,0,0,40,31,17,35,0,0,0,22,0,0,26,20,0,56,0,57,0,0,0,11,0,0,0,27,10,0,3,29,25,0,
2354  5,49,0,33,0,0,0,37,0,32,27,59,34,43,4,0,0,51,42,39,11,60,41,0,55,0,0,0,0,0,0,16,0,0,54,8,0,0,20,0,2,0,36,53,6,10,57,0,46,0,0,0,0,0,0,48,0,14,44,18,
2355  3,1,12,32,0,36,0,0,0,0,0,33,35,54,37,0,0,0,0,0,0,27,13,47,0,0,0,28,0,18,0,57,0,0,0,0,0,26,59,44,6,0,30,52,50,24,0,0,0,40,45,48,0,0,0,7,0,55,23,46,
2356  50,0,0,8,57,24,0,0,49,55,0,0,22,32,13,48,0,41,27,47,25,43,0,5,0,10,51,2,26,0,44,0,39,7,52,0,45,0,16,31,0,0,0,21,0,60,30,0,20,56,0,53,23,12,1,40,0,0,3,19,
2357  15,50,4,0,51,0,0,34,0,28,18,0,46,58,0,0,0,17,9,0,60,0,0,0,0,0,32,0,29,27,0,56,0,1,0,14,20,59,0,0,0,0,3,0,30,21,53,0,0,45,49,0,0,0,43,5,13,19,0,0,
2358  57,44,54,0,19,30,0,12,36,39,58,13,0,0,1,17,22,0,48,6,0,10,0,0,9,20,59,8,25,7,0,0,0,31,45,0,34,27,0,46,0,0,0,0,4,0,14,52,18,42,0,24,0,32,60,37,55,43,5,38,
2359  0,40,0,0,0,1,0,0,0,0,0,6,0,0,42,39,0,38,43,0,46,8,4,15,0,21,0,0,0,48,0,0,0,28,35,17,0,0,0,0,37,57,0,59,0,0,58,2,19,60,10,0,0,44,56,9,36,0,34,0,
2360  0,33,0,0,0,0,48,10,43,36,0,0,19,6,0,29,47,37,0,54,0,0,0,0,0,0,23,1,2,0,0,14,0,32,0,0,41,21,0,59,16,28,38,0,0,0,0,0,0,0,27,0,0,5,0,0,0,44,30,0,
2361  0,0,0,20,1,0,31,11,0,30,0,0,42,29,7,0,19,52,35,49,48,0,0,6,5,0,24,0,16,0,15,21,41,0,36,0,47,56,4,26,10,0,53,14,0,0,0,39,50,0,0,0,57,0,0,0,60,22,59,0,
2362  0,42,39,11,0,56,1,45,0,0,30,0,54,8,0,14,55,0,0,0,15,0,0,28,0,12,16,20,13,22,26,9,0,0,0,0,0,0,53,0,27,0,10,0,46,43,0,0,4,29,0,44,0,0,23,0,35,0,0,32,
2363  0,19,0,21,43,7,0,38,29,12,0,54,0,0,0,0,34,55,0,0,1,0,15,0,44,0,0,0,0,23,0,27,0,0,0,30,0,60,0,13,9,35,58,0,0,14,5,0,48,0,0,57,0,0,0,0,17,0,8,0,
2364  9,0,27,0,0,0,17,22,16,49,20,46,0,0,0,10,0,44,0,0,0,50,35,2,51,0,18,5,0,0,0,0,57,58,0,0,0,0,0,0,0,34,28,0,45,15,8,23,33,0,11,19,43,0,32,0,0,41,0,0,
2365  0,0,38,22,28,34,0,0,56,44,0,26,40,0,0,0,0,0,32,25,0,42,0,45,0,0,0,0,0,0,0,0,55,30,24,0,51,0,0,0,17,0,0,0,23,35,15,0,29,0,0,5,0,0,0,43,10,49,0,2,
2366  0,28,59,42,0,0,37,39,1,0,0,32,0,47,0,0,0,0,26,0,36,17,10,41,20,0,0,0,0,0,0,7,24,0,15,23,0,58,0,35,57,8,5,34,0,27,0,0,0,54,30,0,0,60,55,3,0,4,0,0,
2367  23,36,0,0,22,3,0,53,55,0,10,51,0,33,0,15,0,35,7,2,57,38,0,34,0,43,0,12,0,45,19,0,0,0,14,0,0,0,0,30,52,26,37,17,25,6,44,0,0,0,28,0,4,0,20,32,0,0,41,0,
2368  52,16,21,0,3,19,4,56,0,14,0,49,53,31,0,32,0,43,47,0,0,0,0,0,0,30,0,0,55,0,0,0,0,0,0,0,0,0,10,9,0,0,7,45,22,39,59,11,0,0,0,0,0,0,46,0,27,0,6,0,
2369  16,0,25,55,0,0,50,0,0,42,0,0,52,37,14,38,0,12,0,8,28,0,0,48,57,0,0,0,0,0,9,24,0,17,0,36,0,30,0,0,0,0,23,58,40,0,0,35,54,0,46,0,18,22,15,59,0,0,31,0,
2370  53,20,0,0,0,43,57,42,22,59,23,36,9,28,30,0,48,11,0,24,0,0,0,51,39,13,0,55,44,1,0,0,54,0,0,46,0,0,17,0,15,50,26,38,0,0,0,60,40,12,25,7,0,8,0,0,0,45,4,3,
2371  14,26,7,58,12,20,18,24,0,43,5,42,0,0,59,28,0,0,0,0,55,0,0,19,0,0,34,17,23,39,49,40,22,3,10,54,21,0,0,38,0,0,57,44,0,29,47,48,31,46,0,2,9,6,0,15,0,36,11,51,
2372  33,0,8,0,41,0,0,16,42,0,0,11,44,23,28,0,30,22,0,53,27,14,0,0,49,0,35,0,0,21,25,17,0,0,0,7,0,0,0,0,0,13,31,47,0,0,18,0,0,0,50,0,0,0,0,26,43,37,54,48,
2373  0,46,41,43,7,0,21,0,26,5,0,58,0,44,0,0,0,32,22,0,49,0,51,0,1,56,2,52,33,47,13,0,59,6,11,18,0,34,0,3,38,25,29,30,0,40,0,50,23,37,24,35,0,31,39,53,12,28,15,42,
2374  0,29,5,0,46,0,11,55,0,18,21,16,32,0,45,35,1,60,2,0,58,3,37,44,28,0,0,0,0,52,42,0,0,23,9,0,14,0,0,49,0,0,47,24,43,36,54,27,30,0,38,0,59,0,0,8,56,0,20,0,
2375  0,0,56,57,24,0,0,40,37,0,0,2,0,0,54,0,49,29,13,0,31,48,52,0,27,0,19,0,35,0,6,26,0,0,17,0,0,0,0,33,0,60,12,51,0,34,0,0,0,8,0,30,0,45,0,22,0,46,21,5,
2376  40,0,58,15,0,46,0,29,0,0,0,44,59,41,0,53,11,5,36,0,19,57,54,32,13,0,1,30,50,31,0,45,16,33,0,0,27,10,0,14,0,0,0,12,0,0,0,0,0,4,22,28,0,0,0,17,0,0,49,47,
2377  0,3,52,35,0,0,0,0,11,50,0,31,47,0,56,36,0,49,4,0,54,0,21,0,0,9,6,22,48,0,39,0,14,0,57,26,44,5,23,0,46,59,0,0,0,0,28,25,0,0,41,20,16,29,12,0,37,33,55,0,
2378  0,0,2,51,0,33,0,0,0,40,49,0,28,0,22,1,0,8,44,0,0,0,43,20,0,53,30,0,6,0,3,48,0,0,0,32,7,41,0,0,0,10,0,0,31,0,0,54,59,0,0,0,0,36,24,0,11,0,0,37,
2379  39,32,0,0,49,0,0,0,0,0,28,0,15,46,0,23,27,31,0,14,0,30,0,0,0,24,0,45,1,54,5,42,34,0,50,0,0,0,0,20,8,51,0,0,59,0,0,22,0,38,0,33,0,21,0,0,0,16,9,0,
2380  0,41,24,0,37,0,45,0,0,0,0,0,39,5,0,55,0,7,50,21,20,51,30,16,0,0,0,0,0,17,47,38,0,36,0,58,19,0,42,22,0,0,0,8,0,54,3,0,52,0,9,0,0,0,0,29,0,0,0,49,
2381  0,18,11,6,0,0,0,15,32,0,53,0,1,42,51,0,0,0,20,59,10,0,50,0,0,0,21,24,31,0,14,0,0,41,46,0,0,12,0,29,49,30,22,0,0,0,17,3,0,0,0,13,0,0,57,60,45,8,0,0,
2382  17,34,48,0,0,16,33,3,54,0,51,10,27,4,46,13,40,0,0,0,0,29,0,0,0,52,0,0,56,0,0,0,0,0,0,41,22,50,47,0,11,31,32,0,0,0,20,0,0,0,5,0,24,0,0,0,6,38,7,36,
2383  0,0,0,0,30,0,13,36,0,21,56,35,25,0,0,0,59,18,19,0,16,55,0,17,0,42,5,0,52,14,38,0,0,37,12,60,0,11,2,0,44,0,50,41,0,7,34,0,6,48,57,0,8,33,9,0,0,0,47,0,
2384  0,2,29,0,0,0,0,50,0,22,16,40,0,0,8,44,35,0,25,0,33,0,24,18,46,0,4,48,43,58,60,0,0,49,0,0,0,0,0,0,13,0,0,54,0,30,0,15,36,7,0,0,38,0,0,20,31,6,37,39,
2385  47,35,30,0,0,50,55,0,2,0,34,0,33,12,0,0,37,0,0,0,6,13,14,54,60,19,44,0,36,53,8,0,56,0,40,52,0,20,0,0,0,0,0,29,11,18,0,38,0,1,0,49,5,28,51,0,15,17,42,21,
2386  37,53,42,28,44,15,0,4,58,33,0,60,0,0,0,0,0,0,0,13,26,0,57,0,0,0,0,0,17,49,0,8,47,22,30,19,0,29,35,0,3,36,0,0,52,0,1,43,38,0,54,21,32,0,0,0,0,0,16,0,
2387  58,22,23,39,10,0,0,25,0,0,44,5,17,0,0,4,12,0,0,0,0,0,29,59,2,16,0,46,60,0,0,0,48,0,0,0,8,0,0,52,0,14,33,0,0,47,31,0,0,0,26,32,11,34,0,21,0,53,0,45,
2388  55,0,0,30,0,0,0,0,53,27,50,41,31,17,24,0,45,0,0,0,51,9,46,0,25,0,0,36,14,0,0,0,12,16,0,57,13,33,0,11,5,0,0,35,38,0,10,29,2,21,1,3,0,0,40,0,0,0,0,0,
2389  29,0,26,0,0,0,0,0,41,31,0,48,4,0,52,42,0,3,0,0,0,47,0,49,58,0,37,0,11,0,20,28,33,12,0,53,0,17,0,0,0,9,40,16,60,55,45,8,57,13,51,0,2,1,27,0,0,5,0,7,
2390  0,47,0,48,0,0,0,0,9,0,0,0,16,34,0,54,0,0,53,0,0,6,22,12,0,0,36,57,0,0,0,0,26,60,28,33,0,0,0,42,0,11,49,0,15,0,0,0,1,19,0,0,21,35,0,23,40,0,0,27
2391  };
2392 
2393  const int d70_2450[] = {
2394  // Size: 70 x 70
2395  70,
2396  // Pre-assigned fields
2397  0,50,0,38,15,28,51,42,19,52,62,61,0,0,1,0,0,0,64,0,18,10,59,13,0,0,26,0,70,0,0,66,39,9,54,69,0,44,0,55,32,30,58,0,48,0,12,0,22,0,3,0,0,65,0,68,14,0,67,45,0,53,4,8,0,0,0,25,0,0,
2398  0,40,31,11,66,65,42,48,64,0,3,0,0,0,0,26,0,0,0,0,0,5,9,0,69,8,6,0,19,0,0,46,0,34,10,18,0,0,47,36,22,0,0,0,58,0,70,15,0,30,23,0,0,55,41,63,68,0,57,0,32,0,45,2,0,0,0,59,44,33,
2399  8,49,0,0,0,0,60,33,0,0,67,0,47,0,0,52,0,0,3,0,41,11,0,22,48,69,0,6,15,10,0,0,65,0,42,0,0,0,0,0,0,0,0,62,68,0,0,43,0,66,18,0,17,23,0,54,0,30,0,0,28,0,7,36,0,0,32,0,29,1,
2400  0,0,0,0,33,4,2,0,0,7,61,0,0,0,0,5,0,13,32,0,34,0,0,0,0,1,0,0,0,20,65,0,0,0,0,10,60,48,0,67,0,44,54,11,0,69,24,50,0,0,47,0,70,0,12,15,37,0,39,0,43,0,0,27,40,0,0,0,23,62,
2401  16,0,0,0,0,8,0,0,2,18,5,0,48,0,0,49,15,40,0,66,0,0,23,24,59,44,50,0,32,62,0,0,22,0,0,0,0,0,9,0,0,46,0,0,0,0,29,64,6,33,4,10,0,25,0,51,69,7,58,14,0,60,0,34,0,0,0,0,0,53,
2402  70,0,45,65,34,0,0,0,7,66,59,18,33,0,23,19,0,36,21,63,0,17,0,0,25,0,0,0,0,41,52,24,0,0,31,3,12,9,0,44,38,0,62,0,5,13,64,39,10,0,0,0,51,56,0,60,0,0,0,35,61,22,0,57,68,1,2,0,0,14,
2403  67,4,7,0,0,0,65,0,0,24,0,64,19,0,0,15,38,0,0,0,0,20,8,0,62,13,0,0,49,0,0,0,0,42,22,0,0,0,10,0,0,27,0,53,0,0,16,0,0,63,54,0,11,66,0,47,52,0,59,0,0,21,0,14,30,0,0,0,1,50,
2404  0,32,33,4,16,39,69,44,0,27,57,15,29,0,0,0,0,30,0,0,0,0,0,7,0,17,0,59,63,31,0,8,26,0,0,0,0,0,43,0,35,0,70,41,0,55,50,2,0,0,58,5,47,0,0,46,13,21,0,49,0,48,12,51,0,0,68,0,0,0,
2405  66,0,17,0,0,0,0,3,61,49,4,0,0,45,36,28,0,0,0,0,0,54,21,0,11,0,64,0,25,0,38,44,14,0,0,0,37,41,0,0,0,67,0,0,29,58,0,27,1,0,0,0,20,9,0,30,0,0,40,0,0,23,0,0,16,62,53,0,35,34,
2406  19,26,6,0,46,1,28,43,0,0,0,0,24,52,60,0,48,59,0,38,0,13,0,0,0,0,8,67,17,33,47,51,27,31,0,0,0,0,4,0,55,2,45,0,0,50,62,69,14,0,0,0,49,0,40,39,0,65,37,44,0,32,3,15,58,56,10,0,63,9,
2407  0,6,0,0,0,23,0,0,0,0,7,0,0,58,0,0,52,25,48,32,8,14,0,0,0,0,31,64,43,67,0,36,5,10,0,0,17,28,42,62,0,41,0,66,0,0,38,0,49,0,30,47,0,0,0,19,21,0,15,24,69,0,0,13,0,0,51,29,22,12,
2408  0,0,0,59,31,0,18,63,0,0,0,58,0,56,47,34,51,0,0,54,0,0,3,0,5,0,0,0,0,0,0,57,13,29,19,0,45,55,20,0,62,0,0,24,66,0,0,70,12,0,0,0,0,60,0,0,0,0,43,16,0,11,0,50,0,44,0,0,8,0,
2409  26,0,9,0,50,32,37,0,0,0,0,0,31,57,0,0,0,2,56,47,0,0,48,61,0,0,0,63,0,49,21,0,0,0,20,6,0,8,38,70,4,0,19,0,1,0,22,52,5,0,0,17,0,40,0,27,45,15,0,29,60,65,39,10,0,0,0,0,0,59,
2410  0,53,0,0,38,0,0,65,50,3,43,55,0,41,34,58,0,67,0,21,0,0,39,18,12,0,0,0,2,28,30,63,25,0,0,57,0,0,0,0,0,9,6,0,33,0,0,13,0,22,1,0,45,49,0,14,0,5,0,8,0,0,0,0,19,0,0,62,37,52,
2411  0,0,13,26,0,15,0,0,28,0,23,0,69,31,0,1,36,0,0,10,62,0,0,0,44,40,0,16,7,0,0,11,0,0,48,61,0,63,0,27,12,0,4,0,0,0,25,0,0,0,45,0,14,0,19,0,0,0,0,0,57,8,37,53,39,2,60,0,0,0,
2412  0,0,69,10,0,0,15,57,0,58,32,21,0,11,67,16,0,0,70,0,0,0,0,43,38,0,65,0,37,0,0,0,66,35,0,0,47,0,12,45,39,0,56,0,0,18,60,49,61,0,0,0,0,0,0,20,0,0,52,0,0,26,62,0,63,0,22,28,51,0,
2413  51,0,19,0,25,70,33,49,0,56,69,0,0,0,0,0,62,57,0,24,65,12,0,0,0,2,23,0,14,36,5,53,59,16,55,0,26,54,48,6,0,45,15,47,10,41,0,0,50,27,38,0,31,0,22,11,46,0,0,28,34,35,40,66,0,0,64,0,42,61,
2414  0,2,35,46,0,0,0,0,0,0,25,14,0,66,0,0,0,0,0,12,0,0,51,0,0,0,61,29,0,32,0,47,0,7,45,23,64,17,0,21,28,0,16,0,0,48,18,0,0,0,65,0,0,0,24,0,0,63,3,53,0,0,0,41,0,0,52,70,0,0,
2415  2,0,5,0,27,61,0,0,3,0,30,32,50,0,45,62,69,24,41,15,0,18,17,48,52,0,37,0,66,42,0,49,29,47,43,0,0,68,1,0,0,40,65,0,0,0,8,0,0,0,63,21,7,59,0,0,11,58,6,0,0,38,0,20,0,0,4,0,33,13,
2416  15,41,0,0,47,52,59,1,21,13,34,57,0,25,63,0,22,0,45,26,0,0,0,62,36,29,0,14,55,0,3,42,0,8,24,0,23,0,58,20,10,0,0,4,0,30,11,0,38,19,2,0,0,32,0,66,0,50,0,0,56,17,16,35,0,53,0,33,60,0,
2417  7,0,0,21,22,24,0,0,58,65,0,0,0,0,0,0,0,0,16,0,0,66,0,68,51,0,0,0,0,0,0,50,0,0,0,0,29,0,0,12,0,57,0,0,45,0,0,33,0,40,13,3,0,47,0,62,0,0,0,60,37,0,0,0,41,23,43,0,69,0,
2418  0,52,0,0,0,63,19,58,0,9,68,0,0,2,0,0,53,0,0,0,0,36,40,0,15,18,0,0,54,0,29,0,62,0,21,70,50,5,0,0,43,0,0,0,61,0,0,0,0,60,0,1,69,13,3,0,24,0,0,0,0,25,56,33,0,0,0,0,28,46,
2419  17,19,0,2,0,64,41,61,0,0,0,0,43,18,0,59,0,47,11,0,0,39,42,9,0,32,49,0,0,0,0,0,33,0,0,38,0,60,0,0,0,0,0,0,44,7,0,0,66,56,0,51,0,0,1,0,0,0,22,0,25,0,27,0,4,0,0,12,0,30,
2420  47,0,37,0,17,22,0,19,0,10,0,20,44,14,0,40,0,5,0,30,0,69,0,0,67,0,0,70,0,0,0,43,3,0,0,0,1,0,31,68,36,0,0,0,12,60,0,0,11,15,0,0,0,0,42,0,25,0,50,0,49,0,0,62,0,26,63,41,0,21,
2421  0,0,0,62,70,0,38,8,0,14,0,7,15,0,0,66,0,37,55,67,36,0,0,30,22,0,39,56,0,0,0,64,0,23,0,2,0,20,0,40,31,0,60,59,0,0,0,54,29,16,44,24,0,0,0,0,0,11,17,0,47,3,0,0,0,0,34,10,0,0,
2422  0,0,49,0,13,12,67,6,0,43,22,0,0,39,0,0,0,0,2,0,0,0,26,0,28,24,0,0,0,57,0,18,0,3,0,0,0,38,0,0,9,0,33,0,0,53,32,41,0,14,15,0,59,30,61,0,62,0,0,4,23,0,0,0,64,0,0,69,0,17,
2423  52,34,4,0,0,2,47,14,0,0,13,0,16,0,58,60,57,0,0,48,25,42,0,0,66,49,29,0,0,17,11,61,0,0,30,0,10,0,53,0,0,54,0,0,0,0,37,0,0,0,36,0,9,0,0,22,59,33,46,0,0,0,0,0,5,0,0,32,0,23,
2424  63,0,0,48,51,0,6,64,0,0,0,24,0,27,0,54,39,0,0,42,0,8,0,29,0,16,36,0,52,0,49,0,0,0,40,0,0,0,0,0,15,43,41,45,0,56,65,10,0,17,19,18,0,0,0,0,61,0,4,0,5,7,0,37,0,67,0,20,34,26,
2425  3,0,52,44,42,60,0,0,46,67,0,0,49,48,0,0,0,12,35,0,55,0,0,1,0,7,19,33,0,0,0,17,47,39,0,16,9,51,15,0,65,69,36,18,0,64,0,6,21,10,0,57,63,0,45,53,28,31,0,38,0,66,0,29,70,27,0,0,0,0,
2426  62,0,22,0,0,0,9,0,66,0,50,33,0,0,0,0,0,65,0,0,19,63,0,3,0,0,52,0,1,0,0,55,43,0,23,59,18,53,0,0,54,0,0,39,8,16,49,4,0,0,0,0,67,26,32,61,36,45,0,2,11,41,60,0,69,70,0,40,25,37,
2427  45,0,0,61,5,59,17,66,37,0,0,0,0,0,0,31,0,6,47,0,0,0,0,0,0,0,0,0,27,0,40,0,4,53,0,32,0,18,0,15,0,0,57,0,65,36,0,28,41,62,0,0,0,2,29,0,26,44,0,0,0,0,0,0,0,10,0,0,0,60,
2428  48,58,0,0,61,45,66,31,0,0,0,6,55,59,0,25,0,0,62,0,0,0,0,0,0,0,40,0,47,0,41,39,36,26,0,0,5,52,0,0,0,0,10,3,53,28,0,0,63,0,14,44,33,0,0,0,0,24,0,0,0,0,42,68,54,0,0,0,0,0,
2429  0,13,0,0,0,0,62,45,0,34,0,1,3,0,0,0,47,0,0,9,53,35,0,0,0,26,46,0,64,0,54,58,40,0,0,0,0,59,0,52,6,4,39,0,0,0,68,0,0,29,0,11,0,43,0,0,0,32,44,0,42,0,38,16,0,69,48,5,0,0,
2430  37,0,0,0,0,20,70,52,8,0,0,0,0,24,0,21,0,48,38,0,2,43,15,33,0,0,55,0,35,61,56,6,0,0,51,39,28,0,60,10,0,0,0,68,0,0,0,1,58,36,32,49,0,5,16,0,47,66,0,67,0,0,0,0,0,0,18,0,57,0,
2431  0,0,0,0,67,0,0,11,0,0,37,0,0,35,39,56,31,66,0,14,0,45,0,0,0,0,0,0,0,0,17,0,0,21,0,0,0,40,0,0,1,48,0,12,0,44,27,53,0,0,62,0,0,16,0,0,58,68,0,6,0,43,0,0,0,0,0,0,49,57,
2432  0,0,0,0,0,0,0,55,0,30,2,48,0,70,0,11,33,0,51,46,0,37,0,0,53,0,0,26,0,0,69,0,0,65,61,56,44,0,52,0,0,17,20,21,0,25,0,5,0,0,40,0,0,0,34,13,50,0,18,0,0,0,0,45,12,0,16,64,39,0,
2433  0,0,0,15,0,0,27,0,0,70,51,0,0,0,18,0,0,0,0,16,28,0,25,0,0,38,0,61,58,0,0,0,0,69,44,0,0,0,36,65,0,0,0,0,0,0,0,29,0,0,33,0,0,57,0,0,0,0,1,12,0,52,21,47,31,3,0,13,0,45,
2434  0,0,0,0,0,56,45,10,69,29,0,0,57,0,0,0,0,0,0,35,0,0,0,0,0,5,0,49,23,0,0,67,17,0,50,0,34,30,0,0,37,0,0,0,27,32,0,0,51,12,0,14,68,28,0,0,0,0,0,47,44,54,15,52,20,24,55,0,0,0,
2435  0,0,0,13,0,0,0,0,0,53,0,16,0,17,0,14,0,0,0,0,0,55,54,19,70,0,0,0,0,0,0,0,0,44,38,0,0,0,25,64,0,15,3,5,52,0,0,56,0,42,26,63,22,0,0,50,0,2,9,0,0,49,0,24,0,0,58,27,48,20,
2436  0,0,18,0,0,0,29,0,63,0,0,0,0,10,0,47,25,0,0,0,51,26,0,0,0,0,28,0,0,15,0,0,0,0,0,68,0,0,5,0,0,0,49,0,0,1,0,42,70,0,0,23,37,0,31,0,20,0,0,0,0,67,0,0,36,0,19,16,0,0,
2437  59,64,16,0,0,0,1,4,10,0,52,0,18,0,22,13,55,28,0,0,32,0,0,0,23,56,47,0,0,3,0,33,2,0,0,48,41,21,24,7,5,66,0,57,0,0,39,61,60,58,69,0,0,6,27,67,63,0,0,0,65,0,0,43,0,0,45,54,0,35,
2438  0,39,26,0,45,38,0,30,0,69,54,0,0,0,21,0,0,0,29,40,3,0,66,0,42,0,0,43,6,0,20,5,34,0,12,41,65,0,44,23,61,0,50,28,64,0,0,0,46,0,37,0,57,0,0,4,0,56,35,18,58,15,0,67,49,0,59,53,0,0,
2439  43,0,0,30,0,0,23,9,38,60,31,68,0,0,0,22,1,17,5,44,0,32,57,0,0,0,0,54,11,0,51,0,12,0,0,0,0,0,0,0,27,70,35,25,0,0,63,58,0,59,0,0,0,0,66,69,4,0,64,10,0,0,34,0,18,0,61,0,0,39,
2440  0,0,29,37,56,58,0,7,26,11,0,0,42,65,12,35,18,0,40,0,50,0,0,0,61,46,0,32,0,1,2,38,24,0,28,0,0,19,22,0,0,0,8,0,13,63,0,17,0,0,64,0,0,69,39,9,54,14,0,20,70,0,0,21,47,0,41,60,0,0,
2441  0,30,3,7,0,0,35,0,47,0,0,36,0,21,70,0,0,52,4,53,0,64,16,0,0,0,59,11,10,9,12,31,8,0,34,0,20,27,0,0,0,0,0,65,54,61,42,0,0,25,39,0,41,0,0,56,0,67,69,0,0,0,0,28,14,22,0,6,68,0,
2442  0,54,0,0,30,0,25,0,0,5,10,13,51,28,0,50,49,0,14,0,35,29,43,0,0,33,0,3,60,44,0,0,0,0,0,58,0,32,23,63,0,16,0,0,0,0,0,0,36,55,9,26,56,52,70,0,38,0,12,0,67,0,0,61,0,0,0,0,0,0,
2443  42,27,68,33,57,0,0,0,0,0,0,0,0,7,44,38,0,29,0,0,1,0,61,0,24,0,0,0,53,0,28,0,19,0,37,55,0,0,51,0,30,36,0,2,0,70,0,11,0,0,49,0,46,31,0,65,23,0,45,62,8,16,25,0,0,0,54,15,0,10,
2444  0,0,12,22,2,35,68,69,24,42,46,59,14,0,0,0,32,45,0,0,0,0,50,66,40,39,3,47,34,0,4,21,57,38,65,51,8,25,55,0,63,56,44,0,43,0,61,62,0,0,0,0,19,17,26,0,41,0,0,5,9,0,48,0,10,0,49,58,67,0,
2445  0,70,0,16,28,0,0,62,5,0,0,0,0,1,0,4,54,26,0,36,0,47,0,0,0,0,0,69,45,0,9,0,38,20,0,11,0,29,59,17,48,0,40,0,0,6,58,14,0,0,61,0,27,0,33,23,0,25,0,37,39,0,32,49,0,0,67,0,0,0,
2446  0,0,0,56,0,17,10,0,22,0,0,39,0,0,0,43,0,33,0,70,21,0,49,51,0,36,0,0,41,26,0,0,53,60,35,30,0,0,63,0,0,38,0,0,0,0,0,0,0,8,55,9,3,0,0,0,0,47,0,0,0,0,0,0,0,0,25,0,0,24,
2447  0,68,0,3,0,0,11,29,0,41,49,0,0,0,15,69,35,53,8,0,9,0,19,0,0,0,56,13,12,0,62,0,23,0,0,34,0,33,0,0,0,42,0,0,0,54,67,59,7,0,0,0,40,0,0,0,65,0,47,63,0,58,0,0,57,66,14,39,0,0,
2448  13,0,53,18,0,0,39,0,0,0,0,0,0,0,5,63,60,41,0,0,46,0,0,59,0,19,0,4,0,14,33,62,0,0,0,0,0,0,0,0,44,49,43,0,0,40,0,24,65,48,11,58,0,0,30,64,56,0,70,21,0,28,51,0,0,35,0,0,0,16,
2449  58,8,0,0,0,7,48,26,42,0,0,53,13,37,0,29,0,54,27,0,15,57,0,0,9,0,0,0,3,0,0,0,0,51,0,0,0,0,0,0,24,0,2,0,63,0,0,0,0,18,0,0,0,22,0,31,0,28,38,0,40,0,0,0,52,65,0,30,0,0,
2450  0,0,62,0,21,33,0,41,49,25,66,11,0,67,48,24,0,0,36,0,61,16,6,15,68,20,0,0,57,0,19,0,50,0,0,0,46,22,8,0,69,0,37,40,0,0,34,0,42,0,0,55,0,10,0,7,0,0,28,32,0,0,30,54,0,0,0,0,0,0,
2451  0,0,0,0,0,0,12,0,70,1,44,38,0,20,6,17,0,64,0,39,0,4,52,0,3,61,0,42,0,55,31,69,0,14,0,49,33,0,56,13,60,53,0,26,2,59,47,0,57,9,0,0,0,0,15,21,10,19,0,48,0,0,36,7,0,0,0,0,0,8,
2452  0,0,0,63,0,0,30,0,0,0,58,0,0,61,35,6,8,10,53,51,0,0,0,44,0,65,38,0,0,0,0,0,16,0,0,0,2,0,11,0,0,0,66,0,0,0,0,22,0,0,24,68,0,1,5,0,0,0,54,55,0,0,0,70,0,0,3,0,0,0,
2453  25,0,0,8,0,44,14,27,54,0,0,26,45,0,55,3,66,0,0,43,0,0,0,0,37,0,0,12,30,0,0,0,0,1,0,0,15,0,0,0,29,64,0,0,0,0,5,18,48,0,51,41,0,0,0,0,7,0,63,69,0,0,0,4,0,0,62,0,40,0,
2454  0,0,47,0,23,27,0,0,0,40,0,0,34,32,0,0,0,0,25,0,6,0,0,0,64,54,63,0,21,0,45,22,0,0,5,0,4,0,46,0,0,24,13,0,15,51,0,0,0,20,0,0,8,0,35,57,29,36,2,52,0,0,0,0,0,49,70,0,0,0,
2455  38,12,59,36,53,41,0,28,0,64,0,35,30,0,0,0,0,0,42,0,47,51,4,63,0,0,33,25,20,39,55,0,7,0,0,22,0,0,0,60,21,26,48,9,0,29,0,0,0,32,0,61,2,34,0,0,0,23,10,0,0,57,0,0,43,0,0,0,11,0,
2456  0,0,32,68,0,0,20,0,56,0,70,54,66,33,19,23,0,0,0,0,0,0,0,35,8,0,45,0,28,0,6,26,61,0,46,0,22,47,17,49,0,10,67,31,4,0,0,55,13,0,0,0,0,0,0,34,2,0,0,64,62,59,43,39,0,0,12,0,15,7,
2457  21,0,0,47,0,18,40,24,15,55,8,0,65,0,0,44,42,58,0,0,0,33,28,0,17,10,32,23,0,11,0,48,0,0,4,0,0,50,13,0,0,1,29,0,31,22,0,25,54,0,67,0,39,0,0,0,0,52,0,30,0,12,59,0,61,19,35,14,0,0,
2458  9,22,44,51,0,55,0,0,29,20,47,52,0,0,0,30,0,0,0,0,0,0,0,0,50,60,34,41,13,19,0,10,31,0,59,0,40,0,0,0,53,39,11,64,0,15,0,48,2,21,0,45,0,70,37,0,32,6,0,0,18,0,5,0,0,0,0,36,0,66,
2459  10,0,63,0,0,49,53,0,68,0,55,0,58,0,0,0,59,0,17,0,33,21,0,0,0,0,0,0,51,0,0,0,56,46,0,0,0,0,0,0,18,28,0,29,7,0,45,23,24,52,0,0,0,0,0,26,12,0,14,0,48,0,0,64,32,30,65,57,19,43,
2460  31,0,0,17,41,36,0,60,0,33,0,29,62,0,0,12,0,0,0,7,54,0,44,0,0,0,0,0,0,40,42,0,52,43,70,14,27,0,45,0,66,0,0,46,0,9,35,47,26,0,68,53,25,18,21,32,30,0,0,0,55,0,0,0,67,11,0,49,0,15,
2461  30,0,14,52,36,0,57,0,0,0,0,67,28,6,46,32,70,0,0,0,0,38,0,45,0,3,0,0,18,64,23,0,51,17,0,43,0,0,0,31,7,33,27,15,0,37,48,65,62,0,0,12,0,0,25,0,44,0,55,0,20,0,0,0,66,0,0,0,0,0,
2462  0,24,0,20,0,0,32,67,0,45,19,12,0,43,0,0,0,9,60,0,0,27,0,46,0,0,0,0,0,70,48,0,0,22,41,0,0,0,28,0,0,0,47,0,0,0,4,0,25,0,10,65,18,0,0,0,0,0,68,61,0,37,29,0,0,0,57,8,0,0,
2463  0,5,0,39,11,14,0,0,25,17,0,4,63,0,27,0,0,62,12,0,0,70,60,64,2,0,0,8,24,58,1,0,28,0,0,47,69,0,65,0,0,0,38,0,0,0,44,0,3,45,52,0,0,46,53,48,51,0,0,9,0,0,61,0,26,59,0,0,0,0,
2464  0,0,41,25,68,13,63,20,33,0,21,37,0,3,17,0,12,0,59,55,14,23,35,0,47,48,2,0,26,0,8,28,0,5,67,0,0,65,0,0,0,0,0,61,0,0,0,30,9,54,0,60,24,0,0,0,31,22,66,34,36,39,0,0,0,57,40,43,0,18,
2465  0,21,0,57,0,48,0,0,18,12,0,0,0,68,0,0,0,70,1,0,60,0,47,39,45,62,35,65,16,0,0,20,58,25,69,67,0,0,26,29,49,0,0,0,0,0,0,0,4,28,43,0,0,0,0,0,0,34,13,0,0,0,41,0,0,0,56,0,10,5,
2466  0,66,0,0,35,10,46,53,0,2,33,0,17,19,0,0,26,7,50,0,11,31,13,65,27,51,0,24,0,52,22,9,42,0,0,0,0,0,0,8,0,0,23,0,0,4,0,0,69,37,21,54,5,48,43,0,0,0,0,0,0,55,1,0,34,20,44,0,62,0
2467  };
2468 
2469  const int d70_2940[] = {
2470  // Size: 70 x 70
2471  70,
2472  // Pre-assigned fields
2473  0,0,40,38,0,0,51,0,0,0,0,61,0,0,0,0,0,0,0,33,18,0,59,0,0,0,0,2,70,0,0,0,0,0,0,69,57,44,0,55,0,0,0,0,0,0,0,34,22,0,0,31,6,0,63,0,0,0,0,0,46,0,0,0,0,0,47,25,20,0,
2474  56,40,31,11,66,0,0,0,64,0,0,0,0,0,52,26,0,0,24,0,4,0,0,0,0,8,0,0,19,43,13,0,0,0,0,0,0,0,47,36,22,0,25,16,0,0,0,15,0,30,0,0,0,55,41,63,0,0,57,17,0,0,0,0,0,28,27,0,44,0,
2475  0,0,0,9,12,26,0,0,0,0,0,31,47,34,0,52,0,0,3,20,0,11,0,0,48,0,0,6,15,10,58,0,0,50,0,0,13,4,2,19,56,0,0,0,0,0,0,0,45,0,0,40,0,23,0,0,0,0,27,25,28,24,7,0,59,0,0,0,0,0,
2476  0,0,30,35,33,4,0,0,52,0,0,0,6,0,0,0,0,13,0,56,0,0,41,0,0,1,0,17,38,0,0,45,0,49,57,0,60,0,0,0,0,44,54,0,0,69,24,0,0,0,47,42,70,0,12,15,0,0,39,59,43,0,0,0,0,0,26,0,0,62,
2477  16,65,11,0,55,8,0,0,2,0,0,70,48,0,0,0,0,40,0,0,38,0,0,0,59,0,50,0,0,62,0,19,0,0,52,0,0,0,9,0,0,0,0,56,0,0,29,64,0,0,0,0,0,25,0,0,0,0,58,0,35,60,0,0,0,0,17,21,0,0,
2478  70,0,0,0,0,0,58,37,7,66,59,0,0,0,0,0,0,0,21,63,0,17,0,6,0,27,16,20,0,0,52,24,0,0,31,0,0,0,40,44,0,29,0,43,0,0,64,39,0,0,0,0,0,0,0,0,8,26,49,0,61,22,46,0,68,1,2,55,47,0,
2479  0,0,7,0,29,0,0,70,0,24,0,64,19,0,31,0,38,0,34,0,0,0,0,0,0,13,0,0,49,0,18,0,0,0,0,0,35,36,0,0,0,0,0,0,32,0,0,0,0,0,54,37,11,0,0,47,52,0,59,26,68,0,0,0,0,0,0,9,0,0,
2480  34,0,0,0,0,0,69,44,53,27,0,0,0,38,65,61,28,0,0,0,45,62,24,0,10,0,66,59,0,31,0,8,0,0,3,0,0,0,43,1,0,0,0,41,0,0,0,2,0,0,0,5,47,0,0,0,13,0,0,0,0,0,0,0,9,0,0,0,56,0,
2481  0,48,0,0,0,0,26,0,0,0,4,0,0,0,0,28,0,0,52,50,0,54,21,0,0,15,0,10,25,0,38,0,14,0,0,0,37,41,0,51,0,67,18,0,29,58,0,0,0,0,0,0,0,0,0,0,0,42,40,0,0,23,70,0,16,62,53,0,35,0,
2482  19,26,0,5,0,0,28,0,0,16,29,66,24,52,0,36,48,0,7,38,70,0,18,57,34,12,0,0,0,33,0,0,0,0,0,0,30,42,0,0,0,0,0,20,0,0,0,69,14,0,0,0,0,68,0,0,0,0,37,0,0,0,0,0,0,0,0,0,63,9,
2483  0,0,0,0,18,0,0,0,44,0,0,56,0,0,0,0,52,25,0,0,8,14,0,0,1,0,31,64,43,67,0,0,5,0,0,0,17,28,0,62,50,0,0,0,0,0,38,0,49,0,0,0,61,20,0,0,0,0,15,24,0,0,0,0,0,39,0,29,22,12,
2484  0,0,61,0,31,0,18,63,0,38,0,0,53,0,47,0,51,0,30,0,0,0,3,0,5,0,0,0,67,0,0,0,13,0,19,0,0,0,20,0,62,0,0,24,0,0,0,0,12,23,35,0,0,60,0,0,9,0,0,0,0,0,52,0,0,44,1,37,0,0,
2485  26,0,9,41,0,32,0,0,0,0,0,0,31,0,0,33,64,0,0,0,0,0,0,61,14,0,0,0,0,49,0,0,0,11,20,6,0,0,0,70,4,0,0,30,0,23,0,0,5,0,42,17,53,0,13,0,45,15,0,29,0,65,0,0,0,54,0,3,0,0,
2486  29,53,0,0,38,0,16,65,0,3,0,55,0,0,34,0,0,67,0,21,17,0,0,0,0,0,0,46,0,28,30,63,0,48,0,57,70,10,0,0,59,0,6,0,33,0,26,0,0,0,0,32,0,0,7,0,35,0,60,8,0,40,0,11,0,31,0,62,0,0,
2487  5,0,13,0,6,15,55,0,0,50,0,0,0,0,0,1,0,43,0,0,62,9,0,0,0,0,18,0,7,0,0,0,0,32,0,0,0,0,54,0,12,0,4,0,70,21,25,66,68,35,0,0,14,51,0,0,67,64,65,41,0,0,37,0,39,0,60,0,0,0,
2488  64,0,0,10,24,19,15,0,34,0,0,21,0,0,0,16,6,55,70,0,31,0,36,0,38,0,0,27,0,54,0,0,0,0,1,44,0,0,0,0,39,0,56,0,25,0,0,49,0,41,0,0,48,42,0,20,0,0,52,0,0,26,62,0,0,0,0,0,0,0,
2489  51,43,0,0,0,70,0,0,0,0,0,0,52,0,0,7,0,0,0,0,65,0,0,0,18,2,23,60,0,0,5,0,59,16,0,0,0,0,0,0,20,0,0,0,10,41,0,0,50,27,38,0,0,0,0,0,0,0,0,0,0,0,40,66,0,4,0,0,0,0,
2490  0,0,0,0,0,42,0,0,13,26,0,14,5,0,0,0,0,0,15,12,0,59,0,0,0,30,0,0,62,0,60,0,67,0,0,0,64,0,57,0,0,0,16,37,0,48,0,0,0,34,65,0,58,0,0,38,19,63,0,0,0,0,0,41,0,43,0,0,0,0,
2491  0,0,0,0,0,61,36,0,3,28,0,32,50,53,45,0,0,0,0,0,23,0,17,0,0,25,37,0,0,42,0,49,0,0,43,0,16,68,1,0,0,0,0,0,56,31,0,0,39,0,0,0,0,59,0,0,0,58,6,0,26,38,0,20,55,12,0,0,0,0,
2492  15,0,0,0,0,0,0,0,0,13,0,0,0,25,0,0,22,61,45,26,40,46,0,0,0,29,0,14,0,18,3,0,69,8,24,0,0,49,0,20,0,0,31,0,9,30,0,51,0,19,2,48,43,0,0,0,0,50,0,0,56,17,0,35,0,53,37,33,60,0,
2493  0,0,67,21,22,0,0,17,58,0,0,28,0,0,38,18,0,15,0,8,27,66,0,0,0,0,0,52,0,0,0,50,20,0,0,0,29,0,0,12,42,0,9,0,0,19,0,0,0,0,0,3,30,0,36,62,55,0,0,0,37,4,35,25,0,0,43,56,0,0,
2494  0,0,23,34,20,0,0,0,0,0,0,0,59,2,0,0,53,49,67,0,7,0,0,47,0,0,14,0,54,0,0,27,0,6,0,0,50,0,37,0,43,0,0,35,0,0,0,0,55,0,0,0,0,0,0,45,0,0,41,0,0,0,0,0,48,64,42,0,0,0,
2495  0,19,0,0,58,0,0,0,0,0,0,0,43,0,14,59,10,0,0,13,0,39,42,9,0,0,0,0,0,34,36,0,33,28,0,38,0,60,0,0,68,0,0,0,44,7,0,0,0,56,50,0,0,0,0,0,16,70,22,0,0,0,27,0,0,0,23,0,0,0,
2496  0,55,0,0,0,0,0,0,0,10,0,20,44,14,13,0,23,0,0,0,0,69,0,0,67,0,0,0,65,0,0,43,0,0,0,8,1,16,31,68,0,61,0,0,0,0,0,0,0,0,34,0,28,0,0,33,0,0,0,54,49,0,0,0,0,26,63,41,66,0,
2497  0,0,0,0,0,5,0,0,57,0,45,0,15,0,42,0,0,0,55,0,36,52,0,0,22,0,39,56,4,48,0,64,63,0,0,2,61,20,0,40,31,0,0,0,0,65,0,54,29,16,44,24,0,0,0,0,0,0,17,27,0,3,0,0,0,68,34,10,0,0,
2498  0,51,0,0,0,0,0,0,36,43,22,0,25,39,0,0,0,0,0,65,0,58,0,0,0,24,0,0,0,0,0,18,0,3,0,0,21,38,66,34,9,31,0,0,40,0,32,41,0,0,0,0,59,0,0,44,62,0,0,0,23,46,0,0,64,0,11,0,55,17,
2499  0,0,0,0,3,0,0,14,0,0,0,0,0,12,0,60,57,0,43,0,0,42,0,0,0,0,29,45,0,0,0,0,35,0,30,27,0,0,0,24,0,0,1,0,62,38,37,0,67,0,0,0,0,0,0,22,0,0,46,0,0,0,0,69,0,0,50,0,0,23,
2500  63,0,0,48,51,0,0,0,14,0,0,0,0,0,3,0,0,11,68,0,0,8,0,0,32,0,36,0,0,0,0,0,0,0,40,0,38,0,0,25,15,43,0,0,0,56,0,10,0,0,0,0,44,33,0,70,0,0,0,0,0,7,2,0,1,0,9,0,0,26,
2501  3,59,0,0,42,60,0,0,0,0,14,0,49,0,20,0,0,12,35,0,55,0,0,1,54,7,19,33,50,37,0,0,0,0,0,0,0,51,15,0,0,0,0,18,0,0,40,6,0,10,22,57,0,8,45,0,0,0,26,0,0,0,13,29,70,27,0,4,0,0,
2502  0,10,0,27,44,0,9,0,0,0,50,0,12,30,0,0,0,0,28,29,19,63,0,0,0,6,0,0,0,35,24,0,0,0,0,59,0,0,0,46,54,0,17,0,0,16,0,0,0,13,0,0,0,26,32,0,36,45,42,2,0,0,60,0,69,0,7,40,25,0,
2503  45,0,0,61,5,0,17,0,0,0,38,0,70,55,8,0,68,6,0,25,0,0,0,0,0,14,69,0,0,7,0,0,4,0,0,0,63,0,19,0,0,0,57,0,0,36,51,0,0,62,12,0,0,0,0,0,0,0,0,0,0,0,0,23,35,0,20,0,16,0,
2504  48,0,0,0,61,45,66,31,0,0,0,6,0,0,0,25,0,51,0,60,0,0,0,0,0,0,0,0,0,22,0,39,36,0,32,21,5,52,30,69,23,11,0,3,53,0,0,0,63,0,14,0,33,0,0,0,18,24,29,0,0,0,42,68,54,7,0,0,0,2,
2505  0,0,57,0,0,0,62,0,0,0,41,0,0,0,61,51,47,14,0,0,0,0,63,70,0,26,0,0,64,0,54,0,0,0,0,25,24,0,67,0,6,0,39,33,19,2,0,0,30,0,66,0,21,0,10,55,27,32,44,22,0,20,0,0,0,0,0,0,0,0,
2506  37,0,0,53,9,20,70,0,0,46,27,0,0,24,7,0,0,0,38,0,0,0,15,33,0,0,55,0,0,61,0,0,0,0,0,39,0,0,0,10,40,63,14,0,0,0,59,0,58,0,0,0,0,5,16,0,47,66,31,0,3,0,0,0,0,0,0,0,57,0,
2507  55,38,0,0,0,3,0,0,0,0,37,0,0,35,39,0,0,0,0,14,22,0,2,8,29,0,0,0,59,0,0,65,0,0,60,0,0,0,0,0,1,48,63,0,42,0,0,0,0,0,0,52,0,16,0,41,58,0,0,0,30,0,23,0,0,0,69,0,49,57,
2508  35,3,1,0,0,0,0,55,0,30,2,0,60,70,0,11,0,32,0,46,63,0,0,0,0,4,7,0,0,0,0,0,15,65,0,0,44,0,52,9,47,0,20,0,0,0,0,0,19,0,0,28,0,0,34,0,0,0,0,36,0,0,68,0,12,0,0,0,0,67,
2509  0,0,0,15,0,0,0,0,40,70,0,42,20,22,0,0,41,50,37,0,28,48,25,17,35,38,24,0,0,0,0,0,0,0,44,0,0,0,0,65,0,62,0,34,0,26,56,0,64,0,0,19,0,0,0,2,0,0,1,12,66,52,21,0,31,0,0,0,30,45,
2510  0,0,0,0,0,0,0,0,0,29,0,0,57,0,43,70,46,0,19,35,0,0,58,26,0,0,0,0,0,0,66,0,17,0,50,0,0,30,0,0,0,0,0,0,0,32,2,0,51,12,6,14,0,0,4,0,0,0,61,47,0,54,0,0,20,0,0,48,9,38,
2511  41,0,0,13,10,0,0,39,59,53,0,16,11,17,4,14,0,8,0,61,0,55,54,19,70,47,57,0,0,0,35,1,0,0,0,40,0,0,25,0,0,0,3,0,0,0,30,0,0,42,0,63,22,21,0,50,66,0,0,0,0,0,0,24,0,0,58,0,0,0,
2512  0,0,18,24,0,0,0,0,63,54,64,50,0,0,0,47,25,0,0,0,0,0,56,0,13,58,28,53,0,0,57,7,0,0,0,0,0,46,0,0,0,6,0,0,34,0,0,0,70,0,60,0,0,14,31,35,20,27,21,0,0,67,0,0,0,0,0,0,59,0,
2513  59,0,0,40,0,0,1,0,0,0,52,0,0,0,0,13,0,28,0,0,32,30,0,0,23,0,47,0,42,0,0,33,0,0,0,0,41,21,0,0,0,0,53,57,0,0,0,0,60,0,0,0,26,0,0,0,63,0,0,50,0,44,31,43,0,0,0,0,17,35,
2514  0,39,26,31,0,38,13,30,11,69,0,0,0,0,0,0,0,0,0,40,0,2,0,16,0,0,0,0,0,0,20,0,34,0,12,0,65,0,44,0,61,47,50,28,0,0,0,0,0,0,0,0,0,0,68,4,0,56,35,0,0,0,0,67,0,60,59,0,0,0,
2515  43,0,48,30,0,0,23,0,0,60,31,0,56,0,0,0,0,17,0,0,0,0,57,0,0,0,20,54,0,0,51,15,0,0,0,0,52,3,0,0,27,70,0,0,0,0,0,58,40,59,29,13,55,53,66,69,0,0,0,0,0,0,0,0,18,0,0,0,6,0,
2516  49,0,0,37,56,58,0,7,26,0,15,0,0,65,0,0,18,44,0,34,0,0,0,0,61,0,0,0,0,0,2,38,24,0,0,52,0,19,22,0,25,0,8,48,0,63,0,0,0,0,64,67,0,0,39,0,54,14,0,0,0,62,0,21,0,0,41,60,0,0,
2517  0,0,3,7,26,0,35,0,0,0,0,0,0,0,0,0,5,0,4,0,0,64,0,58,0,63,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,51,0,0,54,0,42,0,0,25,0,0,41,0,0,0,17,0,69,0,15,0,0,0,14,22,0,0,68,0,
2518  0,54,8,0,30,0,0,0,0,0,0,13,0,0,0,0,49,0,14,0,35,29,0,0,4,0,0,0,60,0,0,0,0,0,0,0,0,0,0,63,17,16,0,27,41,0,0,20,0,55,0,0,0,0,0,40,38,0,0,0,67,19,0,0,22,0,0,0,31,0,
2519  0,0,68,33,57,0,4,0,12,63,60,0,67,0,0,0,0,29,0,0,0,6,61,20,0,0,9,0,0,0,0,0,0,0,37,0,0,0,0,0,0,36,0,2,0,70,0,11,0,26,0,22,46,0,0,0,0,0,45,0,8,0,25,0,0,0,0,0,32,0,
2520  0,37,0,0,2,0,0,0,24,0,46,0,14,0,0,64,0,0,31,6,0,0,50,0,0,39,0,47,34,0,0,21,0,38,0,0,0,25,0,0,0,56,44,0,0,20,61,0,52,0,7,0,19,0,0,29,0,0,16,5,9,0,48,0,0,0,49,0,67,0,
2521  0,0,0,16,28,0,34,62,0,0,35,0,46,0,51,0,0,0,63,36,0,47,55,53,0,68,21,69,0,50,9,41,0,0,0,0,42,0,0,17,0,0,40,22,0,0,58,14,0,0,61,8,27,0,33,23,60,25,0,0,0,10,0,49,2,13,0,52,65,64,
2522  0,0,46,56,0,17,0,0,0,59,40,39,0,50,62,43,0,33,0,70,21,0,49,51,0,36,0,0,41,0,0,0,0,60,0,0,67,11,63,0,0,38,0,0,28,42,0,0,0,8,0,0,3,29,52,0,0,47,48,57,0,0,69,12,6,16,25,0,2,24,
2523  0,68,27,3,0,0,11,29,0,0,0,0,0,64,0,69,0,0,8,28,9,0,0,0,0,45,56,0,12,0,0,0,0,0,0,34,36,33,0,38,0,0,55,50,51,0,67,0,7,0,0,0,0,0,0,37,0,61,0,0,0,58,22,0,0,0,14,0,26,0,
2524  0,15,53,0,54,6,0,47,0,31,42,9,0,0,0,63,60,41,23,68,0,61,0,0,0,19,0,0,8,14,0,0,0,0,36,1,0,45,0,0,44,49,0,55,0,40,3,24,0,48,0,0,34,0,30,0,56,29,0,21,0,0,51,0,0,0,0,67,52,16,
2525  58,0,0,43,32,0,0,26,42,0,0,53,13,37,0,29,0,54,0,0,0,0,0,0,9,21,0,35,0,16,0,34,0,51,0,0,0,0,0,0,0,0,0,19,0,12,0,60,0,18,5,0,0,0,62,0,0,28,38,0,0,0,0,17,52,0,0,0,0,0,
2526  0,0,62,0,21,33,0,41,0,25,66,11,0,0,48,0,58,0,0,0,61,0,6,0,68,0,0,0,57,0,19,2,50,18,0,0,0,0,0,0,0,65,0,0,0,47,0,0,0,0,0,0,0,0,59,0,43,35,0,0,53,0,0,0,51,0,29,0,64,63,
2527  0,0,28,67,0,0,12,0,70,1,0,0,40,20,6,0,0,0,66,0,16,4,52,0,3,0,0,0,0,0,31,0,41,0,0,0,0,58,0,13,0,0,30,0,0,0,47,0,0,0,0,35,65,0,0,0,0,0,62,0,0,0,0,0,27,0,0,0,0,0,
2528  57,45,0,63,0,0,30,32,27,0,58,0,0,61,0,0,0,0,53,0,0,50,20,0,60,65,0,0,0,0,7,0,16,0,0,0,2,0,11,0,41,19,66,0,0,14,31,22,0,0,0,0,23,1,0,0,0,49,0,0,0,0,0,0,0,0,0,0,21,0,
2529  25,57,0,0,0,0,0,27,0,68,36,0,0,23,0,3,66,0,61,0,0,56,0,0,0,0,60,12,30,0,0,52,0,1,2,0,0,34,0,0,29,0,42,0,0,0,0,18,48,0,0,0,0,0,65,0,7,0,0,0,0,9,0,4,17,0,0,22,0,31,
2530  11,0,0,0,23,0,3,0,0,0,56,0,34,0,0,0,0,39,25,17,0,60,53,0,0,0,0,0,0,0,0,0,18,67,0,0,4,31,0,37,0,0,13,0,15,0,0,26,0,20,0,0,0,61,0,57,0,0,0,0,0,0,0,48,0,49,0,0,50,0,
2531  0,0,0,0,0,0,0,0,62,64,0,0,0,0,0,8,27,0,42,0,0,0,0,63,65,52,33,25,20,39,55,70,7,0,14,0,0,15,49,0,21,0,0,9,0,29,0,0,0,0,17,0,0,0,0,16,1,23,0,0,0,57,0,0,43,0,31,66,11,0,
2532  0,0,0,0,0,11,20,0,0,21,0,0,0,0,0,0,63,42,0,0,52,53,14,0,0,9,45,1,28,24,0,0,0,27,0,29,22,47,17,0,0,10,67,0,4,0,0,0,0,69,48,16,0,0,0,0,0,0,30,64,0,0,0,39,65,25,0,38,15,0,
2533  0,0,51,0,0,0,0,24,0,0,0,0,0,26,53,44,0,58,9,57,20,0,0,0,17,0,32,0,0,11,0,48,0,2,0,0,0,0,13,5,16,0,29,0,0,22,43,25,54,70,67,0,0,0,0,0,64,0,34,0,0,0,59,46,0,0,0,0,0,0,
2534  0,22,44,51,4,0,0,0,0,20,0,0,8,0,0,0,0,0,0,23,56,0,62,67,0,60,34,0,0,19,0,0,31,0,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,27,0,0,70,0,28,32,0,7,65,18,0,0,0,0,58,0,36,3,0,
2535  10,0,63,0,37,49,0,54,0,0,55,0,0,40,9,0,59,0,0,1,0,0,22,60,0,0,0,36,0,0,0,0,0,0,0,0,0,0,70,0,0,28,0,0,0,0,0,23,0,0,0,20,35,0,47,0,0,62,0,0,0,0,0,64,0,30,65,57,19,0,
2536  0,23,50,0,0,0,0,0,0,0,0,0,0,4,0,12,0,0,10,7,0,0,0,0,6,34,0,38,61,0,0,0,0,0,0,14,0,0,0,22,66,0,0,0,0,9,35,47,26,0,0,0,0,18,0,0,0,0,51,0,0,56,0,63,0,11,0,0,0,0,
2537  30,0,0,52,36,0,0,59,1,0,0,67,0,0,0,0,0,60,0,0,0,38,29,45,19,3,0,0,0,0,23,0,51,0,8,0,68,56,16,0,0,0,0,15,0,0,48,65,0,0,0,12,0,0,25,0,44,0,0,11,20,42,0,58,0,0,21,0,13,0,
2538  0,24,2,0,0,0,32,0,23,0,0,0,0,0,0,0,21,9,0,11,0,27,33,0,0,66,30,34,0,0,0,13,44,22,0,0,0,35,28,16,0,52,47,0,50,0,0,0,25,49,0,0,0,0,55,59,0,0,68,0,0,0,0,0,0,0,57,8,36,0,
2539  0,0,0,39,11,14,21,0,0,0,0,4,0,0,0,67,40,0,0,0,68,70,60,64,2,37,0,8,0,0,0,0,0,0,0,0,0,0,0,18,34,35,38,0,0,49,0,0,0,45,0,0,0,0,0,0,51,0,0,0,10,0,61,55,0,0,0,0,0,42,
2540  0,62,0,0,0,13,63,0,0,0,0,0,7,0,17,0,0,0,0,0,0,0,35,0,0,0,0,0,26,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,45,0,0,9,0,70,60,0,0,0,42,0,22,0,34,36,0,0,38,0,0,0,43,4,0,
2541  0,0,0,57,52,48,0,0,0,0,17,2,0,0,54,0,7,0,1,0,0,0,47,39,45,62,35,0,0,0,0,20,0,25,0,67,59,0,26,0,49,55,22,0,0,0,0,0,4,0,43,0,66,0,38,8,53,34,0,0,31,0,0,0,0,6,0,0,0,0,
2542  61,66,0,6,0,0,46,0,0,0,0,30,0,0,0,0,0,7,0,45,11,31,13,65,0,51,41,24,40,52,0,0,42,0,0,0,32,12,3,0,70,0,23,0,0,0,0,0,0,37,0,54,5,0,0,0,0,39,36,0,0,0,1,59,0,0,0,0,62,0
2543  };
2544 
2545 
2546  const int* qcp[] = {
2547  &d10_67_0[0], &d10_67_1[0], &d10_67_2[0], &d10_67_3[0], &d10_67_4[0],
2548  &d10_67_5[0], &d10_67_6[0], &d10_67_7[0], &d10_67_8[0], &d10_67_9[0],
2549  &d10_67_10[0], &d10_67_11[0], &d10_67_12[0], &d10_67_13[0], &d10_67_14[0],
2550 
2551  &d15_120_0[0], &d15_120_1[0], &d15_120_2[0], &d15_120_3[0], &d15_120_4[0],
2552  &d15_120_5[0], &d15_120_6[0], &d15_120_7[0], &d15_120_8[0], &d15_120_9[0],
2553  &d15_120_10[0], &d15_120_11[0], &d15_120_12[0], &d15_120_13[0], &d15_120_14[0],
2554 
2555  &d20_187_0[0], &d20_187_1[0], &d20_187_2[0], &d20_187_3[0], &d20_187_4[0],
2556  &d20_187_5[0], &d20_187_6[0], &d20_187_7[0], &d20_187_8[0], &d20_187_9[0],
2557  &d20_187_10[0], &d20_187_11[0], &d20_187_12[0], &d20_187_13[0], &d20_187_14[0],
2558 
2559  &d25_264_0[0], &d25_264_1[0], &d25_264_2[0], &d25_264_3[0], &d25_264_4[0],
2560  &d25_264_5[0], &d25_264_6[0], &d25_264_7[0], &d25_264_8[0], &d25_264_9[0],
2561  &d25_264_10[0], &d25_264_11[0], &d25_264_12[0], &d25_264_13[0], &d25_264_14[0],
2562 
2563  &d30_316[0], &d30_320[0],
2564  &d33_381[0],
2565  &d35_405[0],
2566  &d40_528[0], &d40_544[0], &d40_560[0],
2567  &d50_750_bal[0], &d50_825_bal[0],
2568  &d60_1080_bal[0], &d60_1152_bal[0], &d60_1440[0], &d60_1620[0],
2569  &d70_2450[0], &d70_2940[0]
2570  };
2571 
2572  const char* name[] = {
2573  "10-67-0", "10-67-1", "10-67-2", "10-67-3", "10-67-4",
2574  "10-67-5", "10-67-6", "10-67-7", "10-67-8", "10-67-9",
2575  "10-67-10", "10-67-11", "10-67-12", "10-67-13", "10-67-14",
2576 
2577  "15-120-0", "15-120-1", "15-120-2", "15-120-3", "15-120-4",
2578  "15-120-5", "15-120-6", "15-120-7", "15-120-8", "15-120-9",
2579  "15-120-10", "15-120-11", "15-120-12", "15-120-13", "15-120-14",
2580 
2581  "20-187-0", "20-187-1", "20-187-2", "20-187-3", "20-187-4",
2582  "20-187-5", "20-187-6", "20-187-7", "20-187-8", "20-187-9",
2583  "20-187-10", "20-187-11", "20-187-12", "20-187-13", "20-187-14",
2584 
2585  "25-264-0", "25-264-1", "25-264-2", "25-264-3", "25-264-4",
2586  "25-264-5", "25-264-6", "25-264-7", "25-264-8", "25-264-9",
2587  "25-264-10", "25-264-11", "25-264-12", "25-264-13", "25-264-14",
2588 
2589  "30-316", "30-320",
2590  "33-381",
2591  "35-405",
2592  "40-528", "40-544", "40-560",
2593  "50-750-bal", "50-825-bal",
2594  "60-1080-bal", "60-1152-bal", "60-1440", "60-1620",
2595  "70-2450", "70-2940",
2596  NULL
2597  };
2598 
2599 }
2600 
2601 // STATISTICS: example-any
2602 
const Spec spec
Specification.
Definition: qcp.cpp:147
IntVarArray e
Field elements e.
Definition: qcp.cpp:149
virtual bool slave(const MetaInfo &mi)
Slave function for portfolio search.
Definition: qcp.cpp:228
double _tbl_min(double w, double b) const
Tie-breaking minimum limit function.
Definition: qcp.cpp:210
Slice< A > col(int c) const
Access column c.
Definition: matrix.hpp:187
NNF * l
Left subtree.
Definition: bool-expr.cpp:244
bool valid(const FloatVal &n)
Return whether float n is a valid number.
Definition: limits.hpp:43
QCP(bool share, QCP &s)
Constructor for cloning s.
Definition: qcp.cpp:250
void value(double v)
Set default value to v.
Definition: options.hpp:112
double tbf
Tie-breaking factor.
Definition: qcp.cpp:151
AFC afc
Definition: afc.cpp:139
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
Definition: var.hpp:212
Integer variable array.
Definition: int.hh:742
Computation spaces.
Definition: core.hpp:1672
Parametric base-class for scripts.
Definition: driver.hh:703
Gecode::IntSet d(v, 7)
void update(Space &, bool share, VarArray< Var > &a)
Update array to be a clone of array a.
Definition: array.hpp:1072
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf, FloatVarValPrint vvp)
Branch over x with variable selection vars and value selection vals.
Definition: branch.cpp:43
Use distinct constraints.
Definition: qcp.cpp:156
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
Definition: bool-expr.cpp:238
Options opt
The options.
Definition: test.cpp:101
Use smallest domain size first.
Definition: qcp.cpp:160
NNF * r
Right subtree.
Definition: bool-expr.cpp:246
QCP(const QCPOptions &opt0)
Actual model.
Definition: qcp.cpp:164
Use largest AFC divided by domain size.
Definition: qcp.cpp:161
Type type(void) const
Return type of information.
Definition: core.hpp:3099
Recording AFC information for integer and Boolean variables.
Definition: int.hh:3832
IntValBranch INT_VAL_MIN(void)
Select smallest value.
Definition: val.hpp:68
unsigned int size(I &i)
Size of all ranges of range iterator i.
IntVarBranch INT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
Definition: var.hpp:113
void distinct(Home home, const IntVarArgs &x, IntPropLevel ipl)
Post propagator for for all .
Definition: distinct.cpp:50
Information is provided by a portfolio-based engine.
Definition: core.hpp:1549
const QCPOptions & opt
Options.
Definition: qcp.cpp:145
Example: Quasigroup completion
Definition: qcp.cpp:142
TieBreak< VarBranch > tiebreak(VarBranch a, VarBranch b)
Combine variable selection criteria a and b for tie-breaking.
static double tbl_min(const Space &home, double w, double b)
Tie-breaking minimum limit function.
Definition: qcp.cpp:215
Use only binary disequality constraints.
Definition: qcp.cpp:155
Options for scripts with additional instance parameter
Definition: driver.hh:670
Slice< A > row(int r) const
Access row r.
Definition: matrix.hpp:181
bool assigned(View x, int v)
Whether x is assigned to value v.
Definition: single.hpp:47
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
Definition: rel.cpp:47
int main(int argc, char *argv[])
Main-function.
Definition: qcp.cpp:281
IntVarBranch INT_VAR_AFC_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count divided by domain size with decay factor d...
Definition: var.hpp:242
unsigned int asset(void) const
Return number of asset in portfolio.
Definition: core.hpp:3128
Matrix-interface for arrays.
Definition: minimodel.hh:1923
double _tbl_max(double w, double b) const
Tie-breaking maximum limit function.
Definition: qcp.cpp:219
virtual void print(std::ostream &os) const
Print solution.
Definition: qcp.cpp:261
Gecode toplevel namespace
Information passed by meta search engines.
Definition: core.hpp:1542
Random number generator.
Definition: rnd.hpp:46
struct Gecode::@554::NNF::@60::@61 b
For binary nodes (and, or, eqv)
static double tbl_max(const Space &home, double w, double b)
Tie-breaking maximum limit function.
Definition: qcp.cpp:224
virtual Space * copy(bool share)
Copy during cloning.
Definition: qcp.cpp:256