Health/Assets/OpenCVForUnity/Examples/MainModules/dnn/HandPoseEstimationMediaPipe.../MediaPipePalmDetector.cs

2380 lines
100 KiB
C#

#if !UNITY_WSA_10_0
using OpenCVForUnity.CoreModule;
using OpenCVForUnity.DnnModule;
using OpenCVForUnity.ImgprocModule;
using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using OpenCVRange = OpenCVForUnity.CoreModule.Range;
using OpenCVRect = OpenCVForUnity.CoreModule.Rect;
namespace OpenCVForUnityExample.DnnModel
{
/// <summary>
/// Referring to https://github.com/opencv/opencv_zoo/tree/main/models/palm_detection_mediapipe
/// </summary>
public class MediaPipePalmDetector
{
float nms_threshold;
float score_threshold;
int topK;
int backend;
int target;
Size input_size = new Size(192, 192);
Net palm_detection_net;
Mat anchors;
Mat input_sizeMat;
Mat maxSizeImg;
Mat boxesMat;
Mat boxes_m_c4;
Mat confidences_m;
MatOfRect2d boxes;
MatOfFloat confidences;
public MediaPipePalmDetector(string modelFilepath, float nmsThreshold = 0.3f, float scoreThreshold = 0.5f, int topK = 5000, int backend = Dnn.DNN_BACKEND_OPENCV, int target = Dnn.DNN_TARGET_CPU)
{
// initialize
if (!string.IsNullOrEmpty(modelFilepath))
{
palm_detection_net = Dnn.readNet(modelFilepath);
}
nms_threshold = Mathf.Clamp01(nmsThreshold);
score_threshold = Mathf.Clamp01(scoreThreshold);
this.topK = topK;
this.backend = backend;
this.target = target;
palm_detection_net.setPreferableBackend(this.backend);
palm_detection_net.setPreferableTarget(this.target);
anchors = load_anchors();
}
protected virtual Mat preprocess(Mat image)
{
// Add padding to make it square.
int max = Mathf.Max(image.cols(), image.rows());
if (maxSizeImg == null)
maxSizeImg = new Mat(max, max, image.type(), Scalar.all(0));
if (maxSizeImg.width() != max || maxSizeImg.height() != max)
{
maxSizeImg.create(max, max, image.type());
Imgproc.rectangle(maxSizeImg, new OpenCVRect(0, 0, maxSizeImg.width(), maxSizeImg.height()), Scalar.all(0), -1);
}
Mat _maxSizeImg_roi = new Mat(maxSizeImg, new OpenCVRect((max - image.cols()) / 2, (max - image.rows()) / 2, image.cols(), image.rows()));
image.copyTo(_maxSizeImg_roi);
// Create a 4D blob from a frame.
int c = image.channels();
int h = (int)input_size.height;
int w = (int)input_size.width;
// HWC to NHWC, BGR to RGB
Mat blob = new Mat(new int[] { 1, h, w, c }, CvType.CV_32FC1);
Mat blob_hxw = blob.reshape(c, new int[] { h, w });// [h, w]
if (input_sizeMat == null)
input_sizeMat = new Mat(new Size(w, h), CvType.CV_8UC3);// [h, w]
Imgproc.resize(maxSizeImg, input_sizeMat, new Size(w, h));
Imgproc.cvtColor(input_sizeMat, input_sizeMat, Imgproc.COLOR_BGR2RGB);
input_sizeMat.convertTo(blob_hxw, CvType.CV_32F, 1.0 / 255.0);
return blob;// [1, 192, 192, 3]
}
public virtual Mat infer(Mat image)
{
// cheack
if (image.channels() != 3)
{
Debug.Log("The input image must be in BGR format.");
return new Mat();
}
// Preprocess
Mat input_blob = preprocess(image);
// Forward
palm_detection_net.setInput(input_blob);
List<Mat> output_blob = new List<Mat>();
palm_detection_net.forward(output_blob, palm_detection_net.getUnconnectedOutLayersNames());
// Postprocess
Mat results = postprocess(output_blob);
// scale_boxes
float maxSize = Mathf.Max((float)image.size().width, (float)image.size().height);
float x_factor = maxSize;
float y_factor = maxSize;
float x_shift = (maxSize - (float)image.size().width) / 2f;
float y_shift = (maxSize - (float)image.size().height) / 2f;
for (int i = 0; i < results.rows(); ++i)
{
float[] results_arr = new float[4];
results.get(i, 0, results_arr);
float x1 = Mathf.Floor(results_arr[0] * x_factor - x_shift);
float y1 = Mathf.Floor(results_arr[1] * y_factor - y_shift);
float x2 = Mathf.Floor(results_arr[2] * x_factor - x_shift);
float y2 = Mathf.Floor(results_arr[3] * y_factor - y_shift);
results.put(i, 0, new float[] { x1, y1, x2, y2 });
float[] landmarks_arr = new float[14];
results.get(i, 4, landmarks_arr);
for (int j = 0; j < 14; ++j)
{
if (j % 2 == 0)
{
landmarks_arr[j] = Mathf.Floor(landmarks_arr[j] * x_factor - x_shift);
}
else
{
landmarks_arr[j] = Mathf.Floor(landmarks_arr[j] * y_factor - y_shift);
}
}
results.put(i, 4, landmarks_arr);
}
input_blob.Dispose();
for (int i = 0; i < output_blob.Count; i++)
{
output_blob[i].Dispose();
}
return results;
}
protected virtual Mat postprocess(List<Mat> output_blob)
{
int num = output_blob[0].size(1);
Mat output_blob_1_numx1 = output_blob[1].reshape(1, num);
Mat score = output_blob_1_numx1.colRange(new OpenCVRange(0, 1));
Mat output_blob_0_numx18 = output_blob[0].reshape(1, num);
Mat box_delta = output_blob_0_numx18.colRange(new OpenCVRange(0, 4));
Mat landmark_delta = output_blob_0_numx18.colRange(new OpenCVRange(4, 18));
// get scores
Core.multiply(score, Scalar.all(1.0), score, -1.0);
Core.exp(score, score);
Core.add(score, Scalar.all(1.0), score);
Core.divide(1.0, score, score);
// get boxes
Mat cxy_delta = box_delta.colRange(new OpenCVRange(0, 2));
Mat _cxy_delta_numx1_c2 = cxy_delta.reshape(2, cxy_delta.rows());
Core.divide(_cxy_delta_numx1_c2, new Scalar(input_size.width, input_size.height), _cxy_delta_numx1_c2);
Mat wh_delta = box_delta.colRange(new OpenCVRange(2, 4));
Mat _wh_delta_numx1_c2 = wh_delta.reshape(2, wh_delta.rows());
Core.divide(_wh_delta_numx1_c2, new Scalar(input_size.width, input_size.height), _wh_delta_numx1_c2);
if (boxesMat == null)
boxesMat = new Mat(num, 4, CvType.CV_32FC1);
Mat xy1 = boxesMat.colRange(new OpenCVRange(0, 2));
Mat xy2 = boxesMat.colRange(new OpenCVRange(2, 4));
Core.divide(wh_delta, new Scalar(2.0), wh_delta);
Core.subtract(cxy_delta, wh_delta, xy1);
Core.add(xy1, anchors, xy1);
Core.add(cxy_delta, wh_delta, xy2);
Core.add(xy2, anchors, xy2);
// NMS
if (boxes_m_c4 == null)
boxes_m_c4 = new Mat(num, 1, CvType.CV_64FC4);
if (confidences_m == null)
confidences_m = new Mat(num, 1, CvType.CV_32FC1);
if (boxes == null)
boxes = new MatOfRect2d(boxes_m_c4);
if (confidences == null)
confidences = new MatOfFloat(confidences_m);
Mat boxes_m_c1 = boxes_m_c4.reshape(1, num);
boxesMat.convertTo(boxes_m_c1, CvType.CV_64F);
score.copyTo(confidences_m);
MatOfInt indices = new MatOfInt();
Dnn.NMSBoxes(boxes, confidences, score_threshold, nms_threshold, indices, 1f, topK);
// get landmarks
Mat results = new Mat(indices.rows(), 19, CvType.CV_32FC1);
for (int i = 0; i < indices.total(); ++i)
{
int idx = (int)indices.get(i, 0)[0];
float[] bbox_arr = new float[4];
boxesMat.get(idx, 0, bbox_arr);
results.put(i, 0, bbox_arr);
float[] confidence_arr = new float[1];
confidences.get(idx, 0, confidence_arr);
results.put(i, 18, confidence_arr);
float[] landmarks_arr = new float[14];
landmark_delta.get(idx, 0, landmarks_arr);
float[] anchors_arr = new float[2];
anchors.get(idx, 0, anchors_arr);
for (int j = 0; j < 14; ++j)
{
if (j % 2 == 0)
{
landmarks_arr[j] /= (float)input_size.width;
landmarks_arr[j] += anchors_arr[0];
}
else
{
landmarks_arr[j] /= (float)input_size.height;
landmarks_arr[j] += anchors_arr[1];
}
}
results.put(i, 4, landmarks_arr);
}
indices.Dispose();
// [
// [bbox_coords, landmarks_coords, score]
// ...
// [bbox_coords, landmarks_coords, score]
// ]
return results;
}
public virtual void visualize(Mat image, Mat results, bool print_results = false, bool isRGB = false)
{
if (image.IsDisposed)
return;
if (results.empty() || results.cols() < 19)
return;
StringBuilder sb = null;
if (print_results)
sb = new StringBuilder();
for (int i = 0; i < results.rows(); ++i)
{
float[] score = new float[1];
results.get(i, 18, score);
float[] palm_box = new float[4];
results.get(i, 0, palm_box);
float[] palm_landmarks = new float[14];
results.get(i, 4, palm_landmarks);
// put score
Imgproc.putText(image, String.Format("{0:0.0000}", score[0]), new Point(palm_box[0], palm_box[1] + 12), Imgproc.FONT_HERSHEY_DUPLEX, 0.5, new Scalar(0, 255, 0, 255));
// draw box
Imgproc.rectangle(image, new Point(palm_box[0], palm_box[1]), new Point(palm_box[2], palm_box[3]), new Scalar(0, 255, 0, 255), 2);
// draw points
for (int j = 0; j < 14; j += 2)
{
Imgproc.circle(image, new Point(palm_landmarks[j], palm_landmarks[j + 1]), 2, (isRGB) ? new Scalar(255, 0, 0, 255) : new Scalar(0, 0, 255, 255), 2);
}
// Print results
if (print_results)
{
sb.AppendLine(String.Format("-----------palm {0}-----------", i + 1));
sb.AppendLine(String.Format("score: {0:0.00}", score[0]));
sb.AppendLine(String.Format("palm box: {0:0} {1:0} {2:0} {3:0}", palm_box[0], palm_box[1], palm_box[2], palm_box[3]));
sb.Append("palm landmarks: ");
foreach (var p in palm_landmarks)
{
sb.Append(String.Format("{0:0} ", p));
}
sb.AppendLine();
}
}
if (print_results)
Debug.Log(sb);
}
public virtual void dispose()
{
if (palm_detection_net != null)
palm_detection_net.Dispose();
if (input_sizeMat != null)
input_sizeMat.Dispose();
input_sizeMat = null;
if (maxSizeImg != null)
maxSizeImg.Dispose();
maxSizeImg = null;
if (boxesMat != null)
boxesMat.Dispose();
boxesMat = null;
if (boxes_m_c4 != null)
boxes_m_c4.Dispose();
if (confidences_m != null)
confidences_m.Dispose();
if (boxes != null)
boxes.Dispose();
if (confidences != null)
confidences.Dispose();
boxes_m_c4 = null;
confidences_m = null;
boxes = null;
confidences = null;
}
protected virtual Mat load_anchors()
{
Mat anchors = new Mat(2016, 2, CvType.CV_32FC1);
float[] anchors_arr = new float[] {
0.02083333f, 0.02083333f,
0.02083333f, 0.02083333f,
0.0625f, 0.02083333f,
0.0625f, 0.02083333f,
0.10416666f, 0.02083333f,
0.10416666f, 0.02083333f,
0.14583333f, 0.02083333f,
0.14583333f, 0.02083333f,
0.1875f, 0.02083333f,
0.1875f, 0.02083333f,
0.22916667f, 0.02083333f,
0.22916667f, 0.02083333f,
0.27083334f, 0.02083333f,
0.27083334f, 0.02083333f,
0.3125f, 0.02083333f,
0.3125f, 0.02083333f,
0.35416666f, 0.02083333f,
0.35416666f, 0.02083333f,
0.39583334f, 0.02083333f,
0.39583334f, 0.02083333f,
0.4375f, 0.02083333f,
0.4375f, 0.02083333f,
0.47916666f, 0.02083333f,
0.47916666f, 0.02083333f,
0.5208333f, 0.02083333f,
0.5208333f, 0.02083333f,
0.5625f, 0.02083333f,
0.5625f, 0.02083333f,
0.6041667f, 0.02083333f,
0.6041667f, 0.02083333f,
0.6458333f, 0.02083333f,
0.6458333f, 0.02083333f,
0.6875f, 0.02083333f,
0.6875f, 0.02083333f,
0.7291667f, 0.02083333f,
0.7291667f, 0.02083333f,
0.7708333f, 0.02083333f,
0.7708333f, 0.02083333f,
0.8125f, 0.02083333f,
0.8125f, 0.02083333f,
0.8541667f, 0.02083333f,
0.8541667f, 0.02083333f,
0.8958333f, 0.02083333f,
0.8958333f, 0.02083333f,
0.9375f, 0.02083333f,
0.9375f, 0.02083333f,
0.9791667f, 0.02083333f,
0.9791667f, 0.02083333f,
0.02083333f, 0.0625f,
0.02083333f, 0.0625f,
0.0625f, 0.0625f,
0.0625f, 0.0625f,
0.10416666f, 0.0625f,
0.10416666f, 0.0625f,
0.14583333f, 0.0625f,
0.14583333f, 0.0625f,
0.1875f, 0.0625f,
0.1875f, 0.0625f,
0.22916667f, 0.0625f,
0.22916667f, 0.0625f,
0.27083334f, 0.0625f,
0.27083334f, 0.0625f,
0.3125f, 0.0625f,
0.3125f, 0.0625f,
0.35416666f, 0.0625f,
0.35416666f, 0.0625f,
0.39583334f, 0.0625f,
0.39583334f, 0.0625f,
0.4375f, 0.0625f,
0.4375f, 0.0625f,
0.47916666f, 0.0625f,
0.47916666f, 0.0625f,
0.5208333f, 0.0625f,
0.5208333f, 0.0625f,
0.5625f, 0.0625f,
0.5625f, 0.0625f,
0.6041667f, 0.0625f,
0.6041667f, 0.0625f,
0.6458333f, 0.0625f,
0.6458333f, 0.0625f,
0.6875f, 0.0625f,
0.6875f, 0.0625f,
0.7291667f, 0.0625f,
0.7291667f, 0.0625f,
0.7708333f, 0.0625f,
0.7708333f, 0.0625f,
0.8125f, 0.0625f,
0.8125f, 0.0625f,
0.8541667f, 0.0625f,
0.8541667f, 0.0625f,
0.8958333f, 0.0625f,
0.8958333f, 0.0625f,
0.9375f, 0.0625f,
0.9375f, 0.0625f,
0.9791667f, 0.0625f,
0.9791667f, 0.0625f,
0.02083333f, 0.10416666f,
0.02083333f, 0.10416666f,
0.0625f, 0.10416666f,
0.0625f, 0.10416666f,
0.10416666f, 0.10416666f,
0.10416666f, 0.10416666f,
0.14583333f, 0.10416666f,
0.14583333f, 0.10416666f,
0.1875f, 0.10416666f,
0.1875f, 0.10416666f,
0.22916667f, 0.10416666f,
0.22916667f, 0.10416666f,
0.27083334f, 0.10416666f,
0.27083334f, 0.10416666f,
0.3125f, 0.10416666f,
0.3125f, 0.10416666f,
0.35416666f, 0.10416666f,
0.35416666f, 0.10416666f,
0.39583334f, 0.10416666f,
0.39583334f, 0.10416666f,
0.4375f, 0.10416666f,
0.4375f, 0.10416666f,
0.47916666f, 0.10416666f,
0.47916666f, 0.10416666f,
0.5208333f, 0.10416666f,
0.5208333f, 0.10416666f,
0.5625f, 0.10416666f,
0.5625f, 0.10416666f,
0.6041667f, 0.10416666f,
0.6041667f, 0.10416666f,
0.6458333f, 0.10416666f,
0.6458333f, 0.10416666f,
0.6875f, 0.10416666f,
0.6875f, 0.10416666f,
0.7291667f, 0.10416666f,
0.7291667f, 0.10416666f,
0.7708333f, 0.10416666f,
0.7708333f, 0.10416666f,
0.8125f, 0.10416666f,
0.8125f, 0.10416666f,
0.8541667f, 0.10416666f,
0.8541667f, 0.10416666f,
0.8958333f, 0.10416666f,
0.8958333f, 0.10416666f,
0.9375f, 0.10416666f,
0.9375f, 0.10416666f,
0.9791667f, 0.10416666f,
0.9791667f, 0.10416666f,
0.02083333f, 0.14583333f,
0.02083333f, 0.14583333f,
0.0625f, 0.14583333f,
0.0625f, 0.14583333f,
0.10416666f, 0.14583333f,
0.10416666f, 0.14583333f,
0.14583333f, 0.14583333f,
0.14583333f, 0.14583333f,
0.1875f, 0.14583333f,
0.1875f, 0.14583333f,
0.22916667f, 0.14583333f,
0.22916667f, 0.14583333f,
0.27083334f, 0.14583333f,
0.27083334f, 0.14583333f,
0.3125f, 0.14583333f,
0.3125f, 0.14583333f,
0.35416666f, 0.14583333f,
0.35416666f, 0.14583333f,
0.39583334f, 0.14583333f,
0.39583334f, 0.14583333f,
0.4375f, 0.14583333f,
0.4375f, 0.14583333f,
0.47916666f, 0.14583333f,
0.47916666f, 0.14583333f,
0.5208333f, 0.14583333f,
0.5208333f, 0.14583333f,
0.5625f, 0.14583333f,
0.5625f, 0.14583333f,
0.6041667f, 0.14583333f,
0.6041667f, 0.14583333f,
0.6458333f, 0.14583333f,
0.6458333f, 0.14583333f,
0.6875f, 0.14583333f,
0.6875f, 0.14583333f,
0.7291667f, 0.14583333f,
0.7291667f, 0.14583333f,
0.7708333f, 0.14583333f,
0.7708333f, 0.14583333f,
0.8125f, 0.14583333f,
0.8125f, 0.14583333f,
0.8541667f, 0.14583333f,
0.8541667f, 0.14583333f,
0.8958333f, 0.14583333f,
0.8958333f, 0.14583333f,
0.9375f, 0.14583333f,
0.9375f, 0.14583333f,
0.9791667f, 0.14583333f,
0.9791667f, 0.14583333f,
0.02083333f, 0.1875f,
0.02083333f, 0.1875f,
0.0625f, 0.1875f,
0.0625f, 0.1875f,
0.10416666f, 0.1875f,
0.10416666f, 0.1875f,
0.14583333f, 0.1875f,
0.14583333f, 0.1875f,
0.1875f, 0.1875f,
0.1875f, 0.1875f,
0.22916667f, 0.1875f,
0.22916667f, 0.1875f,
0.27083334f, 0.1875f,
0.27083334f, 0.1875f,
0.3125f, 0.1875f,
0.3125f, 0.1875f,
0.35416666f, 0.1875f,
0.35416666f, 0.1875f,
0.39583334f, 0.1875f,
0.39583334f, 0.1875f,
0.4375f, 0.1875f,
0.4375f, 0.1875f,
0.47916666f, 0.1875f,
0.47916666f, 0.1875f,
0.5208333f, 0.1875f,
0.5208333f, 0.1875f,
0.5625f, 0.1875f,
0.5625f, 0.1875f,
0.6041667f, 0.1875f,
0.6041667f, 0.1875f,
0.6458333f, 0.1875f,
0.6458333f, 0.1875f,
0.6875f, 0.1875f,
0.6875f, 0.1875f,
0.7291667f, 0.1875f,
0.7291667f, 0.1875f,
0.7708333f, 0.1875f,
0.7708333f, 0.1875f,
0.8125f, 0.1875f,
0.8125f, 0.1875f,
0.8541667f, 0.1875f,
0.8541667f, 0.1875f,
0.8958333f, 0.1875f,
0.8958333f, 0.1875f,
0.9375f, 0.1875f,
0.9375f, 0.1875f,
0.9791667f, 0.1875f,
0.9791667f, 0.1875f,
0.02083333f, 0.22916667f,
0.02083333f, 0.22916667f,
0.0625f, 0.22916667f,
0.0625f, 0.22916667f,
0.10416666f, 0.22916667f,
0.10416666f, 0.22916667f,
0.14583333f, 0.22916667f,
0.14583333f, 0.22916667f,
0.1875f, 0.22916667f,
0.1875f, 0.22916667f,
0.22916667f, 0.22916667f,
0.22916667f, 0.22916667f,
0.27083334f, 0.22916667f,
0.27083334f, 0.22916667f,
0.3125f, 0.22916667f,
0.3125f, 0.22916667f,
0.35416666f, 0.22916667f,
0.35416666f, 0.22916667f,
0.39583334f, 0.22916667f,
0.39583334f, 0.22916667f,
0.4375f, 0.22916667f,
0.4375f, 0.22916667f,
0.47916666f, 0.22916667f,
0.47916666f, 0.22916667f,
0.5208333f, 0.22916667f,
0.5208333f, 0.22916667f,
0.5625f, 0.22916667f,
0.5625f, 0.22916667f,
0.6041667f, 0.22916667f,
0.6041667f, 0.22916667f,
0.6458333f, 0.22916667f,
0.6458333f, 0.22916667f,
0.6875f, 0.22916667f,
0.6875f, 0.22916667f,
0.7291667f, 0.22916667f,
0.7291667f, 0.22916667f,
0.7708333f, 0.22916667f,
0.7708333f, 0.22916667f,
0.8125f, 0.22916667f,
0.8125f, 0.22916667f,
0.8541667f, 0.22916667f,
0.8541667f, 0.22916667f,
0.8958333f, 0.22916667f,
0.8958333f, 0.22916667f,
0.9375f, 0.22916667f,
0.9375f, 0.22916667f,
0.9791667f, 0.22916667f,
0.9791667f, 0.22916667f,
0.02083333f, 0.27083334f,
0.02083333f, 0.27083334f,
0.0625f, 0.27083334f,
0.0625f, 0.27083334f,
0.10416666f, 0.27083334f,
0.10416666f, 0.27083334f,
0.14583333f, 0.27083334f,
0.14583333f, 0.27083334f,
0.1875f, 0.27083334f,
0.1875f, 0.27083334f,
0.22916667f, 0.27083334f,
0.22916667f, 0.27083334f,
0.27083334f, 0.27083334f,
0.27083334f, 0.27083334f,
0.3125f, 0.27083334f,
0.3125f, 0.27083334f,
0.35416666f, 0.27083334f,
0.35416666f, 0.27083334f,
0.39583334f, 0.27083334f,
0.39583334f, 0.27083334f,
0.4375f, 0.27083334f,
0.4375f, 0.27083334f,
0.47916666f, 0.27083334f,
0.47916666f, 0.27083334f,
0.5208333f, 0.27083334f,
0.5208333f, 0.27083334f,
0.5625f, 0.27083334f,
0.5625f, 0.27083334f,
0.6041667f, 0.27083334f,
0.6041667f, 0.27083334f,
0.6458333f, 0.27083334f,
0.6458333f, 0.27083334f,
0.6875f, 0.27083334f,
0.6875f, 0.27083334f,
0.7291667f, 0.27083334f,
0.7291667f, 0.27083334f,
0.7708333f, 0.27083334f,
0.7708333f, 0.27083334f,
0.8125f, 0.27083334f,
0.8125f, 0.27083334f,
0.8541667f, 0.27083334f,
0.8541667f, 0.27083334f,
0.8958333f, 0.27083334f,
0.8958333f, 0.27083334f,
0.9375f, 0.27083334f,
0.9375f, 0.27083334f,
0.9791667f, 0.27083334f,
0.9791667f, 0.27083334f,
0.02083333f, 0.3125f,
0.02083333f, 0.3125f,
0.0625f, 0.3125f,
0.0625f, 0.3125f,
0.10416666f, 0.3125f,
0.10416666f, 0.3125f,
0.14583333f, 0.3125f,
0.14583333f, 0.3125f,
0.1875f, 0.3125f,
0.1875f, 0.3125f,
0.22916667f, 0.3125f,
0.22916667f, 0.3125f,
0.27083334f, 0.3125f,
0.27083334f, 0.3125f,
0.3125f, 0.3125f,
0.3125f, 0.3125f,
0.35416666f, 0.3125f,
0.35416666f, 0.3125f,
0.39583334f, 0.3125f,
0.39583334f, 0.3125f,
0.4375f, 0.3125f,
0.4375f, 0.3125f,
0.47916666f, 0.3125f,
0.47916666f, 0.3125f,
0.5208333f, 0.3125f,
0.5208333f, 0.3125f,
0.5625f, 0.3125f,
0.5625f, 0.3125f,
0.6041667f, 0.3125f,
0.6041667f, 0.3125f,
0.6458333f, 0.3125f,
0.6458333f, 0.3125f,
0.6875f, 0.3125f,
0.6875f, 0.3125f,
0.7291667f, 0.3125f,
0.7291667f, 0.3125f,
0.7708333f, 0.3125f,
0.7708333f, 0.3125f,
0.8125f, 0.3125f,
0.8125f, 0.3125f,
0.8541667f, 0.3125f,
0.8541667f, 0.3125f,
0.8958333f, 0.3125f,
0.8958333f, 0.3125f,
0.9375f, 0.3125f,
0.9375f, 0.3125f,
0.9791667f, 0.3125f,
0.9791667f, 0.3125f,
0.02083333f, 0.35416666f,
0.02083333f, 0.35416666f,
0.0625f, 0.35416666f,
0.0625f, 0.35416666f,
0.10416666f, 0.35416666f,
0.10416666f, 0.35416666f,
0.14583333f, 0.35416666f,
0.14583333f, 0.35416666f,
0.1875f, 0.35416666f,
0.1875f, 0.35416666f,
0.22916667f, 0.35416666f,
0.22916667f, 0.35416666f,
0.27083334f, 0.35416666f,
0.27083334f, 0.35416666f,
0.3125f, 0.35416666f,
0.3125f, 0.35416666f,
0.35416666f, 0.35416666f,
0.35416666f, 0.35416666f,
0.39583334f, 0.35416666f,
0.39583334f, 0.35416666f,
0.4375f, 0.35416666f,
0.4375f, 0.35416666f,
0.47916666f, 0.35416666f,
0.47916666f, 0.35416666f,
0.5208333f, 0.35416666f,
0.5208333f, 0.35416666f,
0.5625f, 0.35416666f,
0.5625f, 0.35416666f,
0.6041667f, 0.35416666f,
0.6041667f, 0.35416666f,
0.6458333f, 0.35416666f,
0.6458333f, 0.35416666f,
0.6875f, 0.35416666f,
0.6875f, 0.35416666f,
0.7291667f, 0.35416666f,
0.7291667f, 0.35416666f,
0.7708333f, 0.35416666f,
0.7708333f, 0.35416666f,
0.8125f, 0.35416666f,
0.8125f, 0.35416666f,
0.8541667f, 0.35416666f,
0.8541667f, 0.35416666f,
0.8958333f, 0.35416666f,
0.8958333f, 0.35416666f,
0.9375f, 0.35416666f,
0.9375f, 0.35416666f,
0.9791667f, 0.35416666f,
0.9791667f, 0.35416666f,
0.02083333f, 0.39583334f,
0.02083333f, 0.39583334f,
0.0625f, 0.39583334f,
0.0625f, 0.39583334f,
0.10416666f, 0.39583334f,
0.10416666f, 0.39583334f,
0.14583333f, 0.39583334f,
0.14583333f, 0.39583334f,
0.1875f, 0.39583334f,
0.1875f, 0.39583334f,
0.22916667f, 0.39583334f,
0.22916667f, 0.39583334f,
0.27083334f, 0.39583334f,
0.27083334f, 0.39583334f,
0.3125f, 0.39583334f,
0.3125f, 0.39583334f,
0.35416666f, 0.39583334f,
0.35416666f, 0.39583334f,
0.39583334f, 0.39583334f,
0.39583334f, 0.39583334f,
0.4375f, 0.39583334f,
0.4375f, 0.39583334f,
0.47916666f, 0.39583334f,
0.47916666f, 0.39583334f,
0.5208333f, 0.39583334f,
0.5208333f, 0.39583334f,
0.5625f, 0.39583334f,
0.5625f, 0.39583334f,
0.6041667f, 0.39583334f,
0.6041667f, 0.39583334f,
0.6458333f, 0.39583334f,
0.6458333f, 0.39583334f,
0.6875f, 0.39583334f,
0.6875f, 0.39583334f,
0.7291667f, 0.39583334f,
0.7291667f, 0.39583334f,
0.7708333f, 0.39583334f,
0.7708333f, 0.39583334f,
0.8125f, 0.39583334f,
0.8125f, 0.39583334f,
0.8541667f, 0.39583334f,
0.8541667f, 0.39583334f,
0.8958333f, 0.39583334f,
0.8958333f, 0.39583334f,
0.9375f, 0.39583334f,
0.9375f, 0.39583334f,
0.9791667f, 0.39583334f,
0.9791667f, 0.39583334f,
0.02083333f, 0.4375f,
0.02083333f, 0.4375f,
0.0625f, 0.4375f,
0.0625f, 0.4375f,
0.10416666f, 0.4375f,
0.10416666f, 0.4375f,
0.14583333f, 0.4375f,
0.14583333f, 0.4375f,
0.1875f, 0.4375f,
0.1875f, 0.4375f,
0.22916667f, 0.4375f,
0.22916667f, 0.4375f,
0.27083334f, 0.4375f,
0.27083334f, 0.4375f,
0.3125f, 0.4375f,
0.3125f, 0.4375f,
0.35416666f, 0.4375f,
0.35416666f, 0.4375f,
0.39583334f, 0.4375f,
0.39583334f, 0.4375f,
0.4375f, 0.4375f,
0.4375f, 0.4375f,
0.47916666f, 0.4375f,
0.47916666f, 0.4375f,
0.5208333f, 0.4375f,
0.5208333f, 0.4375f,
0.5625f, 0.4375f,
0.5625f, 0.4375f,
0.6041667f, 0.4375f,
0.6041667f, 0.4375f,
0.6458333f, 0.4375f,
0.6458333f, 0.4375f,
0.6875f, 0.4375f,
0.6875f, 0.4375f,
0.7291667f, 0.4375f,
0.7291667f, 0.4375f,
0.7708333f, 0.4375f,
0.7708333f, 0.4375f,
0.8125f, 0.4375f,
0.8125f, 0.4375f,
0.8541667f, 0.4375f,
0.8541667f, 0.4375f,
0.8958333f, 0.4375f,
0.8958333f, 0.4375f,
0.9375f, 0.4375f,
0.9375f, 0.4375f,
0.9791667f, 0.4375f,
0.9791667f, 0.4375f,
0.02083333f, 0.47916666f,
0.02083333f, 0.47916666f,
0.0625f, 0.47916666f,
0.0625f, 0.47916666f,
0.10416666f, 0.47916666f,
0.10416666f, 0.47916666f,
0.14583333f, 0.47916666f,
0.14583333f, 0.47916666f,
0.1875f, 0.47916666f,
0.1875f, 0.47916666f,
0.22916667f, 0.47916666f,
0.22916667f, 0.47916666f,
0.27083334f, 0.47916666f,
0.27083334f, 0.47916666f,
0.3125f, 0.47916666f,
0.3125f, 0.47916666f,
0.35416666f, 0.47916666f,
0.35416666f, 0.47916666f,
0.39583334f, 0.47916666f,
0.39583334f, 0.47916666f,
0.4375f, 0.47916666f,
0.4375f, 0.47916666f,
0.47916666f, 0.47916666f,
0.47916666f, 0.47916666f,
0.5208333f, 0.47916666f,
0.5208333f, 0.47916666f,
0.5625f, 0.47916666f,
0.5625f, 0.47916666f,
0.6041667f, 0.47916666f,
0.6041667f, 0.47916666f,
0.6458333f, 0.47916666f,
0.6458333f, 0.47916666f,
0.6875f, 0.47916666f,
0.6875f, 0.47916666f,
0.7291667f, 0.47916666f,
0.7291667f, 0.47916666f,
0.7708333f, 0.47916666f,
0.7708333f, 0.47916666f,
0.8125f, 0.47916666f,
0.8125f, 0.47916666f,
0.8541667f, 0.47916666f,
0.8541667f, 0.47916666f,
0.8958333f, 0.47916666f,
0.8958333f, 0.47916666f,
0.9375f, 0.47916666f,
0.9375f, 0.47916666f,
0.9791667f, 0.47916666f,
0.9791667f, 0.47916666f,
0.02083333f, 0.5208333f,
0.02083333f, 0.5208333f,
0.0625f, 0.5208333f,
0.0625f, 0.5208333f,
0.10416666f, 0.5208333f,
0.10416666f, 0.5208333f,
0.14583333f, 0.5208333f,
0.14583333f, 0.5208333f,
0.1875f, 0.5208333f,
0.1875f, 0.5208333f,
0.22916667f, 0.5208333f,
0.22916667f, 0.5208333f,
0.27083334f, 0.5208333f,
0.27083334f, 0.5208333f,
0.3125f, 0.5208333f,
0.3125f, 0.5208333f,
0.35416666f, 0.5208333f,
0.35416666f, 0.5208333f,
0.39583334f, 0.5208333f,
0.39583334f, 0.5208333f,
0.4375f, 0.5208333f,
0.4375f, 0.5208333f,
0.47916666f, 0.5208333f,
0.47916666f, 0.5208333f,
0.5208333f, 0.5208333f,
0.5208333f, 0.5208333f,
0.5625f, 0.5208333f,
0.5625f, 0.5208333f,
0.6041667f, 0.5208333f,
0.6041667f, 0.5208333f,
0.6458333f, 0.5208333f,
0.6458333f, 0.5208333f,
0.6875f, 0.5208333f,
0.6875f, 0.5208333f,
0.7291667f, 0.5208333f,
0.7291667f, 0.5208333f,
0.7708333f, 0.5208333f,
0.7708333f, 0.5208333f,
0.8125f, 0.5208333f,
0.8125f, 0.5208333f,
0.8541667f, 0.5208333f,
0.8541667f, 0.5208333f,
0.8958333f, 0.5208333f,
0.8958333f, 0.5208333f,
0.9375f, 0.5208333f,
0.9375f, 0.5208333f,
0.9791667f, 0.5208333f,
0.9791667f, 0.5208333f,
0.02083333f, 0.5625f,
0.02083333f, 0.5625f,
0.0625f, 0.5625f,
0.0625f, 0.5625f,
0.10416666f, 0.5625f,
0.10416666f, 0.5625f,
0.14583333f, 0.5625f,
0.14583333f, 0.5625f,
0.1875f, 0.5625f,
0.1875f, 0.5625f,
0.22916667f, 0.5625f,
0.22916667f, 0.5625f,
0.27083334f, 0.5625f,
0.27083334f, 0.5625f,
0.3125f, 0.5625f,
0.3125f, 0.5625f,
0.35416666f, 0.5625f,
0.35416666f, 0.5625f,
0.39583334f, 0.5625f,
0.39583334f, 0.5625f,
0.4375f, 0.5625f,
0.4375f, 0.5625f,
0.47916666f, 0.5625f,
0.47916666f, 0.5625f,
0.5208333f, 0.5625f,
0.5208333f, 0.5625f,
0.5625f, 0.5625f,
0.5625f, 0.5625f,
0.6041667f, 0.5625f,
0.6041667f, 0.5625f,
0.6458333f, 0.5625f,
0.6458333f, 0.5625f,
0.6875f, 0.5625f,
0.6875f, 0.5625f,
0.7291667f, 0.5625f,
0.7291667f, 0.5625f,
0.7708333f, 0.5625f,
0.7708333f, 0.5625f,
0.8125f, 0.5625f,
0.8125f, 0.5625f,
0.8541667f, 0.5625f,
0.8541667f, 0.5625f,
0.8958333f, 0.5625f,
0.8958333f, 0.5625f,
0.9375f, 0.5625f,
0.9375f, 0.5625f,
0.9791667f, 0.5625f,
0.9791667f, 0.5625f,
0.02083333f, 0.6041667f,
0.02083333f, 0.6041667f,
0.0625f, 0.6041667f,
0.0625f, 0.6041667f,
0.10416666f, 0.6041667f,
0.10416666f, 0.6041667f,
0.14583333f, 0.6041667f,
0.14583333f, 0.6041667f,
0.1875f, 0.6041667f,
0.1875f, 0.6041667f,
0.22916667f, 0.6041667f,
0.22916667f, 0.6041667f,
0.27083334f, 0.6041667f,
0.27083334f, 0.6041667f,
0.3125f, 0.6041667f,
0.3125f, 0.6041667f,
0.35416666f, 0.6041667f,
0.35416666f, 0.6041667f,
0.39583334f, 0.6041667f,
0.39583334f, 0.6041667f,
0.4375f, 0.6041667f,
0.4375f, 0.6041667f,
0.47916666f, 0.6041667f,
0.47916666f, 0.6041667f,
0.5208333f, 0.6041667f,
0.5208333f, 0.6041667f,
0.5625f, 0.6041667f,
0.5625f, 0.6041667f,
0.6041667f, 0.6041667f,
0.6041667f, 0.6041667f,
0.6458333f, 0.6041667f,
0.6458333f, 0.6041667f,
0.6875f, 0.6041667f,
0.6875f, 0.6041667f,
0.7291667f, 0.6041667f,
0.7291667f, 0.6041667f,
0.7708333f, 0.6041667f,
0.7708333f, 0.6041667f,
0.8125f, 0.6041667f,
0.8125f, 0.6041667f,
0.8541667f, 0.6041667f,
0.8541667f, 0.6041667f,
0.8958333f, 0.6041667f,
0.8958333f, 0.6041667f,
0.9375f, 0.6041667f,
0.9375f, 0.6041667f,
0.9791667f, 0.6041667f,
0.9791667f, 0.6041667f,
0.02083333f, 0.6458333f,
0.02083333f, 0.6458333f,
0.0625f, 0.6458333f,
0.0625f, 0.6458333f,
0.10416666f, 0.6458333f,
0.10416666f, 0.6458333f,
0.14583333f, 0.6458333f,
0.14583333f, 0.6458333f,
0.1875f, 0.6458333f,
0.1875f, 0.6458333f,
0.22916667f, 0.6458333f,
0.22916667f, 0.6458333f,
0.27083334f, 0.6458333f,
0.27083334f, 0.6458333f,
0.3125f, 0.6458333f,
0.3125f, 0.6458333f,
0.35416666f, 0.6458333f,
0.35416666f, 0.6458333f,
0.39583334f, 0.6458333f,
0.39583334f, 0.6458333f,
0.4375f, 0.6458333f,
0.4375f, 0.6458333f,
0.47916666f, 0.6458333f,
0.47916666f, 0.6458333f,
0.5208333f, 0.6458333f,
0.5208333f, 0.6458333f,
0.5625f, 0.6458333f,
0.5625f, 0.6458333f,
0.6041667f, 0.6458333f,
0.6041667f, 0.6458333f,
0.6458333f, 0.6458333f,
0.6458333f, 0.6458333f,
0.6875f, 0.6458333f,
0.6875f, 0.6458333f,
0.7291667f, 0.6458333f,
0.7291667f, 0.6458333f,
0.7708333f, 0.6458333f,
0.7708333f, 0.6458333f,
0.8125f, 0.6458333f,
0.8125f, 0.6458333f,
0.8541667f, 0.6458333f,
0.8541667f, 0.6458333f,
0.8958333f, 0.6458333f,
0.8958333f, 0.6458333f,
0.9375f, 0.6458333f,
0.9375f, 0.6458333f,
0.9791667f, 0.6458333f,
0.9791667f, 0.6458333f,
0.02083333f, 0.6875f,
0.02083333f, 0.6875f,
0.0625f, 0.6875f,
0.0625f, 0.6875f,
0.10416666f, 0.6875f,
0.10416666f, 0.6875f,
0.14583333f, 0.6875f,
0.14583333f, 0.6875f,
0.1875f, 0.6875f,
0.1875f, 0.6875f,
0.22916667f, 0.6875f,
0.22916667f, 0.6875f,
0.27083334f, 0.6875f,
0.27083334f, 0.6875f,
0.3125f, 0.6875f,
0.3125f, 0.6875f,
0.35416666f, 0.6875f,
0.35416666f, 0.6875f,
0.39583334f, 0.6875f,
0.39583334f, 0.6875f,
0.4375f, 0.6875f,
0.4375f, 0.6875f,
0.47916666f, 0.6875f,
0.47916666f, 0.6875f,
0.5208333f, 0.6875f,
0.5208333f, 0.6875f,
0.5625f, 0.6875f,
0.5625f, 0.6875f,
0.6041667f, 0.6875f,
0.6041667f, 0.6875f,
0.6458333f, 0.6875f,
0.6458333f, 0.6875f,
0.6875f, 0.6875f,
0.6875f, 0.6875f,
0.7291667f, 0.6875f,
0.7291667f, 0.6875f,
0.7708333f, 0.6875f,
0.7708333f, 0.6875f,
0.8125f, 0.6875f,
0.8125f, 0.6875f,
0.8541667f, 0.6875f,
0.8541667f, 0.6875f,
0.8958333f, 0.6875f,
0.8958333f, 0.6875f,
0.9375f, 0.6875f,
0.9375f, 0.6875f,
0.9791667f, 0.6875f,
0.9791667f, 0.6875f,
0.02083333f, 0.7291667f,
0.02083333f, 0.7291667f,
0.0625f, 0.7291667f,
0.0625f, 0.7291667f,
0.10416666f, 0.7291667f,
0.10416666f, 0.7291667f,
0.14583333f, 0.7291667f,
0.14583333f, 0.7291667f,
0.1875f, 0.7291667f,
0.1875f, 0.7291667f,
0.22916667f, 0.7291667f,
0.22916667f, 0.7291667f,
0.27083334f, 0.7291667f,
0.27083334f, 0.7291667f,
0.3125f, 0.7291667f,
0.3125f, 0.7291667f,
0.35416666f, 0.7291667f,
0.35416666f, 0.7291667f,
0.39583334f, 0.7291667f,
0.39583334f, 0.7291667f,
0.4375f, 0.7291667f,
0.4375f, 0.7291667f,
0.47916666f, 0.7291667f,
0.47916666f, 0.7291667f,
0.5208333f, 0.7291667f,
0.5208333f, 0.7291667f,
0.5625f, 0.7291667f,
0.5625f, 0.7291667f,
0.6041667f, 0.7291667f,
0.6041667f, 0.7291667f,
0.6458333f, 0.7291667f,
0.6458333f, 0.7291667f,
0.6875f, 0.7291667f,
0.6875f, 0.7291667f,
0.7291667f, 0.7291667f,
0.7291667f, 0.7291667f,
0.7708333f, 0.7291667f,
0.7708333f, 0.7291667f,
0.8125f, 0.7291667f,
0.8125f, 0.7291667f,
0.8541667f, 0.7291667f,
0.8541667f, 0.7291667f,
0.8958333f, 0.7291667f,
0.8958333f, 0.7291667f,
0.9375f, 0.7291667f,
0.9375f, 0.7291667f,
0.9791667f, 0.7291667f,
0.9791667f, 0.7291667f,
0.02083333f, 0.7708333f,
0.02083333f, 0.7708333f,
0.0625f, 0.7708333f,
0.0625f, 0.7708333f,
0.10416666f, 0.7708333f,
0.10416666f, 0.7708333f,
0.14583333f, 0.7708333f,
0.14583333f, 0.7708333f,
0.1875f, 0.7708333f,
0.1875f, 0.7708333f,
0.22916667f, 0.7708333f,
0.22916667f, 0.7708333f,
0.27083334f, 0.7708333f,
0.27083334f, 0.7708333f,
0.3125f, 0.7708333f,
0.3125f, 0.7708333f,
0.35416666f, 0.7708333f,
0.35416666f, 0.7708333f,
0.39583334f, 0.7708333f,
0.39583334f, 0.7708333f,
0.4375f, 0.7708333f,
0.4375f, 0.7708333f,
0.47916666f, 0.7708333f,
0.47916666f, 0.7708333f,
0.5208333f, 0.7708333f,
0.5208333f, 0.7708333f,
0.5625f, 0.7708333f,
0.5625f, 0.7708333f,
0.6041667f, 0.7708333f,
0.6041667f, 0.7708333f,
0.6458333f, 0.7708333f,
0.6458333f, 0.7708333f,
0.6875f, 0.7708333f,
0.6875f, 0.7708333f,
0.7291667f, 0.7708333f,
0.7291667f, 0.7708333f,
0.7708333f, 0.7708333f,
0.7708333f, 0.7708333f,
0.8125f, 0.7708333f,
0.8125f, 0.7708333f,
0.8541667f, 0.7708333f,
0.8541667f, 0.7708333f,
0.8958333f, 0.7708333f,
0.8958333f, 0.7708333f,
0.9375f, 0.7708333f,
0.9375f, 0.7708333f,
0.9791667f, 0.7708333f,
0.9791667f, 0.7708333f,
0.02083333f, 0.8125f,
0.02083333f, 0.8125f,
0.0625f, 0.8125f,
0.0625f, 0.8125f,
0.10416666f, 0.8125f,
0.10416666f, 0.8125f,
0.14583333f, 0.8125f,
0.14583333f, 0.8125f,
0.1875f, 0.8125f,
0.1875f, 0.8125f,
0.22916667f, 0.8125f,
0.22916667f, 0.8125f,
0.27083334f, 0.8125f,
0.27083334f, 0.8125f,
0.3125f, 0.8125f,
0.3125f, 0.8125f,
0.35416666f, 0.8125f,
0.35416666f, 0.8125f,
0.39583334f, 0.8125f,
0.39583334f, 0.8125f,
0.4375f, 0.8125f,
0.4375f, 0.8125f,
0.47916666f, 0.8125f,
0.47916666f, 0.8125f,
0.5208333f, 0.8125f,
0.5208333f, 0.8125f,
0.5625f, 0.8125f,
0.5625f, 0.8125f,
0.6041667f, 0.8125f,
0.6041667f, 0.8125f,
0.6458333f, 0.8125f,
0.6458333f, 0.8125f,
0.6875f, 0.8125f,
0.6875f, 0.8125f,
0.7291667f, 0.8125f,
0.7291667f, 0.8125f,
0.7708333f, 0.8125f,
0.7708333f, 0.8125f,
0.8125f, 0.8125f,
0.8125f, 0.8125f,
0.8541667f, 0.8125f,
0.8541667f, 0.8125f,
0.8958333f, 0.8125f,
0.8958333f, 0.8125f,
0.9375f, 0.8125f,
0.9375f, 0.8125f,
0.9791667f, 0.8125f,
0.9791667f, 0.8125f,
0.02083333f, 0.8541667f,
0.02083333f, 0.8541667f,
0.0625f, 0.8541667f,
0.0625f, 0.8541667f,
0.10416666f, 0.8541667f,
0.10416666f, 0.8541667f,
0.14583333f, 0.8541667f,
0.14583333f, 0.8541667f,
0.1875f, 0.8541667f,
0.1875f, 0.8541667f,
0.22916667f, 0.8541667f,
0.22916667f, 0.8541667f,
0.27083334f, 0.8541667f,
0.27083334f, 0.8541667f,
0.3125f, 0.8541667f,
0.3125f, 0.8541667f,
0.35416666f, 0.8541667f,
0.35416666f, 0.8541667f,
0.39583334f, 0.8541667f,
0.39583334f, 0.8541667f,
0.4375f, 0.8541667f,
0.4375f, 0.8541667f,
0.47916666f, 0.8541667f,
0.47916666f, 0.8541667f,
0.5208333f, 0.8541667f,
0.5208333f, 0.8541667f,
0.5625f, 0.8541667f,
0.5625f, 0.8541667f,
0.6041667f, 0.8541667f,
0.6041667f, 0.8541667f,
0.6458333f, 0.8541667f,
0.6458333f, 0.8541667f,
0.6875f, 0.8541667f,
0.6875f, 0.8541667f,
0.7291667f, 0.8541667f,
0.7291667f, 0.8541667f,
0.7708333f, 0.8541667f,
0.7708333f, 0.8541667f,
0.8125f, 0.8541667f,
0.8125f, 0.8541667f,
0.8541667f, 0.8541667f,
0.8541667f, 0.8541667f,
0.8958333f, 0.8541667f,
0.8958333f, 0.8541667f,
0.9375f, 0.8541667f,
0.9375f, 0.8541667f,
0.9791667f, 0.8541667f,
0.9791667f, 0.8541667f,
0.02083333f, 0.8958333f,
0.02083333f, 0.8958333f,
0.0625f, 0.8958333f,
0.0625f, 0.8958333f,
0.10416666f, 0.8958333f,
0.10416666f, 0.8958333f,
0.14583333f, 0.8958333f,
0.14583333f, 0.8958333f,
0.1875f, 0.8958333f,
0.1875f, 0.8958333f,
0.22916667f, 0.8958333f,
0.22916667f, 0.8958333f,
0.27083334f, 0.8958333f,
0.27083334f, 0.8958333f,
0.3125f, 0.8958333f,
0.3125f, 0.8958333f,
0.35416666f, 0.8958333f,
0.35416666f, 0.8958333f,
0.39583334f, 0.8958333f,
0.39583334f, 0.8958333f,
0.4375f, 0.8958333f,
0.4375f, 0.8958333f,
0.47916666f, 0.8958333f,
0.47916666f, 0.8958333f,
0.5208333f, 0.8958333f,
0.5208333f, 0.8958333f,
0.5625f, 0.8958333f,
0.5625f, 0.8958333f,
0.6041667f, 0.8958333f,
0.6041667f, 0.8958333f,
0.6458333f, 0.8958333f,
0.6458333f, 0.8958333f,
0.6875f, 0.8958333f,
0.6875f, 0.8958333f,
0.7291667f, 0.8958333f,
0.7291667f, 0.8958333f,
0.7708333f, 0.8958333f,
0.7708333f, 0.8958333f,
0.8125f, 0.8958333f,
0.8125f, 0.8958333f,
0.8541667f, 0.8958333f,
0.8541667f, 0.8958333f,
0.8958333f, 0.8958333f,
0.8958333f, 0.8958333f,
0.9375f, 0.8958333f,
0.9375f, 0.8958333f,
0.9791667f, 0.8958333f,
0.9791667f, 0.8958333f,
0.02083333f, 0.9375f,
0.02083333f, 0.9375f,
0.0625f, 0.9375f,
0.0625f, 0.9375f,
0.10416666f, 0.9375f,
0.10416666f, 0.9375f,
0.14583333f, 0.9375f,
0.14583333f, 0.9375f,
0.1875f, 0.9375f,
0.1875f, 0.9375f,
0.22916667f, 0.9375f,
0.22916667f, 0.9375f,
0.27083334f, 0.9375f,
0.27083334f, 0.9375f,
0.3125f, 0.9375f,
0.3125f, 0.9375f,
0.35416666f, 0.9375f,
0.35416666f, 0.9375f,
0.39583334f, 0.9375f,
0.39583334f, 0.9375f,
0.4375f, 0.9375f,
0.4375f, 0.9375f,
0.47916666f, 0.9375f,
0.47916666f, 0.9375f,
0.5208333f, 0.9375f,
0.5208333f, 0.9375f,
0.5625f, 0.9375f,
0.5625f, 0.9375f,
0.6041667f, 0.9375f,
0.6041667f, 0.9375f,
0.6458333f, 0.9375f,
0.6458333f, 0.9375f,
0.6875f, 0.9375f,
0.6875f, 0.9375f,
0.7291667f, 0.9375f,
0.7291667f, 0.9375f,
0.7708333f, 0.9375f,
0.7708333f, 0.9375f,
0.8125f, 0.9375f,
0.8125f, 0.9375f,
0.8541667f, 0.9375f,
0.8541667f, 0.9375f,
0.8958333f, 0.9375f,
0.8958333f, 0.9375f,
0.9375f, 0.9375f,
0.9375f, 0.9375f,
0.9791667f, 0.9375f,
0.9791667f, 0.9375f,
0.02083333f, 0.9791667f,
0.02083333f, 0.9791667f,
0.0625f, 0.9791667f,
0.0625f, 0.9791667f,
0.10416666f, 0.9791667f,
0.10416666f, 0.9791667f,
0.14583333f, 0.9791667f,
0.14583333f, 0.9791667f,
0.1875f, 0.9791667f,
0.1875f, 0.9791667f,
0.22916667f, 0.9791667f,
0.22916667f, 0.9791667f,
0.27083334f, 0.9791667f,
0.27083334f, 0.9791667f,
0.3125f, 0.9791667f,
0.3125f, 0.9791667f,
0.35416666f, 0.9791667f,
0.35416666f, 0.9791667f,
0.39583334f, 0.9791667f,
0.39583334f, 0.9791667f,
0.4375f, 0.9791667f,
0.4375f, 0.9791667f,
0.47916666f, 0.9791667f,
0.47916666f, 0.9791667f,
0.5208333f, 0.9791667f,
0.5208333f, 0.9791667f,
0.5625f, 0.9791667f,
0.5625f, 0.9791667f,
0.6041667f, 0.9791667f,
0.6041667f, 0.9791667f,
0.6458333f, 0.9791667f,
0.6458333f, 0.9791667f,
0.6875f, 0.9791667f,
0.6875f, 0.9791667f,
0.7291667f, 0.9791667f,
0.7291667f, 0.9791667f,
0.7708333f, 0.9791667f,
0.7708333f, 0.9791667f,
0.8125f, 0.9791667f,
0.8125f, 0.9791667f,
0.8541667f, 0.9791667f,
0.8541667f, 0.9791667f,
0.8958333f, 0.9791667f,
0.8958333f, 0.9791667f,
0.9375f, 0.9791667f,
0.9375f, 0.9791667f,
0.9791667f, 0.9791667f,
0.9791667f, 0.9791667f,
0.04166667f, 0.04166667f,
0.04166667f, 0.04166667f,
0.04166667f, 0.04166667f,
0.04166667f, 0.04166667f,
0.04166667f, 0.04166667f,
0.04166667f, 0.04166667f,
0.125f, 0.04166667f,
0.125f, 0.04166667f,
0.125f, 0.04166667f,
0.125f, 0.04166667f,
0.125f, 0.04166667f,
0.125f, 0.04166667f,
0.20833333f, 0.04166667f,
0.20833333f, 0.04166667f,
0.20833333f, 0.04166667f,
0.20833333f, 0.04166667f,
0.20833333f, 0.04166667f,
0.20833333f, 0.04166667f,
0.29166666f, 0.04166667f,
0.29166666f, 0.04166667f,
0.29166666f, 0.04166667f,
0.29166666f, 0.04166667f,
0.29166666f, 0.04166667f,
0.29166666f, 0.04166667f,
0.375f, 0.04166667f,
0.375f, 0.04166667f,
0.375f, 0.04166667f,
0.375f, 0.04166667f,
0.375f, 0.04166667f,
0.375f, 0.04166667f,
0.45833334f, 0.04166667f,
0.45833334f, 0.04166667f,
0.45833334f, 0.04166667f,
0.45833334f, 0.04166667f,
0.45833334f, 0.04166667f,
0.45833334f, 0.04166667f,
0.5416667f, 0.04166667f,
0.5416667f, 0.04166667f,
0.5416667f, 0.04166667f,
0.5416667f, 0.04166667f,
0.5416667f, 0.04166667f,
0.5416667f, 0.04166667f,
0.625f, 0.04166667f,
0.625f, 0.04166667f,
0.625f, 0.04166667f,
0.625f, 0.04166667f,
0.625f, 0.04166667f,
0.625f, 0.04166667f,
0.7083333f, 0.04166667f,
0.7083333f, 0.04166667f,
0.7083333f, 0.04166667f,
0.7083333f, 0.04166667f,
0.7083333f, 0.04166667f,
0.7083333f, 0.04166667f,
0.7916667f, 0.04166667f,
0.7916667f, 0.04166667f,
0.7916667f, 0.04166667f,
0.7916667f, 0.04166667f,
0.7916667f, 0.04166667f,
0.7916667f, 0.04166667f,
0.875f, 0.04166667f,
0.875f, 0.04166667f,
0.875f, 0.04166667f,
0.875f, 0.04166667f,
0.875f, 0.04166667f,
0.875f, 0.04166667f,
0.9583333f, 0.04166667f,
0.9583333f, 0.04166667f,
0.9583333f, 0.04166667f,
0.9583333f, 0.04166667f,
0.9583333f, 0.04166667f,
0.9583333f, 0.04166667f,
0.04166667f, 0.125f,
0.04166667f, 0.125f,
0.04166667f, 0.125f,
0.04166667f, 0.125f,
0.04166667f, 0.125f,
0.04166667f, 0.125f,
0.125f, 0.125f,
0.125f, 0.125f,
0.125f, 0.125f,
0.125f, 0.125f,
0.125f, 0.125f,
0.125f, 0.125f,
0.20833333f, 0.125f,
0.20833333f, 0.125f,
0.20833333f, 0.125f,
0.20833333f, 0.125f,
0.20833333f, 0.125f,
0.20833333f, 0.125f,
0.29166666f, 0.125f,
0.29166666f, 0.125f,
0.29166666f, 0.125f,
0.29166666f, 0.125f,
0.29166666f, 0.125f,
0.29166666f, 0.125f,
0.375f, 0.125f,
0.375f, 0.125f,
0.375f, 0.125f,
0.375f, 0.125f,
0.375f, 0.125f,
0.375f, 0.125f,
0.45833334f, 0.125f,
0.45833334f, 0.125f,
0.45833334f, 0.125f,
0.45833334f, 0.125f,
0.45833334f, 0.125f,
0.45833334f, 0.125f,
0.5416667f, 0.125f,
0.5416667f, 0.125f,
0.5416667f, 0.125f,
0.5416667f, 0.125f,
0.5416667f, 0.125f,
0.5416667f, 0.125f,
0.625f, 0.125f,
0.625f, 0.125f,
0.625f, 0.125f,
0.625f, 0.125f,
0.625f, 0.125f,
0.625f, 0.125f,
0.7083333f, 0.125f,
0.7083333f, 0.125f,
0.7083333f, 0.125f,
0.7083333f, 0.125f,
0.7083333f, 0.125f,
0.7083333f, 0.125f,
0.7916667f, 0.125f,
0.7916667f, 0.125f,
0.7916667f, 0.125f,
0.7916667f, 0.125f,
0.7916667f, 0.125f,
0.7916667f, 0.125f,
0.875f, 0.125f,
0.875f, 0.125f,
0.875f, 0.125f,
0.875f, 0.125f,
0.875f, 0.125f,
0.875f, 0.125f,
0.9583333f, 0.125f,
0.9583333f, 0.125f,
0.9583333f, 0.125f,
0.9583333f, 0.125f,
0.9583333f, 0.125f,
0.9583333f, 0.125f,
0.04166667f, 0.20833333f,
0.04166667f, 0.20833333f,
0.04166667f, 0.20833333f,
0.04166667f, 0.20833333f,
0.04166667f, 0.20833333f,
0.04166667f, 0.20833333f,
0.125f, 0.20833333f,
0.125f, 0.20833333f,
0.125f, 0.20833333f,
0.125f, 0.20833333f,
0.125f, 0.20833333f,
0.125f, 0.20833333f,
0.20833333f, 0.20833333f,
0.20833333f, 0.20833333f,
0.20833333f, 0.20833333f,
0.20833333f, 0.20833333f,
0.20833333f, 0.20833333f,
0.20833333f, 0.20833333f,
0.29166666f, 0.20833333f,
0.29166666f, 0.20833333f,
0.29166666f, 0.20833333f,
0.29166666f, 0.20833333f,
0.29166666f, 0.20833333f,
0.29166666f, 0.20833333f,
0.375f, 0.20833333f,
0.375f, 0.20833333f,
0.375f, 0.20833333f,
0.375f, 0.20833333f,
0.375f, 0.20833333f,
0.375f, 0.20833333f,
0.45833334f, 0.20833333f,
0.45833334f, 0.20833333f,
0.45833334f, 0.20833333f,
0.45833334f, 0.20833333f,
0.45833334f, 0.20833333f,
0.45833334f, 0.20833333f,
0.5416667f, 0.20833333f,
0.5416667f, 0.20833333f,
0.5416667f, 0.20833333f,
0.5416667f, 0.20833333f,
0.5416667f, 0.20833333f,
0.5416667f, 0.20833333f,
0.625f, 0.20833333f,
0.625f, 0.20833333f,
0.625f, 0.20833333f,
0.625f, 0.20833333f,
0.625f, 0.20833333f,
0.625f, 0.20833333f,
0.7083333f, 0.20833333f,
0.7083333f, 0.20833333f,
0.7083333f, 0.20833333f,
0.7083333f, 0.20833333f,
0.7083333f, 0.20833333f,
0.7083333f, 0.20833333f,
0.7916667f, 0.20833333f,
0.7916667f, 0.20833333f,
0.7916667f, 0.20833333f,
0.7916667f, 0.20833333f,
0.7916667f, 0.20833333f,
0.7916667f, 0.20833333f,
0.875f, 0.20833333f,
0.875f, 0.20833333f,
0.875f, 0.20833333f,
0.875f, 0.20833333f,
0.875f, 0.20833333f,
0.875f, 0.20833333f,
0.9583333f, 0.20833333f,
0.9583333f, 0.20833333f,
0.9583333f, 0.20833333f,
0.9583333f, 0.20833333f,
0.9583333f, 0.20833333f,
0.9583333f, 0.20833333f,
0.04166667f, 0.29166666f,
0.04166667f, 0.29166666f,
0.04166667f, 0.29166666f,
0.04166667f, 0.29166666f,
0.04166667f, 0.29166666f,
0.04166667f, 0.29166666f,
0.125f, 0.29166666f,
0.125f, 0.29166666f,
0.125f, 0.29166666f,
0.125f, 0.29166666f,
0.125f, 0.29166666f,
0.125f, 0.29166666f,
0.20833333f, 0.29166666f,
0.20833333f, 0.29166666f,
0.20833333f, 0.29166666f,
0.20833333f, 0.29166666f,
0.20833333f, 0.29166666f,
0.20833333f, 0.29166666f,
0.29166666f, 0.29166666f,
0.29166666f, 0.29166666f,
0.29166666f, 0.29166666f,
0.29166666f, 0.29166666f,
0.29166666f, 0.29166666f,
0.29166666f, 0.29166666f,
0.375f, 0.29166666f,
0.375f, 0.29166666f,
0.375f, 0.29166666f,
0.375f, 0.29166666f,
0.375f, 0.29166666f,
0.375f, 0.29166666f,
0.45833334f, 0.29166666f,
0.45833334f, 0.29166666f,
0.45833334f, 0.29166666f,
0.45833334f, 0.29166666f,
0.45833334f, 0.29166666f,
0.45833334f, 0.29166666f,
0.5416667f, 0.29166666f,
0.5416667f, 0.29166666f,
0.5416667f, 0.29166666f,
0.5416667f, 0.29166666f,
0.5416667f, 0.29166666f,
0.5416667f, 0.29166666f,
0.625f, 0.29166666f,
0.625f, 0.29166666f,
0.625f, 0.29166666f,
0.625f, 0.29166666f,
0.625f, 0.29166666f,
0.625f, 0.29166666f,
0.7083333f, 0.29166666f,
0.7083333f, 0.29166666f,
0.7083333f, 0.29166666f,
0.7083333f, 0.29166666f,
0.7083333f, 0.29166666f,
0.7083333f, 0.29166666f,
0.7916667f, 0.29166666f,
0.7916667f, 0.29166666f,
0.7916667f, 0.29166666f,
0.7916667f, 0.29166666f,
0.7916667f, 0.29166666f,
0.7916667f, 0.29166666f,
0.875f, 0.29166666f,
0.875f, 0.29166666f,
0.875f, 0.29166666f,
0.875f, 0.29166666f,
0.875f, 0.29166666f,
0.875f, 0.29166666f,
0.9583333f, 0.29166666f,
0.9583333f, 0.29166666f,
0.9583333f, 0.29166666f,
0.9583333f, 0.29166666f,
0.9583333f, 0.29166666f,
0.9583333f, 0.29166666f,
0.04166667f, 0.375f,
0.04166667f, 0.375f,
0.04166667f, 0.375f,
0.04166667f, 0.375f,
0.04166667f, 0.375f,
0.04166667f, 0.375f,
0.125f, 0.375f,
0.125f, 0.375f,
0.125f, 0.375f,
0.125f, 0.375f,
0.125f, 0.375f,
0.125f, 0.375f,
0.20833333f, 0.375f,
0.20833333f, 0.375f,
0.20833333f, 0.375f,
0.20833333f, 0.375f,
0.20833333f, 0.375f,
0.20833333f, 0.375f,
0.29166666f, 0.375f,
0.29166666f, 0.375f,
0.29166666f, 0.375f,
0.29166666f, 0.375f,
0.29166666f, 0.375f,
0.29166666f, 0.375f,
0.375f, 0.375f,
0.375f, 0.375f,
0.375f, 0.375f,
0.375f, 0.375f,
0.375f, 0.375f,
0.375f, 0.375f,
0.45833334f, 0.375f,
0.45833334f, 0.375f,
0.45833334f, 0.375f,
0.45833334f, 0.375f,
0.45833334f, 0.375f,
0.45833334f, 0.375f,
0.5416667f, 0.375f,
0.5416667f, 0.375f,
0.5416667f, 0.375f,
0.5416667f, 0.375f,
0.5416667f, 0.375f,
0.5416667f, 0.375f,
0.625f, 0.375f,
0.625f, 0.375f,
0.625f, 0.375f,
0.625f, 0.375f,
0.625f, 0.375f,
0.625f, 0.375f,
0.7083333f, 0.375f,
0.7083333f, 0.375f,
0.7083333f, 0.375f,
0.7083333f, 0.375f,
0.7083333f, 0.375f,
0.7083333f, 0.375f,
0.7916667f, 0.375f,
0.7916667f, 0.375f,
0.7916667f, 0.375f,
0.7916667f, 0.375f,
0.7916667f, 0.375f,
0.7916667f, 0.375f,
0.875f, 0.375f,
0.875f, 0.375f,
0.875f, 0.375f,
0.875f, 0.375f,
0.875f, 0.375f,
0.875f, 0.375f,
0.9583333f, 0.375f,
0.9583333f, 0.375f,
0.9583333f, 0.375f,
0.9583333f, 0.375f,
0.9583333f, 0.375f,
0.9583333f, 0.375f,
0.04166667f, 0.45833334f,
0.04166667f, 0.45833334f,
0.04166667f, 0.45833334f,
0.04166667f, 0.45833334f,
0.04166667f, 0.45833334f,
0.04166667f, 0.45833334f,
0.125f, 0.45833334f,
0.125f, 0.45833334f,
0.125f, 0.45833334f,
0.125f, 0.45833334f,
0.125f, 0.45833334f,
0.125f, 0.45833334f,
0.20833333f, 0.45833334f,
0.20833333f, 0.45833334f,
0.20833333f, 0.45833334f,
0.20833333f, 0.45833334f,
0.20833333f, 0.45833334f,
0.20833333f, 0.45833334f,
0.29166666f, 0.45833334f,
0.29166666f, 0.45833334f,
0.29166666f, 0.45833334f,
0.29166666f, 0.45833334f,
0.29166666f, 0.45833334f,
0.29166666f, 0.45833334f,
0.375f, 0.45833334f,
0.375f, 0.45833334f,
0.375f, 0.45833334f,
0.375f, 0.45833334f,
0.375f, 0.45833334f,
0.375f, 0.45833334f,
0.45833334f, 0.45833334f,
0.45833334f, 0.45833334f,
0.45833334f, 0.45833334f,
0.45833334f, 0.45833334f,
0.45833334f, 0.45833334f,
0.45833334f, 0.45833334f,
0.5416667f, 0.45833334f,
0.5416667f, 0.45833334f,
0.5416667f, 0.45833334f,
0.5416667f, 0.45833334f,
0.5416667f, 0.45833334f,
0.5416667f, 0.45833334f,
0.625f, 0.45833334f,
0.625f, 0.45833334f,
0.625f, 0.45833334f,
0.625f, 0.45833334f,
0.625f, 0.45833334f,
0.625f, 0.45833334f,
0.7083333f, 0.45833334f,
0.7083333f, 0.45833334f,
0.7083333f, 0.45833334f,
0.7083333f, 0.45833334f,
0.7083333f, 0.45833334f,
0.7083333f, 0.45833334f,
0.7916667f, 0.45833334f,
0.7916667f, 0.45833334f,
0.7916667f, 0.45833334f,
0.7916667f, 0.45833334f,
0.7916667f, 0.45833334f,
0.7916667f, 0.45833334f,
0.875f, 0.45833334f,
0.875f, 0.45833334f,
0.875f, 0.45833334f,
0.875f, 0.45833334f,
0.875f, 0.45833334f,
0.875f, 0.45833334f,
0.9583333f, 0.45833334f,
0.9583333f, 0.45833334f,
0.9583333f, 0.45833334f,
0.9583333f, 0.45833334f,
0.9583333f, 0.45833334f,
0.9583333f, 0.45833334f,
0.04166667f, 0.5416667f,
0.04166667f, 0.5416667f,
0.04166667f, 0.5416667f,
0.04166667f, 0.5416667f,
0.04166667f, 0.5416667f,
0.04166667f, 0.5416667f,
0.125f, 0.5416667f,
0.125f, 0.5416667f,
0.125f, 0.5416667f,
0.125f, 0.5416667f,
0.125f, 0.5416667f,
0.125f, 0.5416667f,
0.20833333f, 0.5416667f,
0.20833333f, 0.5416667f,
0.20833333f, 0.5416667f,
0.20833333f, 0.5416667f,
0.20833333f, 0.5416667f,
0.20833333f, 0.5416667f,
0.29166666f, 0.5416667f,
0.29166666f, 0.5416667f,
0.29166666f, 0.5416667f,
0.29166666f, 0.5416667f,
0.29166666f, 0.5416667f,
0.29166666f, 0.5416667f,
0.375f, 0.5416667f,
0.375f, 0.5416667f,
0.375f, 0.5416667f,
0.375f, 0.5416667f,
0.375f, 0.5416667f,
0.375f, 0.5416667f,
0.45833334f, 0.5416667f,
0.45833334f, 0.5416667f,
0.45833334f, 0.5416667f,
0.45833334f, 0.5416667f,
0.45833334f, 0.5416667f,
0.45833334f, 0.5416667f,
0.5416667f, 0.5416667f,
0.5416667f, 0.5416667f,
0.5416667f, 0.5416667f,
0.5416667f, 0.5416667f,
0.5416667f, 0.5416667f,
0.5416667f, 0.5416667f,
0.625f, 0.5416667f,
0.625f, 0.5416667f,
0.625f, 0.5416667f,
0.625f, 0.5416667f,
0.625f, 0.5416667f,
0.625f, 0.5416667f,
0.7083333f, 0.5416667f,
0.7083333f, 0.5416667f,
0.7083333f, 0.5416667f,
0.7083333f, 0.5416667f,
0.7083333f, 0.5416667f,
0.7083333f, 0.5416667f,
0.7916667f, 0.5416667f,
0.7916667f, 0.5416667f,
0.7916667f, 0.5416667f,
0.7916667f, 0.5416667f,
0.7916667f, 0.5416667f,
0.7916667f, 0.5416667f,
0.875f, 0.5416667f,
0.875f, 0.5416667f,
0.875f, 0.5416667f,
0.875f, 0.5416667f,
0.875f, 0.5416667f,
0.875f, 0.5416667f,
0.9583333f, 0.5416667f,
0.9583333f, 0.5416667f,
0.9583333f, 0.5416667f,
0.9583333f, 0.5416667f,
0.9583333f, 0.5416667f,
0.9583333f, 0.5416667f,
0.04166667f, 0.625f,
0.04166667f, 0.625f,
0.04166667f, 0.625f,
0.04166667f, 0.625f,
0.04166667f, 0.625f,
0.04166667f, 0.625f,
0.125f, 0.625f,
0.125f, 0.625f,
0.125f, 0.625f,
0.125f, 0.625f,
0.125f, 0.625f,
0.125f, 0.625f,
0.20833333f, 0.625f,
0.20833333f, 0.625f,
0.20833333f, 0.625f,
0.20833333f, 0.625f,
0.20833333f, 0.625f,
0.20833333f, 0.625f,
0.29166666f, 0.625f,
0.29166666f, 0.625f,
0.29166666f, 0.625f,
0.29166666f, 0.625f,
0.29166666f, 0.625f,
0.29166666f, 0.625f,
0.375f, 0.625f,
0.375f, 0.625f,
0.375f, 0.625f,
0.375f, 0.625f,
0.375f, 0.625f,
0.375f, 0.625f,
0.45833334f, 0.625f,
0.45833334f, 0.625f,
0.45833334f, 0.625f,
0.45833334f, 0.625f,
0.45833334f, 0.625f,
0.45833334f, 0.625f,
0.5416667f, 0.625f,
0.5416667f, 0.625f,
0.5416667f, 0.625f,
0.5416667f, 0.625f,
0.5416667f, 0.625f,
0.5416667f, 0.625f,
0.625f, 0.625f,
0.625f, 0.625f,
0.625f, 0.625f,
0.625f, 0.625f,
0.625f, 0.625f,
0.625f, 0.625f,
0.7083333f, 0.625f,
0.7083333f, 0.625f,
0.7083333f, 0.625f,
0.7083333f, 0.625f,
0.7083333f, 0.625f,
0.7083333f, 0.625f,
0.7916667f, 0.625f,
0.7916667f, 0.625f,
0.7916667f, 0.625f,
0.7916667f, 0.625f,
0.7916667f, 0.625f,
0.7916667f, 0.625f,
0.875f, 0.625f,
0.875f, 0.625f,
0.875f, 0.625f,
0.875f, 0.625f,
0.875f, 0.625f,
0.875f, 0.625f,
0.9583333f, 0.625f,
0.9583333f, 0.625f,
0.9583333f, 0.625f,
0.9583333f, 0.625f,
0.9583333f, 0.625f,
0.9583333f, 0.625f,
0.04166667f, 0.7083333f,
0.04166667f, 0.7083333f,
0.04166667f, 0.7083333f,
0.04166667f, 0.7083333f,
0.04166667f, 0.7083333f,
0.04166667f, 0.7083333f,
0.125f, 0.7083333f,
0.125f, 0.7083333f,
0.125f, 0.7083333f,
0.125f, 0.7083333f,
0.125f, 0.7083333f,
0.125f, 0.7083333f,
0.20833333f, 0.7083333f,
0.20833333f, 0.7083333f,
0.20833333f, 0.7083333f,
0.20833333f, 0.7083333f,
0.20833333f, 0.7083333f,
0.20833333f, 0.7083333f,
0.29166666f, 0.7083333f,
0.29166666f, 0.7083333f,
0.29166666f, 0.7083333f,
0.29166666f, 0.7083333f,
0.29166666f, 0.7083333f,
0.29166666f, 0.7083333f,
0.375f, 0.7083333f,
0.375f, 0.7083333f,
0.375f, 0.7083333f,
0.375f, 0.7083333f,
0.375f, 0.7083333f,
0.375f, 0.7083333f,
0.45833334f, 0.7083333f,
0.45833334f, 0.7083333f,
0.45833334f, 0.7083333f,
0.45833334f, 0.7083333f,
0.45833334f, 0.7083333f,
0.45833334f, 0.7083333f,
0.5416667f, 0.7083333f,
0.5416667f, 0.7083333f,
0.5416667f, 0.7083333f,
0.5416667f, 0.7083333f,
0.5416667f, 0.7083333f,
0.5416667f, 0.7083333f,
0.625f, 0.7083333f,
0.625f, 0.7083333f,
0.625f, 0.7083333f,
0.625f, 0.7083333f,
0.625f, 0.7083333f,
0.625f, 0.7083333f,
0.7083333f, 0.7083333f,
0.7083333f, 0.7083333f,
0.7083333f, 0.7083333f,
0.7083333f, 0.7083333f,
0.7083333f, 0.7083333f,
0.7083333f, 0.7083333f,
0.7916667f, 0.7083333f,
0.7916667f, 0.7083333f,
0.7916667f, 0.7083333f,
0.7916667f, 0.7083333f,
0.7916667f, 0.7083333f,
0.7916667f, 0.7083333f,
0.875f, 0.7083333f,
0.875f, 0.7083333f,
0.875f, 0.7083333f,
0.875f, 0.7083333f,
0.875f, 0.7083333f,
0.875f, 0.7083333f,
0.9583333f, 0.7083333f,
0.9583333f, 0.7083333f,
0.9583333f, 0.7083333f,
0.9583333f, 0.7083333f,
0.9583333f, 0.7083333f,
0.9583333f, 0.7083333f,
0.04166667f, 0.7916667f,
0.04166667f, 0.7916667f,
0.04166667f, 0.7916667f,
0.04166667f, 0.7916667f,
0.04166667f, 0.7916667f,
0.04166667f, 0.7916667f,
0.125f, 0.7916667f,
0.125f, 0.7916667f,
0.125f, 0.7916667f,
0.125f, 0.7916667f,
0.125f, 0.7916667f,
0.125f, 0.7916667f,
0.20833333f, 0.7916667f,
0.20833333f, 0.7916667f,
0.20833333f, 0.7916667f,
0.20833333f, 0.7916667f,
0.20833333f, 0.7916667f,
0.20833333f, 0.7916667f,
0.29166666f, 0.7916667f,
0.29166666f, 0.7916667f,
0.29166666f, 0.7916667f,
0.29166666f, 0.7916667f,
0.29166666f, 0.7916667f,
0.29166666f, 0.7916667f,
0.375f, 0.7916667f,
0.375f, 0.7916667f,
0.375f, 0.7916667f,
0.375f, 0.7916667f,
0.375f, 0.7916667f,
0.375f, 0.7916667f,
0.45833334f, 0.7916667f,
0.45833334f, 0.7916667f,
0.45833334f, 0.7916667f,
0.45833334f, 0.7916667f,
0.45833334f, 0.7916667f,
0.45833334f, 0.7916667f,
0.5416667f, 0.7916667f,
0.5416667f, 0.7916667f,
0.5416667f, 0.7916667f,
0.5416667f, 0.7916667f,
0.5416667f, 0.7916667f,
0.5416667f, 0.7916667f,
0.625f, 0.7916667f,
0.625f, 0.7916667f,
0.625f, 0.7916667f,
0.625f, 0.7916667f,
0.625f, 0.7916667f,
0.625f, 0.7916667f,
0.7083333f, 0.7916667f,
0.7083333f, 0.7916667f,
0.7083333f, 0.7916667f,
0.7083333f, 0.7916667f,
0.7083333f, 0.7916667f,
0.7083333f, 0.7916667f,
0.7916667f, 0.7916667f,
0.7916667f, 0.7916667f,
0.7916667f, 0.7916667f,
0.7916667f, 0.7916667f,
0.7916667f, 0.7916667f,
0.7916667f, 0.7916667f,
0.875f, 0.7916667f,
0.875f, 0.7916667f,
0.875f, 0.7916667f,
0.875f, 0.7916667f,
0.875f, 0.7916667f,
0.875f, 0.7916667f,
0.9583333f, 0.7916667f,
0.9583333f, 0.7916667f,
0.9583333f, 0.7916667f,
0.9583333f, 0.7916667f,
0.9583333f, 0.7916667f,
0.9583333f, 0.7916667f,
0.04166667f, 0.875f,
0.04166667f, 0.875f,
0.04166667f, 0.875f,
0.04166667f, 0.875f,
0.04166667f, 0.875f,
0.04166667f, 0.875f,
0.125f, 0.875f,
0.125f, 0.875f,
0.125f, 0.875f,
0.125f, 0.875f,
0.125f, 0.875f,
0.125f, 0.875f,
0.20833333f, 0.875f,
0.20833333f, 0.875f,
0.20833333f, 0.875f,
0.20833333f, 0.875f,
0.20833333f, 0.875f,
0.20833333f, 0.875f,
0.29166666f, 0.875f,
0.29166666f, 0.875f,
0.29166666f, 0.875f,
0.29166666f, 0.875f,
0.29166666f, 0.875f,
0.29166666f, 0.875f,
0.375f, 0.875f,
0.375f, 0.875f,
0.375f, 0.875f,
0.375f, 0.875f,
0.375f, 0.875f,
0.375f, 0.875f,
0.45833334f, 0.875f,
0.45833334f, 0.875f,
0.45833334f, 0.875f,
0.45833334f, 0.875f,
0.45833334f, 0.875f,
0.45833334f, 0.875f,
0.5416667f, 0.875f,
0.5416667f, 0.875f,
0.5416667f, 0.875f,
0.5416667f, 0.875f,
0.5416667f, 0.875f,
0.5416667f, 0.875f,
0.625f, 0.875f,
0.625f, 0.875f,
0.625f, 0.875f,
0.625f, 0.875f,
0.625f, 0.875f,
0.625f, 0.875f,
0.7083333f, 0.875f,
0.7083333f, 0.875f,
0.7083333f, 0.875f,
0.7083333f, 0.875f,
0.7083333f, 0.875f,
0.7083333f, 0.875f,
0.7916667f, 0.875f,
0.7916667f, 0.875f,
0.7916667f, 0.875f,
0.7916667f, 0.875f,
0.7916667f, 0.875f,
0.7916667f, 0.875f,
0.875f, 0.875f,
0.875f, 0.875f,
0.875f, 0.875f,
0.875f, 0.875f,
0.875f, 0.875f,
0.875f, 0.875f,
0.9583333f, 0.875f,
0.9583333f, 0.875f,
0.9583333f, 0.875f,
0.9583333f, 0.875f,
0.9583333f, 0.875f,
0.9583333f, 0.875f,
0.04166667f, 0.9583333f,
0.04166667f, 0.9583333f,
0.04166667f, 0.9583333f,
0.04166667f, 0.9583333f,
0.04166667f, 0.9583333f,
0.04166667f, 0.9583333f,
0.125f, 0.9583333f,
0.125f, 0.9583333f,
0.125f, 0.9583333f,
0.125f, 0.9583333f,
0.125f, 0.9583333f,
0.125f, 0.9583333f,
0.20833333f, 0.9583333f,
0.20833333f, 0.9583333f,
0.20833333f, 0.9583333f,
0.20833333f, 0.9583333f,
0.20833333f, 0.9583333f,
0.20833333f, 0.9583333f,
0.29166666f, 0.9583333f,
0.29166666f, 0.9583333f,
0.29166666f, 0.9583333f,
0.29166666f, 0.9583333f,
0.29166666f, 0.9583333f,
0.29166666f, 0.9583333f,
0.375f, 0.9583333f,
0.375f, 0.9583333f,
0.375f, 0.9583333f,
0.375f, 0.9583333f,
0.375f, 0.9583333f,
0.375f, 0.9583333f,
0.45833334f, 0.9583333f,
0.45833334f, 0.9583333f,
0.45833334f, 0.9583333f,
0.45833334f, 0.9583333f,
0.45833334f, 0.9583333f,
0.45833334f, 0.9583333f,
0.5416667f, 0.9583333f,
0.5416667f, 0.9583333f,
0.5416667f, 0.9583333f,
0.5416667f, 0.9583333f,
0.5416667f, 0.9583333f,
0.5416667f, 0.9583333f,
0.625f, 0.9583333f,
0.625f, 0.9583333f,
0.625f, 0.9583333f,
0.625f, 0.9583333f,
0.625f, 0.9583333f,
0.625f, 0.9583333f,
0.7083333f, 0.9583333f,
0.7083333f, 0.9583333f,
0.7083333f, 0.9583333f,
0.7083333f, 0.9583333f,
0.7083333f, 0.9583333f,
0.7083333f, 0.9583333f,
0.7916667f, 0.9583333f,
0.7916667f, 0.9583333f,
0.7916667f, 0.9583333f,
0.7916667f, 0.9583333f,
0.7916667f, 0.9583333f,
0.7916667f, 0.9583333f,
0.875f, 0.9583333f,
0.875f, 0.9583333f,
0.875f, 0.9583333f,
0.875f, 0.9583333f,
0.875f, 0.9583333f,
0.875f, 0.9583333f,
0.9583333f, 0.9583333f,
0.9583333f, 0.9583333f,
0.9583333f, 0.9583333f,
0.9583333f, 0.9583333f,
0.9583333f, 0.9583333f,
0.9583333f, 0.9583333f
};
anchors.put(0, 0, anchors_arr);
return anchors;
}
}
}
#endif