Laboratory of Babel / Archive / grad-noise-175k

grad-noise-175k

Gradient noise, 175k (run of 2026-09-23) · A complete batch run over 175,797 lattice-noise expressions, with 32 texture diagnostics and a frame of each.

About this collection

This collection is complete and closed. Every expression in the space below was rendered and measured once, in a single batch run. Each row is one expression, and its coordinate links to it running live on uto.run.

The purpose is exploratory. There is no target texture and no attempt to resemble Perlin noise. A constant field, a strongly directional pattern or an odd value distribution is an observation, not a failure. The measurements describe textures so they can be sorted, filtered and compared. They are a lossy fingerprint, not a judgement of quality and not a substitute for looking.

The space

An ither formula with two layers:

  • topo: expression trees of up to 64 nodes, built from unary (o1), binary (o2) and leaf (x) slots
  • expr: fills those slots
    • leaves: P, D, R
    • unary: sqt log frc flr cil sgn nrm
    • binary: add sub mlt div pow mod lrg eql min dot dst

A coordinate t·x·u·b follows the formula's projection: t the topology, x the leaf choices, u the unary choices, b the binary choices. Points outside the space were omitted from the run. Two orderings ride along: ordinal is the point's position in ither's whole enumeration (gaps where points were omitted), and batch index is its place in the batch run's sequence, 0 to 175,796 (the run's inputs.expr, and the number in its frame's file name).

The apparatus

Each expression is evaluated at the corners of a rectangular lattice with quintic blending (LATT.RECT.QUINTIC), over coordinates mlt(C, 8), in a 256 × 256 field #A. One configuration per expression: the dimension and coordinate scale were fixed for the whole run.

Measurements are taken from #A's x channel, its stored values (not a screenshot), at step 7, after which the run moves to the next expression. The frame in each row is that field, remapped for display.

The measurements

Notation: f is the field value, E averages the whole field, and E_I averages the interior (C-space [-0.98, 0.98]², which keeps wrapped edges out of the spatial measures).

Value distribution

key meaning
value_mean, value_abs_mean E[f] and E[|f|]: signed offset, typical distance from zero
value_positive_fraction share of values above 0 (field tolerance 0.0001)
value_variance, value_stddev population variance and SD: contrast
value_min, value_max, value_range sampled extrema and their difference
histogram_entropy_bits entropy of a 32-bin histogram over [−1, 1], 0 (one bin) to 5 (uniform) bits
histogram_probability_sum consistency check, ≈ 1

Local roughness (one-pixel differences dx, dy, and g = √(dx² + dy²))

key meaning
gradient_energy_x, gradient_energy_y E_I[dx²], E_I[dy²]
gradient_magnitude_mean E_I[g]: roughness
gradient_magnitude_variance, _stddev, _max how unevenly that roughness is spread, and its peak
gradient_magnitude_cv SD / mean of g: uneven activity (quiet areas interrupted by edges), independent of amplitude
gradient_axis_bias (Ex − Ey) / (Ex + Ey), −1 to 1: horizontal vs vertical preference. Zero does not mean isotropic (diagonals balance too)
gradient_nonzero_flag 1 if there is any gradient energy at all

Change of slope (four-neighbour Laplacian L)

key meaning
laplacian_mean, laplacian_energy, laplacian_abs_mean E_I[L], E_I[L²], E_I[|L|]. Sharp or high-frequency structure responds; a linear ramp does not

Normalised by contrast (comparable across amplitudes)

key meaning
gradient_energy_over_variance (Ex + Ey) / variance
laplacian_energy_over_variance E_I[L²] / variance
variance_normalization_valid_flag, gradient_cv_valid_flag whether the denominators above are meaningful (> 10⁻¹²). Filter on these before trusting a ratio

Three spatial scales (mean squared difference at a distance, over the central [-0.74, 0.74]²: 2, 8 and 32 pixels at this resolution)

key meaning
scale_diff2_near, _mid, _far raw difference energy at each distance
scale_diff2_near_over_variance, _mid_…, _far_… the same, normalised. Low near and rising far suggests smooth structure; a dip at a longer distance can hint at repetition

Each record's json also holds value_histogram (the 32 bin probabilities) and scale_curve (the three scales with their distances).

Reading them, and their limits

  • Clipping. #A kept its default signed domain, so values outside [−1, 1] were clipped before measuring. The diagnostics describe the clipped texture.
  • Combinations say more than any one key. A large range with modest SD and a high gradient peak suggests a few strong excursions. A broad histogram with low normalised detail suggests smooth variation. Similar roughness with a different CV means the activity is concentrated differently.
  • Entropy is about values, not space. A smooth ramp can have high entropy, and shuffling the pixels would not change it.
  • Raw spatial measures depend on resolution and amplitude. Prefer the normalised keys for detail independent of contrast, after checking the validity flags.
  • Not measured: full orientation, spectra or periodicity, lacunarity, tileability, colour, novelty, aesthetic merit.
  • Validation. The suite compiled and ran on every expression. Systematic numerical controls (constants, ramps, stripes, checkerboards, random pixels) and a comparison against longer settling times were not done before this run. Treat the values as exploratory.

Provenance

  • Apparatus: noiseBatch/one.uto, project SHA-256 b6fc8f27…be04d0
  • Expression corpus: SHA-256 7d3ec029…d72266
  • Run files (canonical), in ~/lab/data/grad-noise-175k/: the enumeration (grad-noise-175k.jsonl), the measurements (grad-noise-175k-output.jsonl, joined on inputs.expr), the formula (grad-noise-175k.manifest.json) and the frames (png/)
175,797 records
coordinate ▲ t x u b expression batch index ordinal topo measured step globalStep value_mean value_positive_fraction value_abs_mean value_variance value_stddev value_min value_max value_range histogram_probability_sum histogram_entropy_bits gradient_energy_x gradient_energy_y gradient_magnitude_mean gradient_axis_bias gradient_nonzero_flag laplacian_mean laplacian_energy laplacian_abs_mean gradient_magnitude_variance gradient_magnitude_stddev gradient_magnitude_cv gradient_magnitude_max gradient_energy_over_variance laplacian_energy_over_variance variance_normalization_valid_flag gradient_cv_valid_flag scale_diff2_near scale_diff2_mid scale_diff2_far scale_diff2_near_over_variance scale_diff2_mid_over_variance scale_diff2_far_over_variance
t16_x22_u6_b12 16 22 6 12 sub(R,nrm(sub(D,D))) 94000 130819656 o2(x,o1(o2(x,x))) true 68807 68807 0.008979 0.4983 0.3946 0.2196 0.4686 -0.9989 0.9806 1.979 1 4.862 0.002813 0.00317 0.0632 -0.05957 1 0.00002651 0.0003508 0.01449 0.001989 0.0446 0.7057 0.2301 0.02725 0.001598 1 1 0.01182 0.1519 0.3914 0.05384 0.6917 1.782 json
t16_x22_u6_b13 16 22 6 13 sub(R,nrm(mlt(D,D))) 94001 130819657 o2(x,o1(o2(x,x))) true 68815 68815 -0.5035 0.1585 0.6079 0.2254 0.4748 -1 0.9515 1.951 1 4.154 0.01849 0.0129 0.1253 0.1782 1 0.0006896 0.03152 0.08975 0.01569 0.1253 0.9996 0.8514 0.1393 0.1398 1 1 0.05224 0.2796 0.2669 0.2317 1.24 1.184 json
t16_x22_u6_b14 16 22 6 14 sub(R,nrm(div(D,D))) 94002 130819658 o2(x,o1(o2(x,x))) true 68823 68823 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b15 16 22 6 15 sub(R,nrm(pow(D,D))) 94003 130819659 o2(x,o1(o2(x,x))) true 68831 68831 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b16 16 22 6 16 sub(R,nrm(mod(D,D))) 94004 130819660 o2(x,o1(o2(x,x))) true 68839 68839 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b17 16 22 6 17 sub(R,nrm(lrg(D,D))) 94005 130819661 o2(x,o1(o2(x,x))) true 68847 68847 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b18 16 22 6 18 sub(R,nrm(eql(D,D))) 94006 130819662 o2(x,o1(o2(x,x))) true 68855 68855 -0.5234 0.1404 0.5659 0.1636 0.4044 -1 0.4033 1.403 1 4.092 0.002439 0.002682 0.05319 -0.04741 1 0.00007528 0.0005832 0.01431 0.002292 0.04787 0.9001 0.2301 0.03131 0.003566 1 1 0.01014 0.1219 0.3013 0.062 0.7452 1.842 json
t16_x22_u6_b19 16 22 6 19 sub(R,nrm(min(D,D))) 94007 130819663 o2(x,o1(o2(x,x))) true 68863 68863 0.007748 0.5104 0.4665 0.322 0.5674 -1 1 2 1 4.85 0.03251 0.007554 0.1489 0.6229 1 0.00009279 0.03409 0.06849 0.01788 0.1337 0.8977 1.469 0.1244 0.1059 1 1 0.06781 0.4334 0.3234 0.2106 1.346 1.004 json
t16_x22_u6_b20 16 22 6 20 sub(R,nrm(dot(D,D))) 94008 130819664 o2(x,o1(o2(x,x))) true 68871 68871 -0.5234 0.1404 0.5659 0.1636 0.4044 -1 0.4033 1.403 1 4.092 0.002439 0.002682 0.05319 -0.04741 1 0.00007528 0.0005832 0.01431 0.002292 0.04787 0.9001 0.2301 0.03131 0.003566 1 1 0.01014 0.1219 0.3013 0.062 0.7452 1.842 json
t16_x22_u6_b21 16 22 6 21 sub(R,nrm(dst(D,D))) 94009 130819665 o2(x,o1(o2(x,x))) true 68879 68879 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b22 16 22 6 22 mlt(R,nrm(add(D,D))) 94010 130819666 o2(x,o1(o2(x,x))) true 68887 68887 0.003394 0.5075 0.2462 0.1032 0.3213 -0.9567 0.9893 1.946 1 4.38 0.01172 0.003771 0.08468 0.5132 1 -0.00007983 0.01446 0.0346 0.008322 0.09123 1.077 1.466 0.1501 0.14 1 1 0.02554 0.1857 0.1922 0.2474 1.799 1.862 json
t16_x22_u6_b23 16 22 6 23 mlt(R,nrm(sub(D,D))) 94011 130819667 o2(x,o1(o2(x,x))) true 68895 68895 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b24 16 22 6 24 mlt(R,nrm(mlt(D,D))) 94012 130819668 o2(x,o1(o2(x,x))) true 68903 68903 0.005361 0.4962 0.2399 0.1115 0.3339 -0.9902 0.9687 1.959 1 4.329 0.007074 0.006412 0.08276 0.04908 1 -0.0002146 0.01312 0.0534 0.006638 0.08147 0.9845 0.8399 0.121 0.1176 1 1 0.02215 0.1171 0.196 0.1987 1.05 1.758 json
t16_x22_u6_b25 16 22 6 25 mlt(R,nrm(div(D,D))) 94013 130819669 o2(x,o1(o2(x,x))) true 68911 68911 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b26 16 22 6 26 mlt(R,nrm(pow(D,D))) 94014 130819670 o2(x,o1(o2(x,x))) true 68919 68919 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b27 16 22 6 27 mlt(R,nrm(mod(D,D))) 94015 130819671 o2(x,o1(o2(x,x))) true 68927 68927 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b28 16 22 6 28 mlt(R,nrm(lrg(D,D))) 94016 130819672 o2(x,o1(o2(x,x))) true 68935 68935 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b29 16 22 6 29 mlt(R,nrm(eql(D,D))) 94017 130819673 o2(x,o1(o2(x,x))) true 68943 68943 0.005184 0.4982 0.2278 0.07319 0.2705 -0.5767 0.5662 1.143 1 4.073 0.0009378 0.001057 0.03649 -0.05957 1 0.00001531 0.0001169 0.008366 0.0006631 0.02575 0.7057 0.1328 0.02725 0.001598 1 1 0.003941 0.05063 0.1305 0.05384 0.6917 1.782 json
t16_x22_u6_b30 16 22 6 30 mlt(R,nrm(min(D,D))) 94018 130819674 o2(x,o1(o2(x,x))) true 68951 68951 0.003394 0.5075 0.2462 0.1032 0.3213 -0.9567 0.9893 1.946 1 4.38 0.01172 0.003771 0.08468 0.5132 1 -0.00007983 0.01446 0.0346 0.008322 0.09123 1.077 1.466 0.1501 0.14 1 1 0.02554 0.1857 0.1922 0.2474 1.799 1.862 json
t16_x22_u6_b31 16 22 6 31 mlt(R,nrm(dot(D,D))) 94019 130819675 o2(x,o1(o2(x,x))) true 68959 68959 0.005184 0.4982 0.2278 0.07319 0.2705 -0.5767 0.5662 1.143 1 4.073 0.0009378 0.001057 0.03649 -0.05957 1 0.00001531 0.0001169 0.008366 0.0006631 0.02575 0.7057 0.1328 0.02725 0.001598 1 1 0.003941 0.05063 0.1305 0.05384 0.6917 1.782 json
t16_x22_u6_b32 16 22 6 32 mlt(R,nrm(dst(D,D))) 94020 130819676 o2(x,o1(o2(x,x))) true 68967 68967 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b33 16 22 6 33 div(R,nrm(add(D,D))) 94021 130819677 o2(x,o1(o2(x,x))) true 68975 68975 0.006869 0.5066 0.5681 0.4388 0.6624 -1 1 2 1 4.675 0.2221 0.01301 0.2234 0.8894 1 -0.000004643 0.5204 0.2856 0.1852 0.4303 1.926 2.413 0.5357 1.186 1 1 0.2296 0.7122 0.7936 0.5233 1.623 1.809 json
t16_x22_u6_b34 16 22 6 34 div(R,nrm(sub(D,D))) 94022 130819678 o2(x,o1(o2(x,x))) true 68983 68983 -0.003204 0.4984 1 0.9999 1 -1 1 2 1 1 0.1153 0.1313 0.1164 -0.06462 1 0.0002834 0.6847 0.2465 0.2331 0.4828 4.148 2.828 0.2466 0.6848 1 1 0.248 0.9737 1.817 0.2481 0.9738 1.818 json
t16_x22_u6_b35 16 22 6 35 div(R,nrm(mlt(D,D))) 94023 130819679 o2(x,o1(o2(x,x))) true 68991 68991 0.02632 0.5165 0.6236 0.5084 0.713 -1 1 2 1 4.417 0.02638 0.01971 0.1306 0.1447 1 0.000281 0.0696 0.1199 0.02905 0.1704 1.305 2.22 0.09065 0.1369 1 1 0.07054 0.425 0.9023 0.1387 0.8358 1.775 json
t16_x22_u6_b36 16 22 6 36 div(R,nrm(div(D,D))) 94024 130819680 o2(x,o1(o2(x,x))) true 68999 68999 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b37 16 22 6 37 div(R,nrm(pow(D,D))) 94025 130819681 o2(x,o1(o2(x,x))) true 69007 69007 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b38 16 22 6 38 div(R,nrm(mod(D,D))) 94026 130819682 o2(x,o1(o2(x,x))) true 69015 69015 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b39 16 22 6 39 div(R,nrm(lrg(D,D))) 94027 130819683 o2(x,o1(o2(x,x))) true 69023 69023 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b40 16 22 6 40 div(R,nrm(eql(D,D))) 94028 130819684 o2(x,o1(o2(x,x))) true 69031 69031 0.01512 0.4984 0.6103 0.4829 0.6949 -1 1 2 1 4.629 0.007198 0.008055 0.08947 -0.05616 1 0.00001124 0.002061 0.02509 0.007249 0.08514 0.9516 0.3985 0.03159 0.004269 1 1 0.03004 0.3535 0.8682 0.06222 0.7321 1.798 json
t16_x22_u6_b41 16 22 6 41 div(R,nrm(min(D,D))) 94029 130819685 o2(x,o1(o2(x,x))) true 69039 69039 0.006869 0.5066 0.5681 0.4388 0.6624 -1 1 2 1 4.675 0.2221 0.01301 0.2234 0.8894 1 -0.000004643 0.5204 0.2856 0.1852 0.4303 1.926 2.413 0.5357 1.186 1 1 0.2296 0.7122 0.7936 0.5233 1.623 1.809 json
t16_x22_u6_b42 16 22 6 42 div(R,nrm(dot(D,D))) 94030 130819686 o2(x,o1(o2(x,x))) true 69047 69047 0.01512 0.4984 0.6103 0.4829 0.6949 -1 1 2 1 4.629 0.007198 0.008055 0.08947 -0.05616 1 0.00001124 0.002061 0.02509 0.007249 0.08514 0.9516 0.3985 0.03159 0.004269 1 1 0.03004 0.3535 0.8682 0.06222 0.7321 1.798 json
t16_x22_u6_b43 16 22 6 43 div(R,nrm(dst(D,D))) 94031 130819687 o2(x,o1(o2(x,x))) true 69055 69055 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b44 16 22 6 44 pow(R,nrm(add(D,D))) 94032 130819688 o2(x,o1(o2(x,x))) true 69063 69063 -0.9177 0.04297 0.9963 0.1518 0.3896 -1 1 2 1 0.335 0.01607 0.01463 0.01702 0.0471 1 -1.657e-7 0.06447 0.03259 0.03039 0.1743 10.24 2.828 0.2022 0.4246 1 1 0.02372 0.1035 0.2518 0.1562 0.6816 1.659 json
t16_x22_u6_b45 16 22 6 45 pow(R,nrm(sub(D,D))) 94033 130819689 o2(x,o1(o2(x,x))) true 69071 69071 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b46 16 22 6 46 pow(R,nrm(mlt(D,D))) 94034 130819690 o2(x,o1(o2(x,x))) true 69079 69079 -0.9262 0.04297 0.9879 0.1235 0.3514 -1 0.9993 1.999 1 0.4068 0.01618 0.01064 0.0173 0.2064 1 0.00003885 0.05658 0.03083 0.02651 0.1628 9.412 2.693 0.2172 0.4582 1 1 0.02027 0.08508 0.2069 0.1642 0.689 1.675 json
t16_x22_u6_b47 16 22 6 47 pow(R,nrm(div(D,D))) 94035 130819691 o2(x,o1(o2(x,x))) true 69087 69087 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b48 16 22 6 48 pow(R,nrm(pow(D,D))) 94036 130819692 o2(x,o1(o2(x,x))) true 69095 69095 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b49 16 22 6 49 pow(R,nrm(mod(D,D))) 94037 130819693 o2(x,o1(o2(x,x))) true 69103 69103 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b50 16 22 6 50 pow(R,nrm(lrg(D,D))) 94038 130819694 o2(x,o1(o2(x,x))) true 69111 69111 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b51 16 22 6 51 pow(R,nrm(eql(D,D))) 94039 130819695 o2(x,o1(o2(x,x))) true 69119 69119 -0.9271 0.04297 0.9869 0.1195 0.3456 -1 0.9666 1.967 1 0.3974 0.01209 0.01205 0.01496 0.001705 1 0.00000627 0.05044 0.02836 0.02393 0.1547 10.34 2.716 0.2021 0.4222 1 1 0.01909 0.08251 0.2019 0.1598 0.6907 1.69 json
t16_x22_u6_b52 16 22 6 52 pow(R,nrm(min(D,D))) 94040 130819696 o2(x,o1(o2(x,x))) true 69127 69127 -0.9177 0.04297 0.9963 0.1518 0.3896 -1 1 2 1 0.335 0.01607 0.01463 0.01702 0.0471 1 -1.657e-7 0.06447 0.03259 0.03039 0.1743 10.24 2.828 0.2022 0.4246 1 1 0.02372 0.1035 0.2518 0.1562 0.6816 1.659 json
t16_x22_u6_b53 16 22 6 53 pow(R,nrm(dot(D,D))) 94041 130819697 o2(x,o1(o2(x,x))) true 69135 69135 -0.9271 0.04297 0.9869 0.1195 0.3456 -1 0.9666 1.967 1 0.3974 0.01209 0.01205 0.01496 0.001705 1 0.00000627 0.05044 0.02836 0.02393 0.1547 10.34 2.716 0.2021 0.4222 1 1 0.01909 0.08251 0.2019 0.1598 0.6907 1.69 json
t16_x22_u6_b54 16 22 6 54 pow(R,nrm(dst(D,D))) 94042 130819698 o2(x,o1(o2(x,x))) true 69143 69143 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b55 16 22 6 55 mod(R,nrm(add(D,D))) 94043 130819699 o2(x,o1(o2(x,x))) true 69151 69151 0.0008065 0.4813 0.2328 0.09686 0.3112 -0.9754 0.9616 1.937 1 4.306 0.01915 0.02265 0.1215 -0.08394 1 -0.0000142 0.1552 0.2048 0.02705 0.1645 1.354 1.258 0.4316 1.602 1 1 0.03884 0.1097 0.1774 0.401 1.133 1.831 json
t16_x22_u6_b56 16 22 6 56 mod(R,nrm(sub(D,D))) 94044 130819700 o2(x,o1(o2(x,x))) true 69159 69159 0.008979 0.4983 0.3946 0.2196 0.4686 -0.9989 0.9806 1.979 1 4.862 0.002813 0.00317 0.0632 -0.05957 1 0.00002651 0.0003508 0.01449 0.001989 0.0446 0.7057 0.2301 0.02725 0.001598 1 1 0.01182 0.1519 0.3914 0.05384 0.6917 1.782 json
t16_x22_u6_b57 16 22 6 57 mod(R,nrm(mlt(D,D))) 94045 130819701 o2(x,o1(o2(x,x))) true 69167 69167 0.00284 0.4878 0.2254 0.103 0.3209 -0.9884 0.9747 1.963 1 4.24 0.01999 0.02192 0.1196 -0.04603 1 -0.0001083 0.1585 0.2056 0.02761 0.1662 1.389 1.316 0.4069 1.539 1 1 0.0395 0.1251 0.1848 0.3835 1.215 1.794 json
t16_x22_u6_b58 16 22 6 58 mod(R,nrm(div(D,D))) 94046 130819702 o2(x,o1(o2(x,x))) true 69175 69175 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b59 16 22 6 59 mod(R,nrm(pow(D,D))) 94047 130819703 o2(x,o1(o2(x,x))) true 69183 69183 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b60 16 22 6 60 mod(R,nrm(mod(D,D))) 94048 130819704 o2(x,o1(o2(x,x))) true 69191 69191 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b61 16 22 6 61 mod(R,nrm(lrg(D,D))) 94049 130819705 o2(x,o1(o2(x,x))) true 69199 69199 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b62 16 22 6 62 mod(R,nrm(eql(D,D))) 94050 130819706 o2(x,o1(o2(x,x))) true 69207 69207 -0.01019 0.4876 0.1978 0.05383 0.232 -0.5747 0.538 1.113 1 3.868 0.0007622 0.0007869 0.03213 -0.01593 1 -0.00001012 0.00009208 0.007382 0.000517 0.02274 0.7078 0.1274 0.02878 0.001711 1 1 0.003077 0.03969 0.09869 0.05717 0.7373 1.833 json
t16_x22_u6_b63 16 22 6 63 mod(R,nrm(min(D,D))) 94051 130819707 o2(x,o1(o2(x,x))) true 69215 69215 0.0008065 0.4813 0.2328 0.09686 0.3112 -0.9754 0.9616 1.937 1 4.306 0.01915 0.02265 0.1215 -0.08394 1 -0.0000142 0.1552 0.2048 0.02705 0.1645 1.354 1.258 0.4316 1.602 1 1 0.03884 0.1097 0.1774 0.401 1.133 1.831 json
t16_x22_u6_b64 16 22 6 64 mod(R,nrm(dot(D,D))) 94052 130819708 o2(x,o1(o2(x,x))) true 69223 69223 -0.01019 0.4876 0.1978 0.05383 0.232 -0.5747 0.538 1.113 1 3.868 0.0007622 0.0007869 0.03213 -0.01593 1 -0.00001012 0.00009208 0.007382 0.000517 0.02274 0.7078 0.1274 0.02878 0.001711 1 1 0.003077 0.03969 0.09869 0.05717 0.7373 1.833 json
t16_x22_u6_b65 16 22 6 65 mod(R,nrm(dst(D,D))) 94053 130819709 o2(x,o1(o2(x,x))) true 69231 69231 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b66 16 22 6 66 lrg(R,nrm(add(D,D))) 94054 130819710 o2(x,o1(o2(x,x))) true 69239 69239 0.5028 0.9671 0.5028 0.1234 0.3512 0 1 1 1 3.75 0.0415 0.02441 0.1336 0.2592 1 -0.00003765 0.2031 0.1737 0.04805 0.2192 1.64 1.413 0.5343 1.646 1 1 0.07087 0.215 0.1494 0.5745 1.743 1.211 json
t16_x22_u6_b67 16 22 6 67 lrg(R,nrm(sub(D,D))) 94055 130819711 o2(x,o1(o2(x,x))) true 69247 69247 0.4824 0.9147 0.4824 0.1537 0.3921 0 1 1 1 3.429 0.001972 0.002442 0.05168 -0.1065 1 -0.00001781 0.0002592 0.01257 0.001744 0.04176 0.8079 0.1169 0.02872 0.001686 1 1 0.008731 0.1124 0.2862 0.0568 0.7316 1.862 json
t16_x22_u6_b68 16 22 6 68 lrg(R,nrm(mlt(D,D))) 94056 130819712 o2(x,o1(o2(x,x))) true 69255 69255 0.2051 0.6133 0.2051 0.1081 0.3289 0 0.9999 0.9999 1 2.375 0.03374 0.02945 0.09697 0.06781 1 0.0002825 0.2159 0.1647 0.0538 0.232 2.392 1.409 0.5843 1.997 1 1 0.06353 0.169 0.1522 0.5874 1.563 1.408 json
t16_x22_u6_b69 16 22 6 69 lrg(R,nrm(div(D,D))) 94057 130819713 o2(x,o1(o2(x,x))) true 69263 69263 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b70 16 22 6 70 lrg(R,nrm(pow(D,D))) 94058 130819714 o2(x,o1(o2(x,x))) true 69271 69271 0.8112 1 0.8112 0.0803 0.2834 0.000582 1 0.9994 1 2.595 0.02014 0.01922 0.085 0.02319 1 0.00002174 0.08091 0.1014 0.03213 0.1793 2.109 0.9994 0.4902 1.008 1 1 0.04232 0.153 0.06168 0.5271 1.906 0.7681 json
t16_x22_u6_b71 16 22 6 71 lrg(R,nrm(mod(D,D))) 94059 130819715 o2(x,o1(o2(x,x))) true 69279 69279 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b72 16 22 6 72 lrg(R,nrm(lrg(D,D))) 94060 130819716 o2(x,o1(o2(x,x))) true 69287 69287 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b73 16 22 6 73 lrg(R,nrm(eql(D,D))) 94061 130819717 o2(x,o1(o2(x,x))) true 69295 69295 0.2402 0.6631 0.2402 0.1098 0.3314 0 1 1 1 2.734 0.001644 0.001689 0.03923 -0.01356 1 0.0000385 0.0001965 0.00953 0.001794 0.04236 1.08 0.1169 0.03034 0.001789 1 1 0.006803 0.0878 0.2401 0.06194 0.7993 2.186 json
t16_x22_u6_b74 16 22 6 74 lrg(R,nrm(min(D,D))) 94062 130819718 o2(x,o1(o2(x,x))) true 69303 69303 0.5028 0.9671 0.5028 0.1234 0.3512 0 1 1 1 3.75 0.0415 0.02441 0.1336 0.2592 1 -0.00003765 0.2031 0.1737 0.04805 0.2192 1.64 1.413 0.5343 1.646 1 1 0.07087 0.215 0.1494 0.5745 1.743 1.211 json
t16_x22_u6_b75 16 22 6 75 lrg(R,nrm(dot(D,D))) 94063 130819719 o2(x,o1(o2(x,x))) true 69311 69311 0.2402 0.6631 0.2402 0.1098 0.3314 0 1 1 1 2.734 0.001644 0.001689 0.03923 -0.01356 1 0.0000385 0.0001965 0.00953 0.001794 0.04236 1.08 0.1169 0.03034 0.001789 1 1 0.006803 0.0878 0.2401 0.06194 0.7993 2.186 json
t16_x22_u6_b76 16 22 6 76 lrg(R,nrm(dst(D,D))) 94064 130819720 o2(x,o1(o2(x,x))) true 69319 69319 1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b77 16 22 6 77 eql(R,nrm(add(D,D))) 94065 130819721 o2(x,o1(o2(x,x))) true 69327 69327 0.0001227 0.0004578 0.0001227 0.00007621 0.00873 0 0.9926 0.9926 1 0.00431 0.0001573 0.0001561 0.000426 0.00389 1 1.877e-12 0.001564 0.0009951 0.0003132 0.0177 41.54 1.404 4.113 20.52 1 1 0.0002312 0.0002312 0.0002071 3.034 3.034 2.717 json
t16_x22_u6_b78 16 22 6 78 eql(R,nrm(sub(D,D))) 94066 130819722 o2(x,o1(o2(x,x))) true 69335 69335 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b79 16 22 6 79 eql(R,nrm(mlt(D,D))) 94067 130819723 o2(x,o1(o2(x,x))) true 69343 69343 0.000008912 0.0001831 0.000008912 0.000001282 0.001132 0 0.145 0.145 1 0.0009425 0.000002647 0.000002647 0.0000314 0 0 -4.675e-13 0.00002647 0.00007357 0.000005293 0.002301 73.27 0.205 4.128 20.64 1 1 0.000004657 0.000004657 0.000004657 3.631 3.631 3.631 json
t16_x22_u6_b80 16 22 6 80 eql(R,nrm(div(D,D))) 94068 130819724 o2(x,o1(o2(x,x))) true 69351 69351 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b81 16 22 6 81 eql(R,nrm(pow(D,D))) 94069 130819725 o2(x,o1(o2(x,x))) true 69359 69359 0.00001489 0.00007629 0.00001489 0.000009616 0.003101 0 0.7742 0.7742 1 0.0005323 0.00001985 0.00001985 0.00005247 0 0 0 0.0001985 0.0001229 0.00003969 0.0063 120.1 1.095 4.128 20.64 1 1 0.000001705 0.000001705 0.000001705 0.1773 0.1773 0.1773 json
t16_x22_u6_b82 16 22 6 82 eql(R,nrm(mod(D,D))) 94070 130819726 o2(x,o1(o2(x,x))) true 69367 69367 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b83 16 22 6 83 eql(R,nrm(lrg(D,D))) 94071 130819727 o2(x,o1(o2(x,x))) true 69375 69375 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b84 16 22 6 84 eql(R,nrm(eql(D,D))) 94072 130819728 o2(x,o1(o2(x,x))) true 69383 69383 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b85 16 22 6 85 eql(R,nrm(min(D,D))) 94073 130819729 o2(x,o1(o2(x,x))) true 69391 69391 0.0001227 0.0004578 0.0001227 0.00007621 0.00873 0 0.9926 0.9926 1 0.00431 0.0001573 0.0001561 0.000426 0.00389 1 1.877e-12 0.001564 0.0009951 0.0003132 0.0177 41.54 1.404 4.113 20.52 1 1 0.0002312 0.0002312 0.0002071 3.034 3.034 2.717 json
t16_x22_u6_b86 16 22 6 86 eql(R,nrm(dot(D,D))) 94074 130819730 o2(x,o1(o2(x,x))) true 69399 69399 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b87 16 22 6 87 eql(R,nrm(dst(D,D))) 94075 130819731 o2(x,o1(o2(x,x))) true 69407 69407 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b88 16 22 6 88 min(R,nrm(add(D,D))) 94076 130819732 o2(x,o1(o2(x,x))) true 69415 69415 -0.3713 0.1747 0.4648 0.1451 0.381 -0.999 0.9346 1.934 1 4.518 0.0162 0.004727 0.1001 0.5482 1 -0.00002259 0.02011 0.04711 0.0109 0.1044 1.043 1.467 0.1442 0.1386 1 1 0.03443 0.2117 0.1625 0.2372 1.459 1.12 json
t16_x22_u6_b89 16 22 6 89 min(R,nrm(sub(D,D))) 94077 130819733 o2(x,o1(o2(x,x))) true 69423 69423 -0.2541 0 0.2541 0.06549 0.2559 -0.9989 0 0.9989 1 3.542 0.000768 0.0009295 0.0314 -0.09514 1 0.00001332 0.00009988 0.007359 0.0007117 0.02668 0.8497 0.1168 0.02592 0.001525 1 1 0.003123 0.04017 0.1061 0.04769 0.6134 1.62 json
t16_x22_u6_b90 16 22 6 90 min(R,nrm(mlt(D,D))) 94078 130819734 o2(x,o1(o2(x,x))) true 69431 69431 -0.07353 0.4401 0.3424 0.1737 0.4167 -0.9989 0.9744 1.973 1 4.729 0.00647 0.0055 0.07687 0.08109 1 -0.0003223 0.01232 0.04204 0.006062 0.07786 1.013 0.845 0.06893 0.07095 1 1 0.02002 0.1429 0.2879 0.1153 0.8229 1.658 json
t16_x22_u6_b91 16 22 6 91 min(R,nrm(div(D,D))) 94079 130819735 o2(x,o1(o2(x,x))) true 69439 69439 0.008979 0.4983 0.3946 0.2196 0.4686 -0.9989 0.9806 1.979 1 4.862 0.002813 0.00317 0.0632 -0.05957 1 0.00002651 0.0003508 0.01449 0.001989 0.0446 0.7057 0.2301 0.02725 0.001598 1 1 0.01182 0.1519 0.3914 0.05384 0.6917 1.782 json
t16_x22_u6_b92 16 22 6 92 min(R,nrm(pow(D,D))) 94080 130819736 o2(x,o1(o2(x,x))) true 69447 69447 -0.008003 0.492 0.3811 0.2054 0.4532 -0.9989 0.9805 1.979 1 4.827 0.002952 0.003578 0.06415 -0.0959 1 0.00003971 0.002321 0.02075 0.002415 0.04914 0.7661 0.48 0.0318 0.0113 1 1 0.01194 0.1438 0.3623 0.05813 0.7004 1.764 json
t16_x22_u6_b93 16 22 6 93 min(R,nrm(mod(D,D))) 94081 130819737 o2(x,o1(o2(x,x))) true 69455 69455 0.008979 0.4983 0.3946 0.2196 0.4686 -0.9989 0.9806 1.979 1 4.862 0.002813 0.00317 0.0632 -0.05957 1 0.00002651 0.0003508 0.01449 0.001989 0.0446 0.7057 0.2301 0.02725 0.001598 1 1 0.01182 0.1519 0.3914 0.05384 0.6917 1.782 json
t16_x22_u6_b94 16 22 6 94 min(R,nrm(lrg(D,D))) 94082 130819738 o2(x,o1(o2(x,x))) true 69463 69463 0.008979 0.4983 0.3946 0.2196 0.4686 -0.9989 0.9806 1.979 1 4.862 0.002813 0.00317 0.0632 -0.05957 1 0.00002651 0.0003508 0.01449 0.001989 0.0446 0.7057 0.2301 0.02725 0.001598 1 1 0.01182 0.1519 0.3914 0.05384 0.6917 1.782 json
t16_x22_u6_b95 16 22 6 95 min(R,nrm(eql(D,D))) 94083 130819739 o2(x,o1(o2(x,x))) true 69471 69471 -0.04426 0.4784 0.3527 0.1718 0.4145 -0.9989 0.5774 1.576 1 4.59 0.002134 0.002456 0.0551 -0.07007 1 0.00001702 0.0002693 0.01274 0.001554 0.03942 0.7155 0.1843 0.02671 0.001567 1 1 0.00908 0.1167 0.2993 0.05284 0.6794 1.742 json
t16_x22_u6_b96 16 22 6 96 min(R,nrm(min(D,D))) 94084 130819740 o2(x,o1(o2(x,x))) true 69479 69479 -0.3713 0.1747 0.4648 0.1451 0.381 -0.999 0.9346 1.934 1 4.518 0.0162 0.004727 0.1001 0.5482 1 -0.00002259 0.02011 0.04711 0.0109 0.1044 1.043 1.467 0.1442 0.1386 1 1 0.03443 0.2117 0.1625 0.2372 1.459 1.12 json
t16_x22_u6_b97 16 22 6 97 min(R,nrm(dot(D,D))) 94085 130819741 o2(x,o1(o2(x,x))) true 69487 69487 -0.04426 0.4784 0.3527 0.1718 0.4145 -0.9989 0.5774 1.576 1 4.59 0.002134 0.002456 0.0551 -0.07007 1 0.00001702 0.0002693 0.01274 0.001554 0.03942 0.7155 0.1843 0.02671 0.001567 1 1 0.00908 0.1167 0.2993 0.05284 0.6794 1.742 json
t16_x22_u6_b98 16 22 6 98 min(R,nrm(dst(D,D))) 94086 130819742 o2(x,o1(o2(x,x))) true 69495 69495 0.008979 0.4983 0.3946 0.2196 0.4686 -0.9989 0.9806 1.979 1 4.862 0.002813 0.00317 0.0632 -0.05957 1 0.00002651 0.0003508 0.01449 0.001989 0.0446 0.7057 0.2301 0.02725 0.001598 1 1 0.01182 0.1519 0.3914 0.05384 0.6917 1.782 json
t16_x22_u6_b99 16 22 6 99 dot(R,nrm(add(D,D))) 94087 130819743 o2(x,o1(o2(x,x))) true 69503 69503 0.009258 0.5152 0.372 0.2058 0.4537 -1 1 2 1 4.841 0.01487 0.01463 0.1226 0.007971 1 -0.0002438 0.02605 0.05058 0.01447 0.1203 0.9815 1.496 0.1433 0.1265 1 1 0.04968 0.3675 0.4038 0.2413 1.786 1.962 json
t16_x22_u6_b100 16 22 6 100 dot(R,nrm(sub(D,D))) 94088 130819744 o2(x,o1(o2(x,x))) true 69511 69511 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b101 16 22 6 101 dot(R,nrm(mlt(D,D))) 94089 130819745 o2(x,o1(o2(x,x))) true 69519 69519 0.02742 0.5119 0.3818 0.2106 0.4589 -1 1 2 1 4.854 0.01349 0.01377 0.1211 -0.01003 1 -0.00008963 0.02609 0.07553 0.01259 0.1122 0.9267 1.179 0.1294 0.1239 1 1 0.04424 0.2192 0.3873 0.2101 1.041 1.839 json
t16_x22_u6_b102 16 22 6 102 dot(R,nrm(div(D,D))) 94090 130819746 o2(x,o1(o2(x,x))) true 69527 69527 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b103 16 22 6 103 dot(R,nrm(pow(D,D))) 94091 130819747 o2(x,o1(o2(x,x))) true 69535 69535 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b104 16 22 6 104 dot(R,nrm(mod(D,D))) 94092 130819748 o2(x,o1(o2(x,x))) true 69543 69543 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b105 16 22 6 105 dot(R,nrm(lrg(D,D))) 94093 130819749 o2(x,o1(o2(x,x))) true 69551 69551 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b106 16 22 6 106 dot(R,nrm(eql(D,D))) 94094 130819750 o2(x,o1(o2(x,x))) true 69559 69559 0.008445 0.5136 0.3499 0.1935 0.4399 -1 1 2 1 4.768 0.002659 0.002832 0.05883 -0.03158 1 0.00001943 0.0003874 0.01356 0.00203 0.04506 0.7659 0.2628 0.02837 0.002001 1 1 0.01168 0.1478 0.3721 0.06033 0.7634 1.922 json
t16_x22_u6_b107 16 22 6 107 dot(R,nrm(min(D,D))) 94095 130819751 o2(x,o1(o2(x,x))) true 69567 69567 0.009258 0.5152 0.372 0.2058 0.4537 -1 1 2 1 4.841 0.01487 0.01463 0.1226 0.007971 1 -0.0002438 0.02605 0.05058 0.01447 0.1203 0.9815 1.496 0.1433 0.1265 1 1 0.04968 0.3675 0.4038 0.2413 1.786 1.962 json
t16_x22_u6_b108 16 22 6 108 dot(R,nrm(dot(D,D))) 94096 130819752 o2(x,o1(o2(x,x))) true 69575 69575 0.008445 0.5136 0.3499 0.1935 0.4399 -1 1 2 1 4.768 0.002659 0.002832 0.05883 -0.03158 1 0.00001942 0.0003874 0.01356 0.00203 0.04506 0.7659 0.2628 0.02837 0.002001 1 1 0.01168 0.1478 0.3721 0.06033 0.7634 1.922 json
t16_x22_u6_b109 16 22 6 109 dot(R,nrm(dst(D,D))) 94097 130819753 o2(x,o1(o2(x,x))) true 69583 69583 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json
t16_x22_u6_b110 16 22 6 110 dst(R,nrm(add(D,D))) 94098 130819754 o2(x,o1(o2(x,x))) true 69591 69591 0.9599 1 0.9599 0.01182 0.1087 0.06153 1 0.9385 1 1.088 0.002242 0.002181 0.02374 0.01375 1 0.000009974 0.008218 0.0224 0.003859 0.06212 2.617 1.283 0.3742 0.6955 1 1 0.00611 0.02263 0.02336 0.517 1.915 1.977 json
t16_x22_u6_b111 16 22 6 111 dst(R,nrm(sub(D,D))) 94099 130819755 o2(x,o1(o2(x,x))) true 69599 69599 -1 0 1 0 0 -1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 json