diff --git a/onefile/car.c b/onefile/car.c new file mode 100644 index 0000000..c48d8e0 --- /dev/null +++ b/onefile/car.c @@ -0,0 +1,301 @@ + +#include +#include +#include + + +#define ROAD_SEGMENTS 128 +#define SEGMENTS_WIDTH 25 + + +typedef struct { + double x, y; +} Point; + +typedef struct { + double m00, m01, m10, m11; +} Matrix; + +typedef struct { + Point p0; + union { + Matrix mat; + struct { Point dir, norm; }; + }; + Matrix matInv; +} Segment; + +typedef struct { + double radius; + Point pos; + double angle; + + Point velocity; + double angVel; + double force; + + int collision; + Point norm; +} Wheel; + +typedef struct { + Wheel w0, w1; + double len; + Point center; + double angle; +} Car; + + +Car car; +int roadSegments; +double roadk0, roadk1; +Segment road[ROAD_SEGMENTS]; + + + +void matrixInvert(const Matrix *src, Matrix *dst) { + double kd = src->m00*src->m11 - src->m01*src->m10; + kd = fabs(kd) > 1e-10 ? 1/kd : 0; + dst->m00 = kd*src->m11; + dst->m01 = -kd*src->m01; + dst->m10 = -kd*src->m10; + dst->m11 = kd*src->m00; +} + +void matrixMultPoint(const Matrix *m, const Point *src, Point *dst) { + dst->x = src->x*m->m00 + src->y*m->m10; + dst->y = src->x*m->m01 + src->y*m->m11; +} + + +void segmentInit(Segment *s, const Point *p0, const Point *p1) { + s->p0.x = p0->x; + s->p0.y = p0->y; + s->dir.x = p1->x - p0->x; + s->dir.y = p1->y - p0->y; + double kl = sqrt(s->dir.x*s->dir.x + s->dir.y*s->dir.y); + kl = kl > 1e-10 ? 1/kl : 0; + s->norm.x = kl*s->dir.y; + s->norm.y = -kl*s->dir.x; + matrixInvert(&s->mat, &s->matInv); +} + + +void wheelCollideSegment(Wheel *wheel, Segment *s) { + Point pc, p = { wheel->pos.x - s->p0.x, wheel->pos.y - s->p0.y }; + matrixMultPoint(&s->matInv, &p, &pc); + if (pc.x >= 0 && pc.x <= 1 && pc.y < wheel->radius && pc.y > -wheel->radius) { + pc.y = wheel->radius; + matrixMultPoint(&s->mat, &pc, &p); + ++wheel->collision; + wheel->pos.x = p.x + s->p0.x; + wheel->pos.y = p.y + s->p0.y; + wheel->norm.x = s->norm.x; + wheel->norm.y = s->norm.y; + return; + } + + double kd = p.x*p.x + p.y*p.y; + if (kd > 1e-10 && kd < wheel->radius*wheel->radius) { + kd = 1/sqrt(kd); + ++wheel->collision; + wheel->pos.x = p.x*kd*wheel->radius + s->p0.x; + wheel->pos.y = p.y*kd*wheel->radius + s->p0.y; + wheel->norm.x = p.x*kd; + wheel->norm.y = p.y*kd; + return; + } +} + +void wheelUpdate(Wheel *wheel, double dt) { + wheel->pos.x += wheel->velocity.x * dt; + wheel->pos.y += wheel->velocity.y * dt; + wheel->angle += wheel->angVel * dt; + + wheel->collision = 0; + for(int i = 0; i < roadSegments; ++i) + wheelCollideSegment(wheel, &road[i]); + + wheel->velocity.y += 200*dt; + if (wheel->collision) { + double dx = -wheel->norm.y; + double dy = wheel->norm.x; + double v = wheel->velocity.x*dx + wheel->velocity.y*dy; + v += wheel->force*dt; + wheel->velocity.x = v*dx; + wheel->velocity.y = v*dy; + wheel->angVel = v/wheel->radius; + } else { + wheel->angVel += wheel->force/wheel->radius*dt; + double maxAngVel = 100; + if (wheel->angVel > maxAngVel) wheel->angVel = maxAngVel; else + if (wheel->angVel < -maxAngVel) wheel->angVel = -maxAngVel; + } +} + +void wheelDraw(Wheel *wheel) { + saveState(); + strokeWidth(0.1*wheel->radius); + stroke(COLOR_BLACK); + fill(COLOR_GREEN); + circle(wheel->pos.x, wheel->pos.y, wheel->radius); + circle(wheel->pos.x + 0.5*wheel->radius*cos(wheel->angle), + wheel->pos.y + 0.5*wheel->radius*sin(wheel->angle), wheel->radius*0.25); + restoreState(); +} + +void carUpdate(Car *car, double dt) { + Point c = { (car->w0.pos.x + car->w1.pos.x)/2, + (car->w0.pos.y + car->w1.pos.y)/2 }; + car->center.x = c.x; + car->center.y = c.y; + + Point d = { car->w1.pos.x - car->w0.pos.x, + car->w1.pos.y - car->w0.pos.y }; + double kl = d.x*d.x + d.y*d.y; + kl = kl > 1e-10 ? 1/sqrt(kl) : 0; + Point n = { d.x*kl, d.y*kl }; + car->angle = atan2(n.y, n.x); + + car->w0.pos.x = c.x - n.x*car->len/2; + car->w0.pos.y = c.y - n.y*car->len/2; + car->w1.pos.x = c.x + n.x*car->len/2; + car->w1.pos.y = c.y + n.y*car->len/2; + + Point np = { -n.y, n.x }; + Point cv = { (car->w0.velocity.x + car->w1.velocity.x)/2, + (car->w0.velocity.y + car->w1.velocity.y)/2 }; + double v0 = (car->w0.velocity.x - cv.x)*np.x + + (car->w0.velocity.y - cv.y)*np.y; + car->w0.velocity.x = cv.x + v0*np.x; + car->w0.velocity.y = cv.y + v0*np.y; + double v1 = (car->w1.velocity.x - cv.x)*np.x + + (car->w1.velocity.y - cv.y)*np.y; + car->w1.velocity.x = cv.x + v1*np.x; + car->w1.velocity.y = cv.y + v1*np.y; + + + + wheelUpdate(&car->w0, dt); + wheelUpdate(&car->w1, dt); +} + +void carDraw(Car *car) { + saveState(); + translate(car->center.x, car->center.y); + rotate(car->angle/PI*180); + + strokeWidth(0.02*car->len); + stroke(COLOR_BLACK); + fill(COLOR_BLUE); + double l = car->len; + + moveTo(0, 0); + lineTo( l*0.75, 0); + lineTo( l*0.75, -l*0.25); + lineTo( l*0.50, -l*0.25); + lineTo( l*0.25, -l*0.50); + lineTo(-l*0.25, -l*0.50); + lineTo(-l*0.50, -l*0.25); + lineTo(-l*0.75, -l*0.25); + lineTo(-l*0.75, 0); + closePath(); + restoreState(); + + wheelDraw(&car->w0); + wheelDraw(&car->w1); +} + +void roadAddSegemnt(double segmentWidth) { + if (!roadSegments) { + Point p0 = { 0, 0 }; + Point p1 = { 0, segmentWidth }; + segmentInit(&road[0], &p0, &p1); + ++roadSegments; + return; + } + + if (roadSegments >= ROAD_SEGMENTS) { + memmove(road, road + 1, sizeof(*road)*(ROAD_SEGMENTS - 1)); + --roadSegments; + } + + double ky = 0; + for(int i = 0; i < 5; ++i) { + roadk0 += (randomFloat()*2 - 1 - roadk0)*0.05; + roadk1 += (roadk0 - roadk1)*0.25; + ky += roadk1; + } + + for(int i = 0; i < roadSegments; ++i) + road[i].p0.x -= segmentWidth; + car.w0.pos.x -= segmentWidth; + car.w1.pos.x -= segmentWidth; + + Segment *prev = &road[roadSegments-1]; + Point p0 = { prev->p0.x + prev->dir.x, + prev->p0.y + prev->dir.y }; + Point p1 = { p0.x + segmentWidth, + p0.y + segmentWidth*0.5*ky }; + segmentInit(&road[roadSegments], &p0, &p1); + ++roadSegments; +} + + + +void init() { + for(int i = 0; i < ROAD_SEGMENTS; ++i) + roadAddSegemnt(SEGMENTS_WIDTH); + car.w0.pos.x = car.w1.pos.x = road[ROAD_SEGMENTS/2].p0.x; + car.w0.pos.y = car.w1.pos.y = road[ROAD_SEGMENTS/2].p0.y - 100; + car.w0.radius = car.w1.radius = 20; + car.w1.pos.x += 1; + car.len = 100; +} + + +void draw() { + double dt = windowGetFrameTime(); + double w = windowGetWidth(); + double h = windowGetHeight(); + + double fk = 100; + double force = 0; + if (keyDown("left")) force -= 1000; + if (keyDown("right")) force += 1000; + car.w0.force = car.w1.force = force; + if (car.w0.angVel > 1e-10 && car.w0.force > 0) car.w0.force *= 1/(fabs(car.w0.angVel)/fk + 1); + if (car.w0.angVel < 1e-10 && car.w0.force < 0) car.w0.force *= 1/(fabs(car.w0.angVel)/fk + 1); + if (car.w1.angVel > 1e-10 && car.w1.force > 0) car.w1.force *= 1/(fabs(car.w1.angVel)/fk + 1); + if (car.w1.angVel < 1e-10 && car.w1.force < 0) car.w1.force *= 1/(fabs(car.w1.angVel)/fk + 1); + + while(car.w0.pos.x - road[0].p0.x > 512 && road[roadSegments-1].p0.x - car.w0.pos.x < w) + roadAddSegemnt(SEGMENTS_WIDTH); + + carUpdate(&car, dt); + + saveState(); + translate(w/2, h/2); + translate(-car.w0.pos.x, -car.w0.pos.y); + + saveState(); + moveTo(road[0].p0.x, road[0].p0.y); + for(int i = 1; i < roadSegments; ++i) + lineTo(road[i].p0.x, road[i].p0.y); + strokePath(); + restoreState(); + + carDraw(&car); + + restoreState(); +} + + +int main() { + windowSetResizable(TRUE); + windowSetVariableFrameRate(); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); + return 0; +} diff --git a/onefile/color-papers.c b/onefile/color-papers.c new file mode 100644 index 0000000..f23378f --- /dev/null +++ b/onefile/color-papers.c @@ -0,0 +1,82 @@ + +#include +#include + +#define WIDTH 1024 +#define HEIGHT 768 +#define SIZE 100 +#define COUNT 100 + + +typedef struct { + double x, y, s, r, rk; +} Rect; + + +Framebuffer fb; +Animation anim; +Rect rects[COUNT]; +int id; + + +void generateRect(Rect *r) { + r->x = randomFloat(); + r->y = randomFloat(); + r->s = randomFloat(); + r->r = randomFloat(); + r->rk = randomFloat()*2 - 1; +} + + +void drawRect(Rect *r, double a) { + a = (1 - cos(a*PI))/2; + double s = r->s * a * SIZE * ((mouseX() - WIDTH / 2) + (mouseY() - HEIGHT / 2))/100; + double rot = a*r->rk*180 + r->r*360; + + saveState(); + //stroke(colorByRGBA(0, 0, 0, a)); + fill(colorByHSVA(r->x*360, 1, 1, a)); + translate(r->x*WIDTH, r->y*HEIGHT); + rotate(rot); + rect(-s/2, -s/2, s, s); + restoreState(); +} + + +void init() { + fb = createFramebuffer(WIDTH, HEIGHT); + anim = createAnimationFromFramebuffer(fb); + for(int i = 0; i < COUNT; ++i) + generateRect(&rects[i]); + saveState(); + target(fb); + clear(); + restoreState(); +} + + +void draw() { + saveState(); + noStroke(); + + rectTextured(anim, 0, 0, WIDTH, HEIGHT); + for(int i = 0; i < COUNT; ++i) + drawRect(&rects[(id + i)%COUNT], 1.0 - (double)i/COUNT); + + target(fb); + drawRect(&rects[id], 1.0); + generateRect(&rects[id]); + id = (id + 1)%COUNT; + + restoreState(); +} + + +int main() { + windowSetVariableFrameRate(); + windowSetSize(WIDTH, HEIGHT); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); +} + diff --git a/onefile/crypt.c b/onefile/crypt.c new file mode 100644 index 0000000..bf2d619 --- /dev/null +++ b/onefile/crypt.c @@ -0,0 +1,154 @@ + +#include + + +const int cw = 64; +const int ch = 64; +const int tw = 512; +const int th = 512; + + +double tx = 0; +double ty = 0; + + +const char *srcfile = "data/people.png"; +const char *dstfile = "data/output/crypt.png"; + +Animation animChars; +Animation animText; +Framebuffer fb; + + +void save() { + saveState(); + target(fb); + viewportSave(dstfile); + restoreState(); +} + + +void clearText() { + saveState(); + resetState(); + target(fb); + noStroke(); + fill(COLOR_WHITE); + rect(0, 0, tw, th); + restoreState(); + save(); +} + + +void put(double x, double y) { + saveState(); + resetState(); + target(fb); + noStroke(); + fill(COLOR_WHITE); + fillTexture(animChars, tx-x, ty-y, tw, th, FALSE); + rect(tx, ty, cw, ch); + restoreState(); + save(); +} + + +void erase(double x, double y) { + saveState(); + resetState(); + target(fb); + noStroke(); + fill(COLOR_WHITE); + rect(x, y, cw, ch); + restoreState(); + save(); +} + + +void move(double dx, double dy) { + tx += dx; + ty += dy; + if (tx > tw - cw) { ty += ch; tx = 0; } + if (tx < 0) { ty -= ch; tx = tw - cw; } + if (ty > th - ch) ty = th - ch; + if (ty < 0) ty = 0; +} + + +void init() { + windowSetSize(tw*2, th); + if (fileExists(dstfile)) { + fb = createFramebufferFromFile(dstfile); + } else { + fb = createFramebuffer(tw, th); + clearText(); + } + animText = createAnimationFromFramebuffer(fb); + animChars = createAnimation(srcfile); +} + + +void draw() { + double mx = mouseX(); + double my = mouseY(); + + saveState(); + + stroke(COLOR_BLACK); + fill(COLOR_WHITE); + rectTextured(animChars, 0, 0, tw, th); + rectTextured(animText, tw, 0, tw, th); + + noFill(); + rect(tw + tx, ty, cw, ch); + + if (mx < tw) { + mx -= cw/2; + my -= ch/2; + saveState(); + cliprect(0, 0, tw, th); + stroke(COLOR_BLUE); + rect(mx, my, cw, ch); + if (mouseWentDown("left")) { + put(mx, my); + move(cw, 0); + } + restoreState(); + } else { + mx -= tw + cw/2; + my -= ch/2; + saveState(); + translate(tw, 0); + cliprect(0, 0, tw, th); + stroke(COLOR_RED); + rect(mx, my, cw, ch); + if (mouseWentDown("left")) { + tx = mx; + ty = my; + } else + if (mouseWentDown("right")) { + erase(mx, my); + } + restoreState(); + } + + if (keyDown("any shift")) { + if (keyWentDown("delete")) clearText(); + } else { + if (keyWentDown("return")) move(0, ch); + if (keyWentDown("delete")) erase(tx, ty); + if (keyWentDown("backspace")) { move(-cw, 0); erase(tx, ty); } + } + + + restoreState(); +} + + +int main() { + windowSetVariableFrameRate(); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); +} + diff --git a/onefile/cube.c b/onefile/cube.c new file mode 100644 index 0000000..57f338a --- /dev/null +++ b/onefile/cube.c @@ -0,0 +1,245 @@ + +#include +#include +#include + + +#include "matrix.inc.h" + + +typedef struct { + int colors[6]; + Matrix position; + Vector3 mousePos[6]; +} Cube; + + +const double colors[7][4] = { + { 0.25, 0.25, 0.25, 1 }, // gray + { 1 , 1 , 1 , 1 }, // white + { 0 , 0.5 , 0 , 1 }, // green + { 1 , 0.5 , 0 , 1 }, // orange + { 1 , 1 , 0 , 1 }, // yellow + { 0 , 0 , 1 , 1 }, // blue + { 1 , 0 , 0 , 1 }, // red +}; + +Cube cubes[27]; + +Matrix position; +double mx, my; + +int turning; +Vector3 turnAxis; +double turnLayer; +double turnAngle; + + +void randomTurn() { + vector3Set(&turnAxis, 0, 0, 0); + turnAxis.a[randomNumber(0, 2)] = randomNumber(0, 1)*2 - 1; + turnLayer = randomNumber(-1, 1); + turnAngle = 0; + turning = TRUE; +} + + +void captureMouse(Vector3 *position, double z) { + vector3Set(position, 0, 0, 100); + + double mx = mouseX(); + double my = mouseY(); + double w = windowGetWidth(); + double h = windowGetHeight(); + + mx = mx/w*2 - 1; + my = 1 - my/h*2; + Vector4 p0, p1; + vector4Set(&p0, mx, my, -1, 1); + vector4Set(&p1, mx, my, 1, 1); + + Matrix back, transform, projection, modelview; + glGetDoublev(GL_PROJECTION_MATRIX, projection.a); + glGetDoublev(GL_MODELVIEW_MATRIX, modelview.a); + matrixMultMatrix(&transform, &modelview, &projection); + matrixInvert(&back, &transform); + + vector4MultMatrix(&p0, &p0, &back); + vector4MultMatrix(&p1, &p1, &back); + if (fabs(p0.w) <= 1e-6 || fabs(p1.w) <= 1e-6) + return; + vector4PespectiveDivide(&p0, &p0); + vector4PespectiveDivide(&p1, &p1); + + double dz = p1.z - p0.z; + if (fabs(dz) <= 1e-6) + return; + + double l = (z - p0.z)/dz; + double x = (p1.x - p0.x)*l + p0.x; + double y = (p1.y - p0.y)*l + p0.y; + + vector4Set(&p0, x, y, z, 1); + vector4MultMatrix(&p0, &p0, &transform); + if (fabs(p0.w) <= 1e-6) + return; + vector4PespectiveDivide(&p0, &p0); + vector3Set(position, x, y, p0.z); +} + + +void drawCube(Cube *cube) { + const double s = 0.5; + const double ss = 0.8*s; + const double sq2 = sqrt(2); + const double sq3 = sqrt(3); + + glPushMatrix(); + if (turning && fabs(vector3Dot(&cube->position.ow.xyz, &turnAxis) - turnLayer) < 0.5) + glRotated(turnAngle, turnAxis.x, turnAxis.y, turnAxis.z); + glMultMatrixd(cube->position.a); + + for(int i = 0; i < 6; ++i) { + glColor4dv(colors[cube->colors[i]]); + glBegin(GL_QUADS); + glNormal3d(0, 0, -1); + glVertex3d(-ss, -ss, -s); + glVertex3d(-ss, ss, -s); + glVertex3d( ss, ss, -s); + glVertex3d( ss, -ss, -s); + glEnd(); + + glColor4dv(colors[0]); + glBegin(GL_QUADS); + glNormal3d(-sq2, 0, -sq2); + glVertex3d(-s, -ss, -ss); + glVertex3d(-s, ss, -ss); + glVertex3d(-ss, ss, -s); + glVertex3d(-ss, -ss, -s); + glNormal3d(0, -sq2, -sq2); + glVertex3d(-ss, -s, -ss); + glVertex3d(-ss, -ss, -s); + glVertex3d( ss, -ss, -s); + glVertex3d( ss, -s, -ss); + glEnd(); + + glBegin(GL_TRIANGLES); + glNormal3d(-sq3, -sq3, -sq3); + glVertex3d(-ss, -ss, -s); + glVertex3d(-ss, -s, -ss); + glVertex3d(-s, -ss, -ss); + glEnd(); + if (i == 0) { + glBegin(GL_TRIANGLES); + glNormal3d(-sq3, sq3, -sq3); + glVertex3d(-s, ss, -ss); + glVertex3d(-ss, s, -ss); + glVertex3d(-ss, ss, -s); + glEnd(); + } + if (i == 1) { + glBegin(GL_TRIANGLES); + glNormal3d(sq3, -sq3, -sq3); + glVertex3d(s, -ss, -ss); + glVertex3d(ss, -s, -ss); + glVertex3d(ss, -ss, -s); + glEnd(); + } + + glRotated(90, i%2, -((i+1)%2), 0); + } + glPopMatrix(); +} + + +void init() { + background(colorByName("black")); + + Cube *c = cubes; + for(int ix = -1; ix <= 1; ++ix) + for(int iy = -1; iy <= 1; ++iy) + for(int iz = -1; iz <= 1; ++iz, ++c) { + if (iz < 0) c->colors[0] = 0+1; + if (ix > 0) c->colors[1] = 1+1; + if (iy > 0) c->colors[2] = 2+1; + if (iz > 0) c->colors[3] = 3+1; + if (ix < 0) c->colors[4] = 4+1; + if (iy < 0) c->colors[5] = 5+1; + c->position.ox.x = c->position.oy.y = c->position.oz.z = c->position.ow.w = 1; + c->position.ow.x = ix; + c->position.ow.y = iy; + c->position.ow.z = iz; + } + + matrixSetIdentity(&position); + randomTurn(); +} + + +void draw() { + saveState(); + + if (mouseDown("right")) { + double ay = mouseX() - mx; + double ax = mouseY() - my; + Matrix rotation; + matrixSetRotation(&rotation, ax, 1, 0, 0); + matrixMultMatrix(&position, &position, &rotation); + matrixSetRotation(&rotation, ay, 0, 1, 0); + matrixMultMatrix(&position, &position, &rotation); + } + if (mouseDown("middle")) { + double az = mouseX() - mx; + Matrix rotation; + matrixSetRotation(&rotation, az, 0, 0, 1); + matrixMultMatrix(&position, &position, &rotation); + } + mx = mouseX(); my = mouseY(); + + if (turning) { + turnAngle += windowGetFrameTime()*90; + if (turnAngle > 90) { + turnAngle = 90; + Matrix turningMatrix; + matrixSetRotation(&turningMatrix, turnAngle, turnAxis.x, turnAxis.y, turnAxis.z); + for(int i = 0; i < 27; ++i) { + if (fabs(vector3Dot(&cubes[i].position.ow.xyz, &turnAxis) - turnLayer) < 0.5) + matrixMultMatrix(&cubes[i].position, &cubes[i].position, &turningMatrix); + } + turning = FALSE; + randomTurn(); + } + } + + glClear(GL_DEPTH_BUFFER_BIT); + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); + glEnable(GL_COLOR_MATERIAL); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + + Matrix perspective; + matrixSetPerspective(&perspective, 100.0, windowGetWidth()/(double)windowGetHeight(), 0.01, 100); + glMatrixMode(GL_PROJECTION); + glLoadMatrixd(perspective.a); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslated(0, 0, -5); + glMultMatrixd(position.a); + + for(int i = 0; i < 27; ++i) + drawCube(&cubes[i]); + + glDisable(GL_DEPTH_TEST); + restoreState(); +} + + +int main() { + windowSetVariableFrameRate(); + windowSetResizable(TRUE); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); +} + diff --git a/onefile/data-h/sound/begin.ogg.h b/onefile/data-h/sound/begin.ogg.h new file mode 100644 index 0000000..e041234 --- /dev/null +++ b/onefile/data-h/sound/begin.ogg.h @@ -0,0 +1,501 @@ +unsigned char data_sound_begin_ogg[] = { + 0x4f, 0x67, 0x67, 0x53, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x16, 0x89, 0x6f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x90, + 0x37, 0x4a, 0x01, 0x1e, 0x01, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x44, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x4f, 0x67, + 0x67, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x16, 0x89, 0x6f, 0x01, 0x01, 0x00, 0x00, 0x00, 0xce, 0x9f, 0xb7, 0x64, + 0x0d, 0x3a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc9, 0x03, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x2a, 0x00, 0x00, + 0x00, 0x58, 0x69, 0x70, 0x68, 0x2e, 0x4f, 0x72, 0x67, 0x20, 0x6c, 0x69, + 0x62, 0x56, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x20, 0x49, 0x20, 0x32, 0x30, + 0x31, 0x30, 0x30, 0x33, 0x32, 0x35, 0x20, 0x28, 0x45, 0x76, 0x65, 0x72, + 0x79, 0x77, 0x68, 0x65, 0x72, 0x65, 0x29, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x05, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x1f, 0x42, 0x43, 0x56, 0x01, + 0x00, 0x00, 0x01, 0x00, 0x18, 0x63, 0x54, 0x29, 0x46, 0x99, 0x52, 0xd2, + 0x4a, 0x89, 0x19, 0x73, 0x94, 0x31, 0x46, 0x99, 0x62, 0x92, 0x4a, 0x89, + 0xa5, 0x84, 0x16, 0x42, 0x48, 0x9d, 0x73, 0x14, 0x53, 0xa9, 0x39, 0xd7, + 0x9c, 0x6b, 0xac, 0xb9, 0xb5, 0x20, 0x84, 0x10, 0x1a, 0x53, 0x50, 0x29, + 0x05, 0x99, 0x52, 0x8e, 0x52, 0x69, 0x19, 0x63, 0x90, 0x29, 0x05, 0x99, + 0x52, 0x10, 0x4b, 0x49, 0x25, 0x74, 0x12, 0x3a, 0x27, 0x9d, 0x63, 0x10, + 0x5b, 0x49, 0xc1, 0xd6, 0x98, 0x6b, 0x8b, 0x41, 0xb6, 0x1c, 0x84, 0x0d, + 0x9a, 0x52, 0x4c, 0x29, 0xc4, 0x94, 0x52, 0x8a, 0x42, 0x08, 0x19, 0x53, + 0x8c, 0x29, 0xc5, 0x94, 0x52, 0x4a, 0x42, 0x07, 0x25, 0x74, 0x0e, 0x3a, + 0xe6, 0x1c, 0x53, 0x8e, 0x4a, 0x28, 0x41, 0xb8, 0x9c, 0x73, 0xab, 0xb5, + 0x96, 0x96, 0x63, 0x8b, 0xa9, 0x74, 0x92, 0x4a, 0xe7, 0x24, 0x64, 0x4c, + 0x42, 0x48, 0x29, 0x85, 0x92, 0x4a, 0x07, 0xa5, 0x53, 0x4e, 0x42, 0x48, + 0x35, 0x96, 0xd6, 0x52, 0x29, 0x1d, 0x73, 0x52, 0x52, 0x6a, 0x41, 0xe8, + 0x20, 0x84, 0x10, 0x42, 0xb6, 0x20, 0x84, 0x0d, 0x82, 0xd0, 0x90, 0x55, + 0x00, 0x00, 0x01, 0x00, 0xc0, 0x40, 0x10, 0x1a, 0xb2, 0x0a, 0x00, 0x50, + 0x00, 0x00, 0x10, 0x8a, 0xa1, 0x18, 0x8a, 0x02, 0x84, 0x86, 0xac, 0x02, + 0x00, 0x32, 0x00, 0x00, 0x04, 0xa0, 0x28, 0x8e, 0xe2, 0x28, 0x8e, 0x23, + 0x39, 0x92, 0x63, 0x49, 0x16, 0x10, 0x1a, 0xb2, 0x0a, 0x00, 0x00, 0x02, + 0x00, 0x10, 0x00, 0x00, 0xc0, 0x70, 0x14, 0x49, 0x91, 0x14, 0xc9, 0xb1, + 0x24, 0x4b, 0xd2, 0x2c, 0x4b, 0xd3, 0x44, 0x51, 0x55, 0x7d, 0xd5, 0x36, + 0x55, 0x55, 0xf6, 0x75, 0x5d, 0xd7, 0x75, 0x5d, 0xd7, 0x75, 0x20, 0x34, + 0x64, 0x15, 0x00, 0x00, 0x01, 0x00, 0x40, 0x48, 0xa7, 0x99, 0xa5, 0x1a, + 0x20, 0xc2, 0x0c, 0x64, 0x18, 0x08, 0x0d, 0x59, 0x05, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x46, 0x28, 0xc2, 0x10, 0x03, 0x42, 0x43, 0x56, 0x01, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x62, 0x28, 0x39, 0x88, 0x26, 0xb4, 0xe6, 0x7c, + 0x73, 0x8e, 0x83, 0x66, 0x39, 0x68, 0x2a, 0xc5, 0xe6, 0x74, 0x70, 0x22, + 0xd5, 0xe6, 0x49, 0x6e, 0x2a, 0xe6, 0xe6, 0x9c, 0x73, 0xce, 0x39, 0x27, + 0x9b, 0x73, 0xc6, 0x38, 0xe7, 0x9c, 0x73, 0x8a, 0x72, 0x66, 0x31, 0x68, + 0x26, 0xb4, 0xe6, 0x9c, 0x73, 0x12, 0x83, 0x66, 0x29, 0x68, 0x26, 0xb4, + 0xe6, 0x9c, 0x73, 0x9e, 0xc4, 0xe6, 0x41, 0x6b, 0xaa, 0xb4, 0xe6, 0x9c, + 0x73, 0xc6, 0x39, 0xa7, 0x83, 0x71, 0x46, 0x18, 0xe7, 0x9c, 0x73, 0x9a, + 0xb4, 0xe6, 0x41, 0x6a, 0x36, 0xd6, 0xe6, 0x9c, 0x73, 0x16, 0xb4, 0xa6, + 0x39, 0x6a, 0x2e, 0xc5, 0xe6, 0x9c, 0x73, 0x22, 0xe5, 0xe6, 0x49, 0x6d, + 0x2e, 0xd5, 0xe6, 0x9c, 0x73, 0xce, 0x39, 0xe7, 0x9c, 0x73, 0xce, 0x39, + 0xe7, 0x9c, 0x73, 0xaa, 0x17, 0xa7, 0x73, 0x70, 0x4e, 0x38, 0xe7, 0x9c, + 0x73, 0xa2, 0xf6, 0xe6, 0x5a, 0x6e, 0x42, 0x17, 0xe7, 0x9c, 0x73, 0x3e, + 0x19, 0xa7, 0x7b, 0x73, 0x42, 0x38, 0xe7, 0x9c, 0x73, 0xce, 0x39, 0xe7, + 0x9c, 0x73, 0xce, 0x39, 0xe7, 0x9c, 0x73, 0x82, 0xd0, 0x90, 0x55, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x41, 0x18, 0x36, 0x86, 0x71, 0xa7, 0x20, 0x48, + 0x9f, 0xa3, 0x81, 0x18, 0x45, 0x88, 0x69, 0xc8, 0xa4, 0x07, 0xdd, 0xa3, + 0xc3, 0x24, 0x68, 0x0c, 0x72, 0x0a, 0xa9, 0x47, 0xa3, 0xa3, 0x91, 0x52, + 0xea, 0x20, 0x94, 0x54, 0xc6, 0x49, 0x29, 0x9d, 0x20, 0x34, 0x64, 0x15, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x21, 0x84, 0x14, 0x52, 0x48, 0x21, 0x85, + 0x14, 0x52, 0x48, 0x21, 0x85, 0x14, 0x52, 0x88, 0x21, 0x86, 0x18, 0x62, + 0xc8, 0x29, 0xa7, 0x9c, 0x82, 0x0a, 0x2a, 0xa9, 0xa4, 0xa2, 0x8a, 0x32, + 0xca, 0x2c, 0xb3, 0xcc, 0x32, 0xcb, 0x2c, 0xb3, 0xcc, 0x32, 0xeb, 0xb0, + 0xb3, 0xce, 0x3a, 0xec, 0x30, 0xc4, 0x10, 0x43, 0x0c, 0xad, 0xb4, 0x12, + 0x4b, 0x4d, 0xb5, 0xd5, 0x58, 0x63, 0xad, 0xb9, 0xe7, 0x9c, 0x6b, 0x0e, + 0xd2, 0x5a, 0x69, 0xad, 0xb5, 0xd6, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, + 0x29, 0x08, 0x0d, 0x59, 0x05, 0x00, 0x80, 0x00, 0x00, 0x10, 0x08, 0x19, + 0x64, 0x90, 0x41, 0x46, 0x21, 0x85, 0x14, 0x52, 0x88, 0x21, 0xa6, 0x9c, + 0x72, 0xca, 0x29, 0xa8, 0xa0, 0x02, 0x42, 0x43, 0x56, 0x01, 0x00, 0x80, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3c, 0xc9, 0x73, 0x44, 0x47, 0x74, + 0x44, 0x47, 0x74, 0x44, 0x47, 0x74, 0x44, 0x47, 0x74, 0x44, 0xc7, 0x73, + 0x3c, 0x47, 0x94, 0x44, 0x49, 0x94, 0x44, 0x49, 0xb4, 0x4c, 0xcb, 0xd4, + 0x4c, 0x4f, 0x15, 0x55, 0xd5, 0x95, 0x5d, 0x5b, 0xd6, 0x65, 0xdd, 0xf6, + 0x6d, 0x61, 0x17, 0x76, 0xdd, 0xf7, 0x75, 0xdf, 0xf7, 0x75, 0xe3, 0xd7, + 0x85, 0x61, 0x59, 0x96, 0x65, 0x59, 0x96, 0x65, 0x59, 0x96, 0x65, 0x59, + 0x96, 0x65, 0x59, 0x96, 0x65, 0x59, 0x82, 0xd0, 0x90, 0x55, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x80, 0x10, 0x42, 0x08, 0x21, 0x85, 0x14, 0x52, 0x48, + 0x21, 0xa5, 0x18, 0x63, 0xcc, 0x31, 0xe7, 0xa0, 0x93, 0x50, 0x42, 0x20, + 0x34, 0x64, 0x15, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, 0xc0, + 0x51, 0x1c, 0xc5, 0x71, 0x24, 0x47, 0x72, 0x24, 0xc9, 0x92, 0x2c, 0x49, + 0x93, 0x34, 0x4b, 0xb3, 0x3c, 0xcd, 0xd3, 0x3c, 0x4d, 0xf4, 0x44, 0x51, + 0x14, 0x4d, 0xd3, 0x54, 0x45, 0x57, 0x74, 0x45, 0xdd, 0xb4, 0x45, 0xd9, + 0x94, 0x4d, 0xd7, 0x74, 0x4d, 0xd9, 0x74, 0x55, 0x59, 0xb5, 0x5d, 0x59, + 0xb6, 0x6d, 0xd9, 0xd6, 0x6d, 0x5f, 0x96, 0x6d, 0xdf, 0xf7, 0x7d, 0xdf, + 0xf7, 0x7d, 0xdf, 0xf7, 0x7d, 0xdf, 0xf7, 0x7d, 0xdf, 0xf7, 0x75, 0x1d, + 0x08, 0x0d, 0x59, 0x05, 0x00, 0x48, 0x00, 0x00, 0xe8, 0x48, 0x8e, 0xa4, + 0x48, 0x8a, 0xa4, 0x48, 0x8e, 0xe3, 0x38, 0x92, 0x24, 0x01, 0xa1, 0x21, + 0xab, 0x00, 0x00, 0x19, 0x00, 0x00, 0x01, 0x00, 0x28, 0x8a, 0xa3, 0x38, + 0x8e, 0xe3, 0x48, 0x92, 0x24, 0x49, 0x96, 0xa4, 0x49, 0x9e, 0xe5, 0x59, + 0xa2, 0x66, 0x6a, 0xa6, 0x67, 0x7a, 0xaa, 0xa8, 0x02, 0xa1, 0x21, 0xab, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, + 0x9a, 0xe2, 0x29, 0xa6, 0xe2, 0x29, 0xa2, 0xe2, 0x39, 0xa2, 0x23, 0x4a, + 0xa2, 0x65, 0x5a, 0xa2, 0xa6, 0x6a, 0xae, 0x28, 0x9b, 0xb2, 0xeb, 0xba, + 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, + 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, + 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0x2e, 0x10, 0x1a, + 0xb2, 0x0a, 0x00, 0x90, 0x00, 0x00, 0xd0, 0x91, 0x1c, 0xc9, 0x91, 0x1c, + 0x49, 0x91, 0x14, 0x49, 0x91, 0x1c, 0xc9, 0x01, 0x42, 0x43, 0x56, 0x01, + 0x00, 0x32, 0x00, 0x00, 0x02, 0x00, 0x70, 0x0c, 0xc7, 0x90, 0x14, 0xc9, + 0xb1, 0x2c, 0x4b, 0xd3, 0x3c, 0xcd, 0xd3, 0x3c, 0x4d, 0xf4, 0x44, 0x4f, + 0xf4, 0x4c, 0x4f, 0x15, 0x5d, 0xd1, 0x05, 0x42, 0x43, 0x56, 0x01, 0x00, + 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x24, 0xc3, + 0x52, 0x2c, 0x47, 0x73, 0x34, 0x49, 0x94, 0x54, 0x4b, 0xb5, 0x54, 0x4d, + 0xb5, 0x54, 0x4b, 0x15, 0x55, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x35, 0x4d, 0xd3, 0x34, 0x4d, 0x20, 0x34, 0x64, 0x25, + 0x00, 0x00, 0x04, 0x00, 0xc0, 0x62, 0x8d, 0xc1, 0xe5, 0x20, 0x21, 0x25, + 0x25, 0xe5, 0xde, 0x10, 0xc2, 0x10, 0x93, 0x9e, 0x31, 0x26, 0x21, 0xb5, + 0x5e, 0x21, 0x04, 0x91, 0x92, 0xde, 0x31, 0x06, 0x15, 0x83, 0x9e, 0x32, + 0xa2, 0x0c, 0x72, 0xde, 0x42, 0xe3, 0x10, 0x83, 0x1e, 0x08, 0x0d, 0x59, + 0x11, 0x00, 0x44, 0x01, 0x00, 0x00, 0xc6, 0x20, 0xc7, 0x10, 0x73, 0xc8, + 0x39, 0x47, 0xa9, 0x93, 0x12, 0x39, 0xe7, 0xa8, 0x74, 0x94, 0x1a, 0xe7, + 0x1c, 0xa5, 0x8e, 0x52, 0x67, 0x29, 0xc5, 0x98, 0x62, 0xcd, 0x28, 0x95, + 0xd8, 0x52, 0xac, 0x8d, 0x73, 0x8e, 0x52, 0x47, 0xad, 0xa3, 0x94, 0x62, + 0x2c, 0x2d, 0x76, 0x94, 0x52, 0x8d, 0xa9, 0xc6, 0x02, 0x00, 0x00, 0x02, + 0x1c, 0x00, 0x00, 0x02, 0x2c, 0x84, 0x42, 0x43, 0x56, 0x04, 0x00, 0x51, + 0x00, 0x00, 0x84, 0x31, 0x48, 0x29, 0xa4, 0x14, 0x62, 0x8c, 0x39, 0xa7, + 0x9c, 0x43, 0x8c, 0x29, 0xe7, 0x98, 0x73, 0x86, 0x31, 0xe6, 0x1c, 0x73, + 0x8e, 0x39, 0xe7, 0xa0, 0x74, 0x52, 0x2a, 0xe7, 0x9c, 0x74, 0x4e, 0x4a, + 0xc4, 0x18, 0x73, 0x8e, 0x39, 0xa7, 0x9c, 0x73, 0x52, 0x3a, 0x27, 0x95, + 0x73, 0x4e, 0x4a, 0x27, 0xa1, 0x00, 0x00, 0x80, 0x00, 0x07, 0x00, 0x80, + 0x00, 0x0b, 0xa1, 0xd0, 0x90, 0x15, 0x01, 0x40, 0x9c, 0x00, 0x80, 0x41, + 0x92, 0x3c, 0x4f, 0xf2, 0x34, 0x51, 0x94, 0x34, 0x4f, 0x14, 0x45, 0x53, + 0x74, 0x5d, 0x51, 0x34, 0x5d, 0xd7, 0xf2, 0x3c, 0xd5, 0xf4, 0x4c, 0x53, + 0x55, 0x3d, 0xd1, 0x54, 0x55, 0x53, 0x55, 0x6d, 0xd9, 0x54, 0x55, 0x59, + 0x96, 0x3c, 0xcf, 0x34, 0x3d, 0xd3, 0x54, 0x55, 0xcf, 0x34, 0x55, 0xd5, + 0x54, 0x55, 0x59, 0x36, 0x55, 0x55, 0x96, 0x45, 0x55, 0xd5, 0x6d, 0xd3, + 0x75, 0x75, 0xdb, 0x74, 0x55, 0xdd, 0x96, 0x6d, 0xdb, 0xf7, 0x5d, 0x5b, + 0x16, 0x76, 0x51, 0x55, 0x6d, 0xdd, 0x54, 0x5d, 0xdb, 0x37, 0x55, 0xd7, + 0xf6, 0x5d, 0xd9, 0xf6, 0x7d, 0x59, 0xd6, 0x75, 0x63, 0xf2, 0x3c, 0x55, + 0xf5, 0x4c, 0xd3, 0x75, 0x3d, 0xd3, 0x74, 0x65, 0xd5, 0x75, 0x6d, 0x5b, + 0x75, 0x5d, 0x5d, 0xf7, 0x4c, 0x53, 0x96, 0x4d, 0xd7, 0x95, 0x65, 0xd3, + 0x75, 0x6d, 0xdb, 0x95, 0x65, 0x5d, 0x77, 0x65, 0xd9, 0xf7, 0x35, 0xd3, + 0x74, 0x5d, 0xd3, 0x55, 0x65, 0xd9, 0x74, 0x5d, 0xd9, 0x76, 0x65, 0x57, + 0xb7, 0x5d, 0x59, 0xf6, 0x7d, 0xd3, 0x75, 0x85, 0xdf, 0x95, 0x65, 0x5f, + 0x57, 0x65, 0x59, 0x18, 0x76, 0x5d, 0xf7, 0x85, 0x5b, 0xd7, 0x95, 0xe5, + 0x74, 0x5d, 0xdd, 0x57, 0x65, 0x57, 0x37, 0x56, 0x59, 0xf6, 0x7d, 0x5b, + 0xd7, 0x85, 0xe1, 0xd6, 0x75, 0x61, 0x99, 0x3c, 0x4f, 0x55, 0x3d, 0xd3, + 0x74, 0x5d, 0xcf, 0x34, 0x5d, 0x57, 0x75, 0x5d, 0x5f, 0x57, 0x5d, 0xd7, + 0xd6, 0x35, 0xd3, 0x94, 0x65, 0xd3, 0x75, 0x6d, 0xd9, 0x54, 0x5d, 0x59, + 0x76, 0x65, 0xd9, 0xf7, 0x5d, 0x57, 0xd6, 0x75, 0xcf, 0x34, 0x65, 0xd9, + 0x74, 0x5d, 0xdb, 0x36, 0x5d, 0x57, 0x96, 0x5d, 0x59, 0xf6, 0x7d, 0x57, + 0x96, 0x75, 0xdd, 0x74, 0x5d, 0x5f, 0x57, 0x65, 0x59, 0xf8, 0x55, 0x57, + 0xf6, 0x75, 0x59, 0xd7, 0x95, 0xe1, 0xd6, 0x6d, 0xe1, 0x37, 0x5d, 0xd7, + 0xf7, 0x55, 0x59, 0xf6, 0x85, 0x57, 0x96, 0x75, 0xe1, 0xd6, 0x75, 0x61, + 0xb9, 0x75, 0x5d, 0x18, 0x3e, 0x55, 0xf5, 0x7d, 0x53, 0x76, 0x85, 0xe1, + 0x74, 0x65, 0xdf, 0xd7, 0x85, 0xdf, 0x59, 0x6e, 0x5d, 0x38, 0x96, 0xd1, + 0x75, 0x7d, 0x61, 0x95, 0x6d, 0xe1, 0x58, 0x65, 0x59, 0x39, 0x7e, 0xe1, + 0x58, 0x96, 0xdd, 0xf7, 0x95, 0x65, 0x74, 0x5d, 0x5f, 0x58, 0x6d, 0xd9, + 0x18, 0x56, 0x59, 0x16, 0x86, 0x5f, 0xf8, 0x9d, 0xe5, 0xf6, 0x7d, 0xe3, + 0x78, 0x75, 0x5d, 0x19, 0x6e, 0xdd, 0xe7, 0xcc, 0xba, 0xef, 0x0c, 0xc7, + 0xef, 0xa4, 0xfb, 0xca, 0xd3, 0xd5, 0x6d, 0x63, 0x99, 0x7d, 0xdd, 0x59, + 0x66, 0x5f, 0x77, 0x8e, 0xe1, 0x18, 0x3a, 0xbf, 0xf0, 0xe3, 0xa9, 0xaa, + 0xaf, 0x9b, 0xae, 0x2b, 0x0c, 0xa7, 0x2c, 0x0b, 0xbf, 0xed, 0xeb, 0xc6, + 0xb3, 0xfb, 0xbe, 0xb2, 0x8c, 0xae, 0xeb, 0xfb, 0xaa, 0x2c, 0x0b, 0xbf, + 0x2a, 0xdb, 0xc2, 0xb1, 0xeb, 0xbe, 0xf3, 0xfc, 0xbe, 0xb0, 0x2c, 0xa3, + 0xec, 0xfa, 0xc2, 0x6a, 0xcb, 0xc2, 0xb0, 0xda, 0xb6, 0x31, 0xdc, 0xbe, + 0x6e, 0x2c, 0xbf, 0x70, 0x1c, 0xcb, 0x6b, 0xeb, 0xca, 0x31, 0xeb, 0xbe, + 0x51, 0xb6, 0x75, 0x7c, 0x5f, 0x78, 0x0a, 0xc3, 0xf3, 0x74, 0x75, 0x5d, + 0x79, 0x66, 0x5d, 0xc7, 0xf6, 0x75, 0x74, 0xe3, 0x47, 0x38, 0x7e, 0xca, + 0x00, 0x00, 0x80, 0x01, 0x07, 0x00, 0x80, 0x00, 0x13, 0xca, 0x40, 0xa1, + 0x21, 0x2b, 0x02, 0x80, 0x38, 0x01, 0x00, 0x8f, 0x24, 0x89, 0xa2, 0x64, + 0x59, 0xa2, 0x28, 0x59, 0x96, 0x28, 0x8a, 0xa6, 0xe8, 0xba, 0xa2, 0x68, + 0xba, 0xae, 0xa4, 0x69, 0xa6, 0xa9, 0x69, 0x9e, 0x69, 0x5a, 0x9a, 0x67, + 0x9a, 0xa6, 0x69, 0xaa, 0xb2, 0x29, 0x9a, 0xae, 0x2c, 0x69, 0x9a, 0x69, + 0x5a, 0x9e, 0x66, 0x9a, 0x9a, 0xa7, 0x99, 0xa6, 0x68, 0x9a, 0xae, 0x6b, + 0x9a, 0xa6, 0xac, 0x8a, 0xa6, 0x29, 0xcb, 0xa6, 0x6a, 0xca, 0xb2, 0x69, + 0x9a, 0xb2, 0xec, 0xba, 0xb2, 0x6d, 0xbb, 0xae, 0x6c, 0xdb, 0xa2, 0x69, + 0xca, 0xb2, 0x69, 0x9a, 0xb2, 0x6c, 0x9a, 0xa6, 0x2c, 0xbb, 0xb2, 0xab, + 0xdb, 0xae, 0xec, 0xea, 0xba, 0xa4, 0x59, 0xa6, 0xa9, 0x79, 0x9e, 0x69, + 0x6a, 0x9e, 0x67, 0x9a, 0xa6, 0x6a, 0xca, 0xb2, 0x69, 0x9a, 0xae, 0xab, + 0x79, 0x9e, 0x6a, 0x7a, 0x9e, 0x68, 0xaa, 0x9e, 0x28, 0xaa, 0xaa, 0x6a, + 0xaa, 0xaa, 0xad, 0xaa, 0xaa, 0x2c, 0x5b, 0x9e, 0x67, 0x9a, 0x9a, 0xe8, + 0xa9, 0xa6, 0x27, 0x8a, 0xaa, 0x6a, 0xaa, 0xa6, 0xad, 0x9a, 0xaa, 0x2a, + 0xcb, 0xa6, 0xaa, 0xda, 0xb2, 0x69, 0xaa, 0xb6, 0x6c, 0xaa, 0xaa, 0x6d, + 0xbb, 0xaa, 0xec, 0xfa, 0xb2, 0x6d, 0xeb, 0xba, 0x69, 0xaa, 0xb2, 0x6d, + 0xaa, 0xa6, 0x2d, 0x9b, 0xaa, 0x6a, 0xdb, 0xae, 0xec, 0xea, 0xb2, 0x2c, + 0xdb, 0xba, 0x2f, 0x69, 0x9a, 0x69, 0x6a, 0x9e, 0x67, 0x9a, 0x9a, 0xe7, + 0x99, 0xa6, 0x69, 0x9a, 0xb2, 0x6c, 0x9a, 0xaa, 0x2b, 0x5b, 0x9e, 0xa7, + 0x9a, 0x9e, 0x28, 0xaa, 0xaa, 0xe6, 0x89, 0xa6, 0x6a, 0xaa, 0xaa, 0x2c, + 0x9b, 0xa6, 0xaa, 0xca, 0x96, 0xe7, 0x99, 0xaa, 0x27, 0x8a, 0xaa, 0xea, + 0x89, 0x9e, 0x6b, 0x9a, 0xaa, 0x2a, 0xcb, 0xa6, 0x6a, 0xda, 0xaa, 0x69, + 0x9a, 0xb6, 0x6c, 0xaa, 0xaa, 0x2d, 0x9b, 0xa6, 0x2a, 0xcb, 0xae, 0x6d, + 0xfb, 0xbe, 0xeb, 0xca, 0xb2, 0x6e, 0xaa, 0xaa, 0x6c, 0x9b, 0xaa, 0x6a, + 0xeb, 0xa6, 0x6a, 0xca, 0xb2, 0x6c, 0xcb, 0xbe, 0xef, 0xca, 0xaa, 0xee, + 0x8a, 0xa6, 0x29, 0xcb, 0xa6, 0xaa, 0xda, 0xb2, 0x69, 0xaa, 0xb2, 0x2d, + 0xdb, 0xb2, 0xef, 0xcb, 0xb2, 0xac, 0xfb, 0xa2, 0x69, 0xca, 0xb2, 0x69, + 0xaa, 0xb2, 0x6d, 0xaa, 0xaa, 0x2e, 0xcb, 0xb2, 0x6d, 0x1b, 0xb3, 0x6c, + 0xfb, 0xba, 0x68, 0x9a, 0xb2, 0x6d, 0xaa, 0xa6, 0x2d, 0x9b, 0xaa, 0x2a, + 0xdb, 0xb2, 0x2d, 0xfb, 0xba, 0x2c, 0xdb, 0xba, 0xef, 0xca, 0xae, 0x6f, + 0xab, 0xaa, 0xac, 0xeb, 0xb2, 0x2d, 0xfb, 0xba, 0xee, 0xfa, 0xae, 0x70, + 0xeb, 0xba, 0x30, 0xbc, 0xb2, 0x6c, 0xfb, 0xaa, 0xac, 0xfa, 0xba, 0x2b, + 0xdb, 0xba, 0x6f, 0xeb, 0x32, 0xdb, 0xf6, 0x7d, 0x44, 0xd3, 0x94, 0x65, + 0x53, 0x35, 0x6d, 0xdb, 0x54, 0x55, 0x59, 0x76, 0x65, 0xd9, 0xf6, 0x65, + 0xdb, 0xf6, 0x7d, 0xd1, 0x34, 0x6d, 0x5b, 0x55, 0x55, 0x5b, 0x36, 0x4d, + 0xd5, 0xb6, 0x65, 0x59, 0xf6, 0x7d, 0x59, 0xb6, 0x6d, 0x61, 0x34, 0x4d, + 0xd9, 0x36, 0x55, 0x55, 0xd6, 0x4d, 0xd5, 0xb4, 0x6d, 0x59, 0x96, 0x6d, + 0x61, 0xb6, 0x65, 0xe1, 0x76, 0x65, 0xd9, 0xb7, 0x65, 0x5b, 0xf6, 0x75, + 0xd7, 0x95, 0x75, 0x5f, 0xd7, 0x7d, 0xe3, 0xd7, 0x65, 0xdd, 0xe6, 0xba, + 0xb2, 0xed, 0xcb, 0xb2, 0xad, 0xfb, 0xaa, 0xab, 0xfa, 0xb6, 0xee, 0xfb, + 0xc2, 0x70, 0xeb, 0xae, 0xf0, 0x0a, 0x00, 0x00, 0x18, 0x70, 0x00, 0x00, + 0x08, 0x30, 0xa1, 0x0c, 0x14, 0x1a, 0xb2, 0x12, 0x00, 0x88, 0x02, 0x00, + 0x00, 0x8c, 0x61, 0x8c, 0x31, 0x08, 0x8d, 0x52, 0xce, 0x39, 0x07, 0xa1, + 0x51, 0xca, 0x39, 0xe7, 0x20, 0x64, 0xce, 0x41, 0x08, 0x21, 0x95, 0xcc, + 0x39, 0x08, 0x21, 0x94, 0x92, 0x39, 0x07, 0xa1, 0x94, 0x94, 0x32, 0xe7, + 0x20, 0x94, 0x92, 0x52, 0x08, 0xa1, 0x94, 0x94, 0x5a, 0x0b, 0x21, 0x94, + 0x94, 0x52, 0x6b, 0x05, 0x00, 0x00, 0x14, 0x38, 0x00, 0x00, 0x04, 0xd8, + 0xa0, 0x29, 0xb1, 0x38, 0x40, 0xa1, 0x21, 0x2b, 0x01, 0x80, 0x54, 0x00, + 0x00, 0x83, 0xe3, 0x58, 0x96, 0xe7, 0x99, 0xa2, 0x6a, 0xda, 0xb2, 0x63, + 0x49, 0x9e, 0x27, 0x8a, 0xaa, 0xa9, 0xaa, 0xb6, 0xed, 0x48, 0x96, 0xe7, + 0x89, 0xa2, 0x69, 0xaa, 0xaa, 0x6d, 0x5b, 0x9e, 0x27, 0x8a, 0xa6, 0xa9, + 0xaa, 0xae, 0xeb, 0xeb, 0x9a, 0xe7, 0x89, 0xa2, 0x69, 0xaa, 0xaa, 0xeb, + 0xea, 0xba, 0x68, 0x9a, 0xa6, 0xa9, 0xaa, 0xae, 0xeb, 0xba, 0xba, 0x2e, + 0x9a, 0xa2, 0xa9, 0xaa, 0xaa, 0xeb, 0xba, 0xb2, 0xae, 0x9b, 0xa6, 0xaa, + 0xaa, 0xae, 0x2b, 0xbb, 0xb2, 0xec, 0xeb, 0xa6, 0xaa, 0xaa, 0xaa, 0xeb, + 0xca, 0xae, 0x2c, 0xfb, 0xc2, 0xaa, 0xba, 0xae, 0x2b, 0xcb, 0xb2, 0x6d, + 0xeb, 0xc2, 0xb0, 0xaa, 0xae, 0xeb, 0xca, 0xb2, 0x6c, 0xdb, 0xb6, 0x6f, + 0xdc, 0xba, 0xae, 0xeb, 0xbe, 0xef, 0xfb, 0xc2, 0x91, 0xad, 0xeb, 0xba, + 0x2e, 0xfc, 0xc2, 0x31, 0x0c, 0x47, 0x01, 0x00, 0xe0, 0x09, 0x0e, 0x00, + 0x40, 0x05, 0x36, 0xac, 0x8e, 0x70, 0x52, 0x34, 0x16, 0x58, 0x68, 0xc8, + 0x4a, 0x00, 0x20, 0x03, 0x00, 0x80, 0x30, 0x06, 0x21, 0x83, 0x10, 0x42, + 0x06, 0x21, 0x84, 0x90, 0x52, 0x4a, 0x21, 0xa5, 0x94, 0x12, 0x00, 0x00, + 0x30, 0xe0, 0x00, 0x00, 0x10, 0x60, 0x42, 0x19, 0x28, 0x34, 0x64, 0x25, + 0x00, 0x10, 0x03, 0x00, 0x00, 0x10, 0x01, 0x21, 0x83, 0x10, 0x42, 0x08, + 0x21, 0x84, 0x10, 0x42, 0x08, 0x21, 0x84, 0x10, 0x42, 0x08, 0x21, 0x84, + 0x10, 0x42, 0xe7, 0x9c, 0x73, 0xce, 0x39, 0xe7, 0x9c, 0x73, 0xce, 0x09, + 0x00, 0xd8, 0x8f, 0x70, 0x00, 0x90, 0x7a, 0x30, 0x31, 0x31, 0x85, 0x85, + 0x86, 0xac, 0x04, 0x00, 0x52, 0x01, 0x00, 0x00, 0x63, 0x94, 0x52, 0x8a, + 0x31, 0xe7, 0x20, 0x44, 0x8c, 0x39, 0xc6, 0x18, 0x74, 0x12, 0x4a, 0x8a, + 0x18, 0x73, 0x8e, 0x31, 0x07, 0xa5, 0xa4, 0x54, 0x39, 0x07, 0x21, 0x84, + 0x54, 0x5a, 0xcb, 0xad, 0x72, 0x0e, 0x42, 0x08, 0x29, 0xb5, 0x54, 0x5b, + 0xe6, 0x9c, 0x94, 0xd6, 0x62, 0x8c, 0x39, 0xc6, 0xcc, 0x39, 0x29, 0x29, + 0xc5, 0x56, 0x73, 0xce, 0xa1, 0x94, 0xd4, 0x62, 0xac, 0xb9, 0xe6, 0x9a, + 0x3b, 0x29, 0xad, 0xd5, 0x9a, 0x6b, 0xcd, 0xb9, 0x96, 0xd6, 0x6a, 0xcd, + 0x35, 0xe7, 0x5c, 0x73, 0x2e, 0xad, 0xc5, 0x9a, 0x6b, 0xce, 0x35, 0xe7, + 0xdc, 0x72, 0xcc, 0x35, 0xe7, 0x9c, 0x73, 0xce, 0x39, 0xc6, 0x9c, 0x73, + 0xce, 0x39, 0xe7, 0x9c, 0x73, 0x01, 0x00, 0x38, 0x0d, 0x0e, 0x00, 0xa0, + 0x07, 0x36, 0xac, 0x8e, 0x70, 0x52, 0x34, 0x16, 0x58, 0x68, 0xc8, 0x4a, + 0x00, 0x20, 0x15, 0x00, 0x80, 0x40, 0x46, 0x29, 0xc6, 0x9c, 0x73, 0x0e, + 0x3a, 0x84, 0x14, 0x63, 0xce, 0x39, 0x07, 0x21, 0x84, 0x48, 0x21, 0xc6, + 0x9c, 0x73, 0x0e, 0x42, 0x08, 0x15, 0x63, 0xce, 0x39, 0x07, 0x1d, 0x84, + 0x10, 0x2a, 0xc6, 0x1c, 0x73, 0x0e, 0x42, 0x08, 0x21, 0x64, 0xce, 0x39, + 0x07, 0x21, 0x84, 0x10, 0x42, 0xc8, 0x9c, 0x83, 0x0e, 0x3a, 0x08, 0x21, + 0x84, 0xd0, 0x41, 0x07, 0x21, 0x84, 0x10, 0x42, 0x28, 0xa5, 0x73, 0x10, + 0x42, 0x08, 0x21, 0x84, 0x12, 0x4a, 0x08, 0x21, 0x84, 0x10, 0x42, 0x08, + 0x21, 0x84, 0x0e, 0x42, 0x08, 0x21, 0x84, 0x10, 0x42, 0x08, 0x21, 0x84, + 0x10, 0x42, 0x08, 0xa1, 0x94, 0x12, 0x42, 0x08, 0x21, 0x84, 0x50, 0x42, + 0x28, 0x25, 0x14, 0x00, 0x00, 0x58, 0xe0, 0x00, 0x00, 0x10, 0x60, 0xc3, + 0xea, 0x08, 0x27, 0x45, 0x63, 0x81, 0x85, 0x86, 0xac, 0x04, 0x00, 0x80, + 0x00, 0x00, 0x20, 0x87, 0x25, 0xa8, 0x94, 0x33, 0x61, 0x90, 0x63, 0xd0, + 0x63, 0x43, 0x90, 0x72, 0xd4, 0x4c, 0x83, 0x10, 0x53, 0x4e, 0x74, 0xa6, + 0x98, 0x93, 0xda, 0x4c, 0xc5, 0x14, 0x64, 0x0e, 0x44, 0x27, 0x9d, 0x44, + 0x86, 0x5a, 0x50, 0xb6, 0x97, 0xcc, 0x02, 0x00, 0x00, 0x20, 0x08, 0x00, + 0x08, 0x30, 0x01, 0x04, 0x06, 0x08, 0x0a, 0xbe, 0x10, 0x02, 0x62, 0x0c, + 0x00, 0x40, 0x10, 0x22, 0x33, 0x44, 0x42, 0x61, 0x15, 0x2c, 0x30, 0x28, + 0x83, 0x06, 0x87, 0x79, 0x00, 0xf0, 0x00, 0x11, 0x21, 0x11, 0x00, 0x24, + 0x26, 0x28, 0xd2, 0x2e, 0x2e, 0xa0, 0xcb, 0x00, 0x17, 0x74, 0x71, 0xd7, + 0x81, 0x10, 0x82, 0x10, 0x84, 0x20, 0x16, 0x07, 0x50, 0x40, 0x02, 0x0e, + 0x4e, 0xb8, 0xe1, 0x89, 0x37, 0x3c, 0xe1, 0x06, 0x27, 0xe8, 0x14, 0x95, + 0x3a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00, + 0x38, 0x28, 0x80, 0x88, 0x88, 0xe6, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, + 0x36, 0x38, 0x3a, 0x3c, 0x02, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x8e, 0x0f, 0x20, 0x22, 0xa2, 0xb9, 0x0a, 0x8b, 0x0b, + 0x8c, 0x0c, 0x8d, 0x0d, 0x8e, 0x0e, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x20, 0x20, 0x4f, 0x67, 0x67, 0x53, 0x00, 0x04, + 0x20, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x89, 0x6f, 0x01, + 0x02, 0x00, 0x00, 0x00, 0xc5, 0xc4, 0xc8, 0xaf, 0x14, 0x29, 0x27, 0x2d, + 0xac, 0xab, 0x9b, 0x84, 0x8d, 0x96, 0x93, 0x8c, 0x99, 0x95, 0x9f, 0x99, + 0x9f, 0xa2, 0xb0, 0xa7, 0x99, 0xa4, 0xc6, 0x38, 0xc4, 0x53, 0x39, 0x31, + 0x83, 0x12, 0x37, 0xbf, 0x47, 0xff, 0x37, 0xf1, 0xaf, 0x95, 0xb9, 0x39, + 0x67, 0x5d, 0xcb, 0xcb, 0x17, 0x6f, 0xee, 0xe5, 0x54, 0x75, 0xc9, 0x9b, + 0x7b, 0x5d, 0xbf, 0x78, 0xa5, 0x70, 0x6e, 0xed, 0xcc, 0x03, 0x1c, 0x3d, + 0x30, 0xa5, 0xa4, 0xab, 0x3d, 0x37, 0x48, 0xab, 0xeb, 0x3a, 0x20, 0x6e, + 0xdf, 0xf8, 0x35, 0x04, 0x95, 0x9b, 0xbb, 0x07, 0x6e, 0x2f, 0x84, 0x8b, + 0xbb, 0x7c, 0x73, 0x9b, 0xdd, 0xf5, 0xad, 0xdb, 0x0c, 0x1e, 0xfa, 0x34, + 0x06, 0x24, 0x4d, 0xf9, 0x22, 0x78, 0x1d, 0xe0, 0xe0, 0x3a, 0x50, 0xd9, + 0x17, 0x28, 0x2d, 0xe0, 0x84, 0x7f, 0x8f, 0x7a, 0xd7, 0xfe, 0x15, 0x5b, + 0x31, 0x7b, 0xc6, 0xe5, 0x20, 0x84, 0x2d, 0x47, 0x69, 0xaf, 0xdd, 0x73, + 0xff, 0x7f, 0x61, 0x9a, 0xe2, 0xda, 0x55, 0x4d, 0xac, 0x0e, 0x3a, 0xe9, + 0x55, 0x3c, 0x21, 0x31, 0x89, 0x43, 0x89, 0xd6, 0xf8, 0x72, 0xb4, 0x35, + 0xbd, 0x0c, 0xfc, 0xa2, 0xc7, 0xe4, 0x18, 0x23, 0xcf, 0x5f, 0x2a, 0x21, + 0xa2, 0x53, 0x26, 0x8c, 0xc4, 0xca, 0x29, 0xc0, 0x38, 0xc0, 0xaa, 0x69, + 0x3f, 0xc6, 0x49, 0x00, 0xf0, 0x01, 0x62, 0x5b, 0x0d, 0x43, 0x02, 0x78, + 0xec, 0x0d, 0xdb, 0x3d, 0xe3, 0xf7, 0x6f, 0x63, 0x87, 0xe7, 0xb7, 0xea, + 0xfb, 0x91, 0x54, 0x62, 0x1c, 0x69, 0xcf, 0x11, 0x88, 0x42, 0xdc, 0xb7, + 0x63, 0xb4, 0x06, 0x54, 0x7b, 0xae, 0xe7, 0xa8, 0x0e, 0x00, 0xe5, 0xd5, + 0x44, 0xce, 0x84, 0x03, 0x00, 0xed, 0xcb, 0xe5, 0x86, 0x1d, 0xc0, 0xc2, + 0x3f, 0x6c, 0x96, 0x67, 0x34, 0x38, 0xd1, 0x45, 0xf3, 0xf0, 0xd4, 0xf7, + 0x89, 0x99, 0x0e, 0xe2, 0x06, 0x60, 0xb0, 0xba, 0x6b, 0x2d, 0x02, 0x68, + 0x33, 0xad, 0x7b, 0xd9, 0xcb, 0x44, 0xc8, 0x00, 0xe8, 0x61, 0xf8, 0xf5, + 0xf0, 0xff, 0xa6, 0x29, 0x00, 0x00, 0xdc, 0x29, 0x18, 0x14, 0x00, 0xf0, + 0x9a, 0xb2, 0x1d, 0x3d, 0x8d, 0x0e, 0xd0, 0xaf, 0x89, 0xb5, 0xec, 0xc4, + 0x4e, 0x7f, 0xcf, 0x86, 0x4c, 0xe0, 0x02, 0x12, 0x00, 0x00, 0xc3, 0x23, + 0x17, 0x00, 0xbe, 0x37, 0x55, 0x20, 0xff, 0xee, 0x84, 0xbe, 0xf0, 0x91, + 0x6a, 0xea, 0xd5, 0x9a, 0xb1, 0xbc, 0xfb, 0x5b, 0xd7, 0x7b, 0x12, 0xee, + 0x12, 0x7a, 0x00, 0x64, 0xc0, 0xaa, 0x53, 0x2c, 0x64, 0x01, 0xac, 0x1c, + 0x01, 0x00, 0x1e, 0x6e, 0x09, 0x00, 0x38, 0x46, 0x5d, 0x02, 0xa0, 0x1f, + 0xe0, 0x00, 0xc0, 0x06, 0x00, 0x8f, 0x01, 0x80, 0x06, 0xdd, 0xdf, 0x7e, + 0x9e, 0x38, 0x44, 0x3d, 0x74, 0xfe, 0xa3, 0x4c, 0x1c, 0x6d, 0xdf, 0x64, + 0x5b, 0x61, 0x9e, 0x9a, 0x71, 0xd8, 0x05, 0x90, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x0a, 0xf1, 0x3d, 0x14, 0x00, 0x00, 0x14, 0x00, 0xcf, 0x87, 0x03, + 0x00, 0x00, 0x00, 0x20, 0x4f, 0x03, 0xa0, 0x01, 0xd0, 0xba, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xd5, 0xcc, 0xe3, 0x14, 0x63, 0x11, 0x75, 0xa9, + 0xce, 0xb0, 0x46, 0xad, 0x39, 0x57, 0xcc, 0x39, 0x54, 0x73, 0xad, 0x73, + 0x1c, 0xf2, 0x0d, 0xcf, 0x96, 0xd4, 0x89, 0x6b, 0x91, 0xb6, 0xf1, 0x61, + 0x65, 0x81, 0x1d, 0xcc, 0xf0, 0x92, 0x9e, 0x23, 0x76, 0xa7, 0x4e, 0x09, + 0x00, 0xfd, 0xbd, 0xc8, 0x2c, 0x00, 0x64, 0x26, 0x02, 0x05, 0x40, 0x39, + 0x01, 0x0c, 0x0a, 0x40, 0x02, 0x9e, 0x27, 0xc5, 0xc9, 0xda, 0xd5, 0x5e, + 0xe2, 0xe5, 0xf7, 0xdc, 0x5b, 0x8a, 0x54, 0x59, 0x1e, 0xd1, 0xeb, 0xd1, + 0x20, 0x47, 0xdf, 0xb9, 0xf4, 0xda, 0x0e, 0x04, 0x58, 0x75, 0x02, 0x16, + 0x5e, 0x05, 0xb0, 0x72, 0x04, 0x00, 0x6c, 0x4c, 0xc7, 0xf8, 0x14, 0x00, + 0xfa, 0x14, 0xe0, 0x31, 0x40, 0x28, 0xf4, 0xd0, 0xd8, 0xdf, 0xb0, 0xe5, + 0x5f, 0x5a, 0xcd, 0xa3, 0x1d, 0xa7, 0x1e, 0xba, 0xfe, 0xff, 0x73, 0xba, + 0xe1, 0x12, 0x94, 0xda, 0x14, 0xea, 0xef, 0x02, 0x00, 0x00, 0x00, 0xb8, + 0x80, 0x38, 0xf8, 0x70, 0x07, 0x00, 0x00, 0x00, 0x80, 0x2f, 0x02, 0x50, + 0x55, 0x31, 0x16, 0xa6, 0x97, 0x7d, 0x3b, 0x4d, 0xc3, 0xb0, 0x93, 0x85, + 0xb9, 0x3e, 0xc5, 0x0c, 0x71, 0x06, 0x48, 0x39, 0x32, 0xd1, 0x8d, 0xbf, + 0x9b, 0x80, 0x6a, 0x18, 0xc3, 0x40, 0x8a, 0x50, 0xee, 0xc3, 0x0c, 0xeb, + 0x2f, 0x82, 0xee, 0x5c, 0xc1, 0x98, 0x22, 0xf6, 0x46, 0x02, 0xf0, 0x8c, + 0x4c, 0x00, 0x76, 0xbc, 0x0e, 0x14, 0xfc, 0xd4, 0x1f, 0x00, 0xf9, 0x05, + 0x00, 0x0c, 0x50, 0x00, 0x9e, 0x57, 0x85, 0x23, 0xb7, 0xd0, 0xff, 0x1e, + 0xf8, 0x8c, 0xbd, 0x67, 0x94, 0xc0, 0xd2, 0x3a, 0xfc, 0xec, 0x11, 0x0d, + 0xce, 0xdc, 0x61, 0xd0, 0x02, 0x8c, 0x4c, 0x2c, 0xa7, 0x00, 0xbf, 0x03, + 0x72, 0x04, 0x00, 0x28, 0x7a, 0xf3, 0x18, 0xe0, 0x00, 0x00, 0x04, 0x74, + 0xa4, 0x4f, 0x6d, 0x7e, 0x17, 0xff, 0x1a, 0x1a, 0x69, 0xa7, 0x3e, 0x5a, + 0x75, 0xe3, 0xf2, 0xef, 0x4d, 0x6f, 0xbc, 0xc0, 0x96, 0xa1, 0xb6, 0x06, + 0x00, 0x00, 0x00, 0x00, 0xd4, 0x77, 0x02, 0x80, 0xc8, 0x00, 0x00, 0x3e, + 0x54, 0xcf, 0x74, 0xfe, 0xf4, 0x5e, 0x0f, 0xa5, 0x98, 0xf5, 0x62, 0xab, + 0x98, 0x34, 0x0c, 0xbc, 0x5c, 0xa8, 0xb6, 0xb2, 0x36, 0xa7, 0x78, 0x14, + 0x3f, 0x2c, 0x52, 0xd2, 0xf8, 0x9e, 0x52, 0x27, 0xb4, 0x54, 0x83, 0x08, + 0xc0, 0x00, 0x72, 0xe4, 0x08, 0x00, 0x2c, 0x00, 0xf8, 0x06, 0x48, 0x6a, + 0x20, 0x00, 0x70, 0x0c, 0xfe, 0x57, 0xd5, 0x85, 0xb8, 0x1b, 0xf9, 0x1f, + 0xf0, 0x29, 0x86, 0x5e, 0x97, 0xc8, 0x38, 0x34, 0x5e, 0x72, 0x67, 0xa1, + 0x37, 0x31, 0xea, 0x95, 0x53, 0x34, 0x3c, 0x27, 0xb0, 0x0a, 0x36, 0x8f, + 0xf1, 0x02, 0x00, 0x88, 0x63, 0x80, 0x01, 0x10, 0x40, 0xbf, 0x33, 0x6c, + 0xc7, 0xb2, 0x76, 0xd4, 0x77, 0x63, 0xd5, 0x00, 0xba, 0x40, 0xbd, 0x19, + 0x00, 0xa0, 0x6d, 0x03, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x42, 0x01, 0xf8, + 0xcf, 0xe0, 0x54, 0x7a, 0x17, 0x5f, 0xfc, 0x7b, 0xbe, 0xc4, 0xf5, 0x66, + 0x28, 0x8c, 0x07, 0xfe, 0xbe, 0x18, 0x58, 0xd7, 0x34, 0xa0, 0x95, 0xc4, + 0xb2, 0x37, 0xd7, 0x71, 0x0e, 0xbb, 0xa8, 0x2b, 0x5f, 0xb0, 0xa7, 0x7d, + 0x59, 0x37, 0x20, 0x70, 0xef, 0x5f, 0x8f, 0x21, 0x9d, 0xc8, 0x9b, 0x91, + 0xf3, 0x63, 0x45, 0x53, 0x0a, 0xbd, 0x04, 0x84, 0xa4, 0xef, 0xab, 0x32, + 0x21, 0x41, 0x37, 0x01, 0x02, 0xa0, 0x25, 0x00, 0xfa, 0x25, 0x60, 0x25, + 0x74, 0xfe, 0x57, 0xf5, 0x3b, 0x3a, 0xe1, 0x0f, 0xfc, 0x92, 0x42, 0xaf, + 0x8b, 0xa0, 0x28, 0xfd, 0x6e, 0x69, 0xed, 0x1a, 0x6d, 0xf6, 0x30, 0x59, + 0xe6, 0x4a, 0x4d, 0x6a, 0x69, 0xd5, 0x29, 0x40, 0x54, 0x02, 0xab, 0x4a, + 0x01, 0x00, 0xb9, 0x6d, 0x10, 0xc7, 0x00, 0x0b, 0x50, 0xe8, 0x6b, 0xa8, + 0xe4, 0xdf, 0x79, 0xf6, 0x76, 0x4f, 0xd7, 0x81, 0xdc, 0xc8, 0x21, 0xaf, + 0x1d, 0xe6, 0x7d, 0xa3, 0x71, 0x84, 0x69, 0x80, 0x9e, 0x14, 0x00, 0x00, + 0x00, 0x80, 0x12, 0x07, 0x00, 0xe7, 0x8a, 0x0a, 0x00, 0xd7, 0xa8, 0xfe, + 0x7b, 0xaa, 0xdc, 0x82, 0x69, 0xe5, 0x9c, 0xcd, 0x6b, 0x6f, 0x20, 0x28, + 0x31, 0x24, 0xe8, 0x4a, 0xfa, 0x7d, 0x31, 0x0e, 0xe7, 0x21, 0xae, 0x48, + 0x32, 0x3a, 0xdd, 0x06, 0x8e, 0xb3, 0x20, 0x51, 0xad, 0xfd, 0xac, 0xf7, + 0xe5, 0x92, 0xaa, 0xf5, 0x14, 0xb0, 0x00, 0x80, 0x7a, 0xf4, 0x91, 0x8a, + 0x01, 0x80, 0xba, 0x02, 0xe8, 0xe0, 0x49, 0x00, 0xc2, 0x69, 0x13, 0x80, + 0x04, 0x4c, 0x38, 0xb9, 0x4b, 0x61, 0x01, 0x9e, 0x57, 0x8d, 0x85, 0x38, + 0x5d, 0xfe, 0x34, 0x35, 0x40, 0xb3, 0x1a, 0xb8, 0xf2, 0x8b, 0x3a, 0xe1, + 0x38, 0x3b, 0x8d, 0x5c, 0x03, 0x00, 0xf6, 0x63, 0x2c, 0xdc, 0x09, 0xac, + 0xf7, 0xe3, 0x03, 0x00, 0x38, 0x46, 0x03, 0x80, 0xc7, 0x00, 0x0d, 0x20, + 0x42, 0x55, 0xa3, 0xb9, 0x83, 0x6f, 0xbf, 0xa7, 0x39, 0x87, 0xe8, 0x38, + 0x1e, 0x72, 0x2b, 0x0d, 0x6f, 0xb7, 0x81, 0x50, 0xc0, 0x06, 0xb8, 0xc9, + 0x00, 0x60, 0x05, 0x00, 0x00, 0x1c, 0x05, 0x70, 0xab, 0x00, 0x00, 0x00, + 0x00, 0x34, 0x71, 0x00, 0xa8, 0x4b, 0x39, 0x45, 0xcf, 0x7a, 0x5a, 0x5b, + 0x28, 0x6c, 0xad, 0x33, 0x5f, 0x33, 0xa9, 0x14, 0xb0, 0x7f, 0x6f, 0x24, + 0xc6, 0x7e, 0xed, 0x84, 0xe8, 0x21, 0x87, 0xad, 0x88, 0xef, 0xfe, 0x8c, + 0xc9, 0x51, 0x15, 0xd8, 0x12, 0x73, 0x68, 0x80, 0xbd, 0x0f, 0x36, 0xc0, + 0x10, 0x1d, 0x00, 0xba, 0x09, 0x68, 0x1d, 0x00, 0x67, 0xa5, 0xbd, 0x7c, + 0x1b, 0x30, 0x66, 0xcc, 0x55, 0x00, 0x63, 0x23, 0xf9, 0x02, 0x9e, 0x57, + 0x2d, 0x0b, 0xb8, 0xb0, 0x7f, 0x44, 0x7e, 0xc5, 0x62, 0x1b, 0xc8, 0xda, + 0x8b, 0x8e, 0x23, 0x36, 0x09, 0x21, 0x5f, 0x99, 0x00, 0x1b, 0x98, 0x9f, + 0x00, 0xf0, 0x11, 0x50, 0x8f, 0x00, 0x00, 0xb9, 0x6d, 0x1e, 0x03, 0x2c, + 0x40, 0xa1, 0x8f, 0x0d, 0xe7, 0x9a, 0xba, 0xaa, 0xb7, 0x33, 0x84, 0x64, + 0x5c, 0x6c, 0x85, 0x63, 0x2f, 0x48, 0xa9, 0xf7, 0x7e, 0x02, 0xcd, 0xc2, + 0xca, 0x0e, 0x0a, 0x00, 0xe0, 0x25, 0xaa, 0x05, 0xe2, 0x0a, 0x00, 0x28, + 0x03, 0x00, 0x3c, 0xb1, 0x8f, 0x90, 0xe6, 0x7a, 0x39, 0x02, 0xad, 0xfd, + 0xd6, 0x37, 0xf2, 0x23, 0x00, 0xa2, 0xf6, 0xb5, 0xaa, 0xf6, 0x7d, 0xef, + 0xb5, 0xd5, 0xdd, 0xd8, 0xfd, 0x21, 0xf7, 0x27, 0xbe, 0x60, 0x1a, 0xa6, + 0x80, 0x89, 0xd2, 0x20, 0x81, 0x66, 0x01, 0x1a, 0x3c, 0x17, 0x00, 0xc8, + 0x06, 0x00, 0xd2, 0x16, 0x12, 0x7c, 0x45, 0x82, 0x39, 0x81, 0x6d, 0x90, + 0xb2, 0x03, 0xcc, 0x07, 0x05, 0x00, 0x9e, 0x57, 0x2d, 0x95, 0x9e, 0xea, + 0x23, 0xb2, 0xdf, 0xf2, 0x34, 0x09, 0xeb, 0x5f, 0x64, 0x40, 0xd7, 0x6d, + 0x9e, 0x33, 0x89, 0x1a, 0x1a, 0xb0, 0x72, 0x8a, 0x86, 0x11, 0xc0, 0x72, + 0xe8, 0x8d, 0x5b, 0x86, 0xba, 0x6f, 0x62, 0xcb, 0xe5, 0xc9, 0x5f, 0x55, + 0xfa, 0xc6, 0x94, 0x2e, 0xae, 0xb6, 0x9e, 0x63, 0x63, 0xde, 0x6e, 0x81, + 0x47, 0xc1, 0x0f, 0x71, 0x00, 0xca, 0xde, 0xba, 0x3b, 0x50, 0xce, 0x7e, + 0x5f, 0x11, 0x0d, 0xe0, 0x3a, 0x13, 0x72, 0x08, 0xe8, 0xee, 0xfd, 0x6e, + 0xdc, 0xe5, 0xb9, 0xad, 0x23, 0xa8, 0xba, 0x7c, 0x3f, 0x89, 0xe6, 0x2f, + 0x85, 0xc5, 0xcf, 0x64, 0x9a, 0x56, 0x55, 0xb2, 0x02, 0x09, 0x61, 0x45, + 0xbd, 0xff, 0xb6, 0x16, 0x0b, 0x80, 0xc1, 0xb3, 0xd3, 0xbf, 0x31, 0x0b, + 0x60, 0xd2, 0x7b, 0x32, 0xf0, 0x49, 0x55, 0x23, 0x94, 0x70, 0x6e, 0x53, + 0x96, 0x2c, 0x4f, 0x5e, 0x62, 0x31, 0xfa, 0x74, 0xec, 0x75, 0xab, 0x62, + 0xae, 0xa3, 0xfa, 0xc6, 0x88, 0x32, 0xa3, 0xf1, 0x73, 0x15, 0x0d, 0xa8, + 0x4f, 0x4c, 0x00, 0x9e, 0x57, 0x8d, 0xd5, 0xef, 0x42, 0x1f, 0x82, 0x57, + 0x4e, 0x4e, 0xe2, 0xaa, 0xbd, 0x18, 0xa0, 0x1b, 0x62, 0x4f, 0x8e, 0x12, + 0x04, 0x30, 0x3f, 0x06, 0xc8, 0x02, 0x58, 0xa6, 0xe3, 0x00, 0x00, 0x34, + 0xb7, 0x42, 0xf5, 0xad, 0x8a, 0x66, 0xf3, 0x77, 0x7f, 0x3d, 0xdb, 0x3f, + 0xac, 0x34, 0x12, 0xcd, 0x34, 0x99, 0xcd, 0xab, 0x8e, 0x05, 0xec, 0x01, + 0xf8, 0xa6, 0x00, 0xe0, 0x0d, 0x50, 0x80, 0x46, 0x01, 0x2e, 0x44, 0xaf, + 0x6f, 0x82, 0xd8, 0x9d, 0xd3, 0xfd, 0x20, 0x07, 0x5b, 0x33, 0x70, 0x53, + 0x1b, 0xe9, 0x7f, 0xa6, 0x46, 0x40, 0x8d, 0x40, 0x83, 0x3b, 0xf9, 0xa3, + 0x52, 0xce, 0x3d, 0xff, 0x36, 0x83, 0xbc, 0xfa, 0xb1, 0x4e, 0x00, 0xed, + 0xe0, 0x3c, 0x30, 0xce, 0xf8, 0x58, 0xb2, 0x25, 0xe2, 0x93, 0xfc, 0xbd, + 0x14, 0x7e, 0x1a, 0x2a, 0xdb, 0xae, 0x94, 0x92, 0x62, 0xe3, 0xa3, 0x5d, + 0x25, 0x17, 0xfe, 0x61, 0x36, 0x8d, 0xf2, 0x9b, 0x98, 0xb9, 0xe7, 0xc6, + 0x70, 0xac, 0x9e, 0x85, 0x50, 0x8f, 0x44, 0x07, 0x9e, 0x57, 0x9d, 0x27, + 0xfd, 0xa8, 0x3c, 0x10, 0xa8, 0x78, 0x32, 0xe1, 0xa4, 0x5d, 0x3b, 0x6a, + 0x1b, 0x8c, 0xf6, 0x90, 0xc3, 0x7e, 0x8a, 0x85, 0x57, 0x00, 0xf5, 0xd0, + 0x5b, 0x3a, 0x42, 0xdf, 0xd3, 0xdf, 0xd3, 0xa7, 0x75, 0x5e, 0xfe, 0x30, + 0x32, 0xb0, 0x0b, 0x94, 0x76, 0x00, 0xb8, 0xfd, 0xf3, 0xe5, 0x95, 0xca, + 0xf7, 0xe5, 0xd7, 0x9e, 0x2e, 0xcf, 0xa7, 0x91, 0xcd, 0xf9, 0xe6, 0xe6, + 0xa3, 0xe7, 0x88, 0x98, 0x4e, 0x43, 0x0f, 0x03, 0xef, 0x18, 0xbd, 0xb8, + 0x47, 0x05, 0xe4, 0xec, 0x57, 0xdb, 0xda, 0x07, 0x92, 0xb5, 0xd8, 0xad, + 0x3e, 0xfd, 0xa4, 0xce, 0xa4, 0x83, 0x35, 0x9a, 0x78, 0x61, 0x20, 0xa0, + 0x33, 0x69, 0x60, 0x92, 0x30, 0x3c, 0xd5, 0x04, 0x0d, 0x05, 0x8c, 0x62, + 0x7f, 0x0c, 0xd3, 0x02, 0x41, 0x9f, 0x6f, 0x8a, 0x99, 0x7d, 0x21, 0x12, + 0x3d, 0x03, 0xe9, 0x8e, 0xeb, 0xf6, 0xae, 0xab, 0x0f, 0x36, 0x4f, 0x6d, + 0x17, 0x14, 0xae, 0x99, 0xa1, 0xf3, 0x89, 0x4d, 0x32, 0xaf, 0xdc, 0x18, + 0x71, 0x27, 0x96, 0x15, 0x5f, 0x63, 0xba, 0x25, 0x98, 0x24, 0x00, 0x9e, + 0x57, 0xed, 0x47, 0xbd, 0x5c, 0x97, 0xc1, 0x67, 0x4e, 0x9e, 0x4e, 0x32, + 0xf2, 0x72, 0xeb, 0xfa, 0xd0, 0x4b, 0x58, 0x21, 0x41, 0x2f, 0x89, 0xf9, + 0x29, 0xc0, 0x0b, 0xb0, 0xec, 0xdb, 0x86, 0x61, 0x86, 0xf2, 0x84, 0x7b, + 0xcf, 0x60, 0xf7, 0xfb, 0x89, 0x13, 0x31, 0xe7, 0x33, 0xa3, 0xe9, 0xf5, + 0x1d, 0xe7, 0x63, 0x86, 0x6c, 0x50, 0x8f, 0x42, 0x99, 0x09, 0x00, 0x1f, + 0x41, 0xff, 0x2e, 0xaf, 0x40, 0xc8, 0x8d, 0x75, 0x8d, 0xd6, 0x07, 0x0d, + 0x41, 0xfe, 0x7c, 0x8e, 0x37, 0xdf, 0xb6, 0xff, 0x30, 0x20, 0x84, 0xc9, + 0xb7, 0x14, 0xef, 0x4f, 0x2b, 0xd7, 0x3b, 0x46, 0x1d, 0xb0, 0x16, 0x4d, + 0xb9, 0x0e, 0x86, 0xab, 0x13, 0x29, 0x60, 0x40, 0x61, 0xda, 0x2a, 0x9c, + 0xee, 0x46, 0x62, 0x6a, 0x8b, 0xea, 0xed, 0xe3, 0xef, 0xf4, 0xbc, 0xd7, + 0x23, 0xec, 0x0e, 0x57, 0x01, 0x6c, 0xde, 0x6b, 0x3b, 0xae, 0x22, 0x53, + 0x0e, 0x60, 0xa9, 0x98, 0x9b, 0xdc, 0x13, 0xf4, 0xd9, 0x9d, 0xee, 0xb1, + 0xa8, 0x8c, 0xf7, 0x78, 0x50, 0x76, 0x5e, 0x0b, 0x9e, 0x57, 0x6d, 0x47, + 0xdd, 0xe9, 0x8b, 0xe2, 0x95, 0x93, 0xfd, 0x14, 0x92, 0xfc, 0xeb, 0x59, + 0xc0, 0x89, 0x48, 0x86, 0x88, 0x04, 0x56, 0x60, 0x7e, 0x8a, 0x86, 0x48, + 0x60, 0xe5, 0xe0, 0x3a, 0x89, 0xd0, 0xe3, 0x3c, 0x83, 0x96, 0x54, 0x45, + 0x3d, 0x93, 0x19, 0xe6, 0x54, 0x73, 0x94, 0xc7, 0xfa, 0xde, 0x78, 0xbb, + 0x68, 0x03, 0x7f, 0x14, 0xf8, 0x15, 0x00, 0xb2, 0x66, 0x04, 0x5b, 0x74, + 0xce, 0xe9, 0x3b, 0xbe, 0xbe, 0x59, 0xec, 0x08, 0x98, 0x7b, 0xf2, 0x5b, + 0xe3, 0xdb, 0x3e, 0xa9, 0x3c, 0xf2, 0x52, 0x15, 0x93, 0x35, 0xbd, 0x80, + 0xc2, 0xab, 0x91, 0x2a, 0xb9, 0x77, 0x05, 0x1b, 0x11, 0xdb, 0xba, 0x01, + 0x20, 0xb9, 0xf9, 0x18, 0x61, 0x15, 0x19, 0xd0, 0x3b, 0xb1, 0x9f, 0x05, + 0xbb, 0x58, 0x30, 0x88, 0x9e, 0x71, 0xdd, 0xb6, 0x14, 0x85, 0xf2, 0x98, + 0x7c, 0x8d, 0xdc, 0x66, 0xe0, 0x54, 0xf9, 0xc2, 0x65, 0x85, 0x4a, 0x36, + 0x2e, 0x0d, 0x2b, 0x4d, 0xe8, 0xf4, 0x2d, 0xb4, 0xc3, 0x57, 0xb2, 0xd5, + 0x87, 0x5b, 0x6d, 0x3a, 0x53, 0x47, 0x6f, 0xd4, 0x97, 0xa5, 0x00, 0x5e, + 0x57, 0x8d, 0xf3, 0xb8, 0xd3, 0xd3, 0x44, 0x8f, 0x59, 0x92, 0xef, 0xed, + 0x92, 0x5d, 0xe4, 0x1c, 0x23, 0xa5, 0xd0, 0xb9, 0x0c, 0x50, 0x3e, 0x01, + 0xa0, 0x13, 0x28, 0x1f, 0x01, 0x00, 0x9d, 0x95, 0x0d, 0x0a, 0x25, 0x93, + 0xde, 0xeb, 0x5b, 0x79, 0xe6, 0x93, 0x7f, 0x99, 0x20, 0xf8, 0x33, 0x8e, + 0x21, 0x8f, 0xa5, 0x7f, 0x0b, 0xd8, 0x05, 0x3c, 0x29, 0x80, 0x02, 0x00, + 0x00, 0x4d, 0x7b, 0xbb, 0x24, 0xa6, 0x73, 0xbf, 0x61, 0xcf, 0xf3, 0x32, + 0x08, 0x7f, 0x15, 0x32, 0x0d, 0x90, 0xce, 0xc0, 0xb2, 0xdc, 0xfe, 0xde, + 0xb3, 0x8d, 0xb9, 0xb5, 0xd7, 0x0d, 0xc0, 0xd5, 0xfd, 0x6e, 0x92, 0x8f, + 0x93, 0x7c, 0x39, 0xac, 0xf9, 0x74, 0x73, 0xd5, 0x3b, 0xe5, 0x6c, 0x3b, + 0x85, 0x51, 0x47, 0xd3, 0x21, 0x71, 0x44, 0xc0, 0x3b, 0xcc, 0xa9, 0x11, + 0x67, 0x88, 0x9c, 0x6e, 0x45, 0x1b, 0x66, 0x71, 0x3f, 0x14, 0x49, 0x7c, + 0x53, 0xc2, 0xb0, 0x09, 0x15, 0xe5, 0x1a, 0x1e, 0x67, 0xd0, 0xfb, 0xed, + 0x57, 0x05, 0x1a, 0xc1, 0xf0, 0x88, 0x3e, 0x18, 0x84, 0x6f, 0xf4, 0xb6, + 0x79, 0x4c, 0xe7, 0xe2, 0x0b, 0x9e, 0x57, 0x5d, 0xb6, 0xf5, 0x24, 0x1a, + 0x3c, 0xb0, 0x2a, 0xc4, 0x9b, 0x1f, 0x46, 0x12, 0x81, 0xa8, 0x63, 0x83, + 0xed, 0xd4, 0x1a, 0x58, 0x4e, 0xb1, 0x70, 0x03, 0x56, 0x60, 0xab, 0x35, + 0xd2, 0x40, 0x75, 0xfb, 0xa4, 0x43, 0xb7, 0xab, 0x3f, 0xff, 0x9b, 0xd2, + 0xdf, 0xec, 0x26, 0x23, 0x5f, 0x37, 0xfb, 0x1e, 0x4f, 0x39, 0x51, 0x76, + 0x01, 0x8f, 0x11, 0x00, 0xb8, 0x92, 0x13, 0x69, 0xd7, 0xd5, 0x3e, 0xdc, + 0x67, 0x4b, 0xfa, 0xd2, 0x0c, 0x83, 0x90, 0x5f, 0xc8, 0xcd, 0xb6, 0xcc, + 0x4a, 0xe0, 0xbd, 0xa1, 0x44, 0x63, 0x39, 0x65, 0x09, 0xce, 0x7a, 0xe5, + 0x8f, 0x57, 0x69, 0xa9, 0x6f, 0x36, 0x1e, 0x21, 0x39, 0x83, 0xa1, 0x8e, + 0x14, 0x39, 0x99, 0x4d, 0x3b, 0xcb, 0x23, 0x1b, 0x49, 0x5e, 0x03, 0x31, + 0xde, 0x23, 0x57, 0x1b, 0x99, 0x81, 0xeb, 0x27, 0x7c, 0x5d, 0xb1, 0xb9, + 0x5e, 0xe2, 0xac, 0x31, 0x71, 0x35, 0x4c, 0xe0, 0xf5, 0xc0, 0xdc, 0x67, + 0x0a, 0x7d, 0x3e, 0xcc, 0x85, 0x51, 0x62, 0xf6, 0x61, 0x6a, 0x64, 0xb9, + 0x2c, 0x27, 0x66, 0x0a, 0xc7, 0xf1, 0x66, 0xc9, 0xeb, 0x7b, 0xcd, 0xde, + 0xa3, 0x3a, 0x8b, 0x59, 0x3b, 0x8b, 0x41, 0xc9, 0x72, 0x79, 0xea, 0x49, + 0x0d, 0x1e, 0x58, 0x3d, 0xf7, 0xfe, 0x84, 0x17, 0xe8, 0x09, 0x75, 0x11, + 0xe2, 0x7a, 0x29, 0x10, 0xb1, 0x2b, 0x83, 0xf9, 0x5e, 0xc0, 0x96, 0x25, + 0x09, 0x42, 0x39, 0x34, 0xef, 0x1f, 0xd3, 0xde, 0xbd, 0x45, 0x2b, 0x77, + 0xac, 0x42, 0x8e, 0x15, 0xa6, 0x97, 0xe3, 0x75, 0x21, 0x0a, 0x37, 0x87, + 0x29, 0xeb, 0x7b, 0x8a, 0x50, 0x32, 0x9d, 0x80, 0xd3, 0x95, 0x6e, 0x27, + 0x3e, 0x8e, 0xb3, 0x88, 0x9b, 0x79, 0x37, 0x5f, 0x53, 0x21, 0x40, 0x88, + 0xe2, 0x51, 0xa8, 0xf7, 0x55, 0x8f, 0x56, 0xd3, 0x94, 0x75, 0x46, 0x9c, + 0xad, 0x1e, 0x04, 0x9d, 0x63, 0x1b, 0xc9, 0x1e, 0x11, 0x45, 0x95, 0x31, + 0xdb, 0x11, 0xb3, 0x9d, 0xd4, 0x93, 0x88, 0x2e, 0x7e, 0x14, 0x8d, 0xdb, + 0x62, 0xae, 0x07, 0x4f, 0x9c, 0x0b, 0x99, 0x27, 0x79, 0x3f, 0x42, 0x35, + 0xe1, 0x8c, 0xf1, 0x9c, 0xe0, 0xf2, 0x7c, 0xc8, 0xd2, 0x26, 0xe7, 0x62, + 0xe8, 0x3a, 0xf5, 0x01, 0x59, 0x71, 0xc7, 0xda, 0x24, 0x98, 0xa7, 0xc1, + 0x0d, 0xa2, 0x64, 0x86, 0x83, 0xf0, 0x3a, 0x3a, 0xd1, 0x00, 0x79, 0xe4, + 0x58, 0x45, 0xe4, 0x27, 0xc1, 0x2e, 0xd0, 0x69, 0x7c, 0x85, 0xf1, 0x0a, + 0x5e, 0x47, 0x7d, 0x1f, 0xf3, 0xbb, 0x54, 0xd1, 0xeb, 0x4c, 0x47, 0x24, + 0xc4, 0x61, 0xe5, 0x04, 0x60, 0xcf, 0x09, 0xa0, 0x08, 0xcf, 0x12, 0x16, + 0x0a, 0x31, 0xf7, 0xe7, 0xe8, 0xe3, 0x15, 0x00, 0xec, 0xcd, 0x41, 0x0f, + 0xc3, 0xd9, 0x6f, 0x5e, 0x93, 0x37, 0xaf, 0xdf, 0x9d, 0xa6, 0xb1, 0x60, + 0x18, 0x72, 0xa3, 0xcf, 0x5e, 0x5e, 0xcc, 0x9b, 0xcb, 0x3b, 0x20, 0x68, + 0xbf, 0x81, 0xa9, 0xc3, 0x77, 0xbb, 0x86, 0x3a, 0x03, 0x0b, 0x5a, 0x2f, + 0xe6, 0x6d, 0xfb, 0xb6, 0xac, 0x2b, 0x25, 0xbc, 0x09, 0x40, 0x17, 0xb6, + 0xde, 0xe1, 0x78, 0x79, 0x5b, 0x1e, 0x12, 0x96, 0x53, 0x2b, 0x7e, 0x7b, + 0x85, 0xf5, 0xf5, 0xfc, 0x08, 0x6b, 0x77, 0x6f, 0x29, 0x4e, 0x1f, 0x03, + 0xe8, 0x5c, 0xff, 0xa8, 0x5b, 0x42, 0x0d, 0xae, 0xad, 0x02, 0xaf, 0xde, + 0xda, 0xba, 0x3e, 0x6f, 0x02, 0xe7, 0x6d, 0x6d, 0x7d, 0x1d, 0xde, 0xde, + 0x52, 0xd6, 0x60, 0x59, 0xc7, 0x70, 0xbc, 0xb6, 0x9f, 0xb7, 0x37, 0xd6, + 0x15, 0xe0, 0x9c, 0x4d, 0x00, 0x80, 0x1a, 0x30, 0x01 +}; +unsigned int data_sound_begin_ogg_len = 5973; diff --git a/onefile/data-h/sound/win.ogg.h b/onefile/data-h/sound/win.ogg.h new file mode 100644 index 0000000..d0b6d2f --- /dev/null +++ b/onefile/data-h/sound/win.ogg.h @@ -0,0 +1,1364 @@ +unsigned char data_sound_win_ogg[] = { + 0x4f, 0x67, 0x67, 0x53, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc1, 0x44, 0x9b, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x11, 0x50, + 0xdd, 0xb2, 0x01, 0x1e, 0x01, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x44, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x4f, 0x67, + 0x67, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc1, 0x44, 0x9b, 0x2b, 0x01, 0x00, 0x00, 0x00, 0x2c, 0x9c, 0x96, 0xa1, + 0x0f, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xa9, 0x03, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x2d, + 0x00, 0x00, 0x00, 0x58, 0x69, 0x70, 0x68, 0x2e, 0x4f, 0x72, 0x67, 0x20, + 0x6c, 0x69, 0x62, 0x56, 0x6f, 0x72, 0x62, 0x69, 0x73, 0x20, 0x49, 0x20, + 0x32, 0x30, 0x31, 0x30, 0x31, 0x31, 0x30, 0x31, 0x20, 0x28, 0x53, 0x63, + 0x68, 0x61, 0x75, 0x66, 0x65, 0x6e, 0x75, 0x67, 0x67, 0x65, 0x74, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73, + 0x21, 0x42, 0x43, 0x56, 0x01, 0x00, 0x00, 0x01, 0x00, 0x18, 0x63, 0x54, + 0x29, 0x46, 0x99, 0x52, 0xd2, 0x4a, 0x89, 0x19, 0x73, 0x94, 0x31, 0x46, + 0x99, 0x62, 0x92, 0x4a, 0x89, 0xa5, 0x84, 0x16, 0x42, 0x48, 0x9d, 0x73, + 0x14, 0x53, 0xa9, 0x39, 0xd7, 0x9c, 0x6b, 0xac, 0xb9, 0xb5, 0x20, 0x84, + 0x10, 0x1a, 0x53, 0x50, 0x29, 0x05, 0x99, 0x52, 0x8e, 0x52, 0x69, 0x19, + 0x63, 0x90, 0x29, 0x05, 0x99, 0x52, 0x10, 0x4b, 0x49, 0x25, 0x74, 0x12, + 0x3a, 0x27, 0x9d, 0x63, 0x10, 0x5b, 0x49, 0xc1, 0xd6, 0x98, 0x6b, 0x8b, + 0x41, 0xb6, 0x1c, 0x84, 0x0d, 0x9a, 0x52, 0x4c, 0x29, 0xc4, 0x94, 0x52, + 0x8a, 0x42, 0x08, 0x19, 0x53, 0x8c, 0x29, 0xc5, 0x94, 0x52, 0x4a, 0x42, + 0x07, 0x25, 0x74, 0x0e, 0x3a, 0xe6, 0x1c, 0x53, 0x8e, 0x4a, 0x28, 0x41, + 0xb8, 0x9c, 0x73, 0xab, 0xb5, 0x96, 0x96, 0x63, 0x8b, 0xa9, 0x74, 0x92, + 0x4a, 0xe7, 0x24, 0x64, 0x4c, 0x42, 0x48, 0x29, 0x85, 0x92, 0x4a, 0x07, + 0xa5, 0x53, 0x4e, 0x42, 0x48, 0x35, 0x96, 0xd6, 0x52, 0x29, 0x1d, 0x73, + 0x52, 0x52, 0x6a, 0x41, 0xe8, 0x20, 0x84, 0x10, 0x42, 0xb6, 0x20, 0x84, + 0x0d, 0x82, 0xd0, 0x90, 0x55, 0x00, 0x00, 0x01, 0x00, 0xc0, 0x40, 0x10, + 0x1a, 0xb2, 0x0a, 0x00, 0x50, 0x00, 0x00, 0x10, 0x8a, 0xa1, 0x18, 0x8a, + 0x02, 0x84, 0x86, 0xac, 0x02, 0x00, 0x32, 0x00, 0x00, 0x04, 0xa0, 0x28, + 0x8e, 0xe2, 0x28, 0x8e, 0x23, 0x39, 0x92, 0x63, 0x49, 0x16, 0x10, 0x1a, + 0xb2, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0xc0, 0x70, 0x14, + 0x49, 0x91, 0x14, 0xc9, 0xb1, 0x24, 0x4b, 0xd2, 0x2c, 0x4b, 0xd3, 0x44, + 0x51, 0x55, 0x7d, 0xd5, 0x36, 0x55, 0x55, 0xf6, 0x75, 0x5d, 0xd7, 0x75, + 0x5d, 0xd7, 0x75, 0x20, 0x34, 0x64, 0x15, 0x00, 0x00, 0x01, 0x00, 0x40, + 0x48, 0xa7, 0x99, 0xa5, 0x1a, 0x20, 0xc2, 0x0c, 0x64, 0x18, 0x08, 0x0d, + 0x59, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x46, 0x28, 0xc2, 0x10, 0x03, + 0x42, 0x43, 0x56, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x62, 0x28, 0x39, + 0x88, 0x26, 0xb4, 0xe6, 0x7c, 0x73, 0x8e, 0x83, 0x66, 0x39, 0x68, 0x2a, + 0xc5, 0xe6, 0x74, 0x70, 0x22, 0xd5, 0xe6, 0x49, 0x6e, 0x2a, 0xe6, 0xe6, + 0x9c, 0x73, 0xce, 0x39, 0x27, 0x9b, 0x73, 0xc6, 0x38, 0xe7, 0x9c, 0x73, + 0x8a, 0x72, 0x66, 0x31, 0x68, 0x26, 0xb4, 0xe6, 0x9c, 0x73, 0x12, 0x83, + 0x66, 0x29, 0x68, 0x26, 0xb4, 0xe6, 0x9c, 0x73, 0x9e, 0xc4, 0xe6, 0x41, + 0x6b, 0xaa, 0xb4, 0xe6, 0x9c, 0x73, 0xc6, 0x39, 0xa7, 0x83, 0x71, 0x46, + 0x18, 0xe7, 0x9c, 0x73, 0x9a, 0xb4, 0xe6, 0x41, 0x6a, 0x36, 0xd6, 0xe6, + 0x9c, 0x73, 0x16, 0xb4, 0xa6, 0x39, 0x6a, 0x2e, 0xc5, 0xe6, 0x9c, 0x73, + 0x22, 0xe5, 0xe6, 0x49, 0x6d, 0x2e, 0xd5, 0xe6, 0x9c, 0x73, 0xce, 0x39, + 0xe7, 0x9c, 0x73, 0xce, 0x39, 0xe7, 0x9c, 0x73, 0xaa, 0x17, 0xa7, 0x73, + 0x70, 0x4e, 0x38, 0xe7, 0x9c, 0x73, 0xa2, 0xf6, 0xe6, 0x5a, 0x6e, 0x42, + 0x17, 0xe7, 0x9c, 0x73, 0x3e, 0x19, 0xa7, 0x7b, 0x73, 0x42, 0x38, 0xe7, + 0x9c, 0x73, 0xce, 0x39, 0xe7, 0x9c, 0x73, 0xce, 0x39, 0xe7, 0x9c, 0x73, + 0x82, 0xd0, 0x90, 0x55, 0x00, 0x00, 0x10, 0x00, 0x00, 0x41, 0x18, 0x36, + 0x86, 0x71, 0xa7, 0x20, 0x48, 0x9f, 0xa3, 0x81, 0x18, 0x45, 0x88, 0x69, + 0xc8, 0xa4, 0x07, 0xdd, 0xa3, 0xc3, 0x24, 0x68, 0x0c, 0x72, 0x0a, 0xa9, + 0x47, 0xa3, 0xa3, 0x91, 0x52, 0xea, 0x20, 0x94, 0x54, 0xc6, 0x49, 0x29, + 0x9d, 0x20, 0x34, 0x64, 0x15, 0x00, 0x00, 0x08, 0x00, 0x00, 0x21, 0x84, + 0x14, 0x52, 0x48, 0x21, 0x85, 0x14, 0x52, 0x48, 0x21, 0x85, 0x14, 0x52, + 0x88, 0x21, 0x86, 0x18, 0x62, 0xc8, 0x29, 0xa7, 0x9c, 0x82, 0x0a, 0x2a, + 0xa9, 0xa4, 0xa2, 0x8a, 0x32, 0xca, 0x2c, 0xb3, 0xcc, 0x32, 0xcb, 0x2c, + 0xb3, 0xcc, 0x32, 0xeb, 0xb0, 0xb3, 0xce, 0x3a, 0xec, 0x30, 0xc4, 0x10, + 0x43, 0x0c, 0xad, 0xb4, 0x12, 0x4b, 0x4d, 0xb5, 0xd5, 0x58, 0x63, 0xad, + 0xb9, 0xe7, 0x9c, 0x6b, 0x0e, 0xd2, 0x5a, 0x69, 0xad, 0xb5, 0xd6, 0x4a, + 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0x08, 0x0d, 0x59, 0x05, 0x00, 0x80, + 0x00, 0x00, 0x10, 0x08, 0x19, 0x64, 0x90, 0x41, 0x46, 0x21, 0x85, 0x14, + 0x52, 0x88, 0x21, 0xa6, 0x9c, 0x72, 0xca, 0x29, 0xa8, 0xa0, 0x02, 0x42, + 0x43, 0x56, 0x01, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3c, + 0xc9, 0x73, 0x44, 0x47, 0x74, 0x44, 0x47, 0x74, 0x44, 0x47, 0x74, 0x44, + 0x47, 0x74, 0x44, 0xc7, 0x73, 0x3c, 0x47, 0x94, 0x44, 0x49, 0x94, 0x44, + 0x49, 0xb4, 0x4c, 0xcb, 0xd4, 0x4c, 0x4f, 0x15, 0x55, 0xd5, 0x95, 0x5d, + 0x5b, 0xd6, 0x65, 0xdd, 0xf6, 0x6d, 0x61, 0x17, 0x76, 0xdd, 0xf7, 0x75, + 0xdf, 0xf7, 0x75, 0xe3, 0xd7, 0x85, 0x61, 0x59, 0x96, 0x65, 0x59, 0x96, + 0x65, 0x59, 0x96, 0x65, 0x59, 0x96, 0x65, 0x59, 0x96, 0x65, 0x59, 0x82, + 0xd0, 0x90, 0x55, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x10, 0x42, 0x08, + 0x21, 0x85, 0x14, 0x52, 0x48, 0x21, 0xa5, 0x18, 0x63, 0xcc, 0x31, 0xe7, + 0xa0, 0x93, 0x50, 0x42, 0x20, 0x34, 0x64, 0x15, 0x00, 0x00, 0x08, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xc0, 0x51, 0x1c, 0xc5, 0x71, 0x24, 0x47, 0x72, + 0x24, 0xc9, 0x92, 0x2c, 0x49, 0x93, 0x34, 0x4b, 0xb3, 0x3c, 0xcd, 0xd3, + 0x3c, 0x4d, 0xf4, 0x44, 0x51, 0x14, 0x4d, 0xd3, 0x54, 0x45, 0x57, 0x74, + 0x45, 0xdd, 0xb4, 0x45, 0xd9, 0x94, 0x4d, 0xd7, 0x74, 0x4d, 0xd9, 0x74, + 0x55, 0x59, 0xb5, 0x5d, 0x59, 0xb6, 0x6d, 0xd9, 0xd6, 0x6d, 0x5f, 0x96, + 0x6d, 0xdf, 0xf7, 0x7d, 0xdf, 0xf7, 0x7d, 0xdf, 0xf7, 0x7d, 0xdf, 0xf7, + 0x7d, 0xdf, 0xf7, 0x75, 0x1d, 0x08, 0x0d, 0x59, 0x05, 0x00, 0x48, 0x00, + 0x00, 0xe8, 0x48, 0x8e, 0xa4, 0x48, 0x8a, 0xa4, 0x48, 0x8e, 0xe3, 0x38, + 0x92, 0x24, 0x01, 0xa1, 0x21, 0xab, 0x00, 0x00, 0x19, 0x00, 0x00, 0x01, + 0x00, 0x28, 0x8a, 0xa3, 0x38, 0x8e, 0xe3, 0x48, 0x92, 0x24, 0x49, 0x96, + 0xa4, 0x49, 0x9e, 0xe5, 0x59, 0xa2, 0x66, 0x6a, 0xa6, 0x67, 0x7a, 0xaa, + 0xa8, 0x02, 0xa1, 0x21, 0xab, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x28, 0x9a, 0xe2, 0x29, 0xa6, 0xe2, 0x29, 0xa2, + 0xe2, 0x39, 0xa2, 0x23, 0x4a, 0xa2, 0x65, 0x5a, 0xa2, 0xa6, 0x6a, 0xae, + 0x28, 0x9b, 0xb2, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, + 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, + 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, 0xeb, 0xba, 0xae, + 0xeb, 0xba, 0x2e, 0x10, 0x1a, 0xb2, 0x0a, 0x00, 0x90, 0x00, 0x00, 0xd0, + 0x91, 0x1c, 0xc9, 0x91, 0x1c, 0x49, 0x91, 0x14, 0x49, 0x91, 0x1c, 0xc9, + 0x01, 0x42, 0x43, 0x56, 0x01, 0x00, 0x32, 0x00, 0x00, 0x02, 0x00, 0x70, + 0x0c, 0xc7, 0x90, 0x14, 0xc9, 0xb1, 0x2c, 0x4b, 0xd3, 0x3c, 0xcd, 0xd3, + 0x3c, 0x4d, 0xf4, 0x44, 0x4f, 0xf4, 0x4c, 0x4f, 0x15, 0x5d, 0xd1, 0x05, + 0x42, 0x43, 0x56, 0x01, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x24, 0xc3, 0x52, 0x2c, 0x47, 0x73, 0x34, 0x49, 0x94, + 0x54, 0x4b, 0xb5, 0x54, 0x4d, 0xb5, 0x54, 0x4b, 0x15, 0x55, 0x4f, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x35, 0x4d, 0xd3, 0x34, + 0x4d, 0x20, 0x34, 0x64, 0x25, 0x00, 0x10, 0x05, 0x00, 0x40, 0x39, 0x6c, + 0xb1, 0xe6, 0xde, 0x1b, 0x61, 0x98, 0x72, 0x14, 0x73, 0x69, 0x8c, 0x53, + 0x8e, 0x6a, 0x50, 0x91, 0x42, 0xca, 0x59, 0x0d, 0x2a, 0x42, 0x0a, 0x31, + 0x89, 0xbd, 0x55, 0xcc, 0x31, 0x27, 0x31, 0xc7, 0xce, 0x31, 0xe6, 0xa4, + 0xe5, 0x9c, 0x31, 0x84, 0x18, 0xb4, 0x9a, 0x3b, 0xa7, 0x14, 0x73, 0x92, + 0x02, 0xa1, 0x21, 0x2b, 0x04, 0x80, 0xd0, 0x0c, 0x00, 0x87, 0xe3, 0x00, + 0x92, 0x66, 0x01, 0x92, 0xa5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xa4, 0x69, 0x80, 0xe6, 0x79, 0x80, 0xe6, 0x79, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x69, 0x1a, 0xa0, 0x79, 0x1e, 0xa0, 0x79, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0xa6, 0x01, + 0x9a, 0xe7, 0x01, 0x9a, 0xe7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xe6, 0x79, 0x80, 0x27, 0x9a, 0x80, 0x27, 0x8a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x79, 0x1e, 0xe0, 0x89, 0x1e, 0xe0, 0x89, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0xa6, 0x01, + 0x9a, 0xe7, 0x01, 0x9a, 0x27, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xe5, 0x79, 0x80, 0x67, 0x8a, 0x80, 0xe7, 0x89, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x79, 0x1e, 0xe0, 0x89, 0x22, 0xe0, 0x89, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x07, 0x00, 0x80, 0x00, + 0x0b, 0xa1, 0xd0, 0x90, 0x15, 0x01, 0x40, 0x9c, 0x00, 0x80, 0x43, 0x71, + 0x2c, 0x09, 0x00, 0x00, 0x1c, 0xc7, 0xb1, 0x2c, 0x00, 0x00, 0x70, 0x1c, + 0xc9, 0xb2, 0x00, 0x00, 0xc0, 0xb2, 0x2c, 0xcf, 0x03, 0x00, 0x00, 0xcb, + 0xb2, 0x3c, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xc0, 0x80, + 0x03, 0x00, 0x40, 0x80, 0x09, 0x65, 0xa0, 0xd0, 0x90, 0x95, 0x00, 0x40, + 0x14, 0x00, 0x80, 0x41, 0x31, 0x34, 0x0d, 0xc8, 0xb2, 0x65, 0x01, 0x97, + 0x65, 0x01, 0x34, 0x0d, 0xa0, 0x69, 0x00, 0x4f, 0x04, 0x78, 0x1e, 0x40, + 0x35, 0x01, 0x80, 0x00, 0x00, 0x80, 0x02, 0x07, 0x00, 0x80, 0x00, 0x1b, + 0x34, 0x25, 0x16, 0x07, 0x28, 0x34, 0x64, 0x25, 0x00, 0x10, 0x05, 0x00, + 0x60, 0x50, 0x14, 0x4b, 0xb2, 0x2c, 0xcf, 0x83, 0xa6, 0x69, 0x9a, 0x28, + 0x42, 0xd3, 0x34, 0x4d, 0x14, 0xa1, 0x69, 0x9e, 0x67, 0x9a, 0xd0, 0x34, + 0xcf, 0x33, 0x4d, 0x88, 0xa2, 0xe7, 0x99, 0x26, 0x3c, 0xcf, 0xf3, 0x4c, + 0x13, 0xa6, 0x29, 0x8a, 0xaa, 0x0a, 0x44, 0x51, 0x55, 0x05, 0x00, 0x00, + 0x14, 0x38, 0x00, 0x00, 0x04, 0xd8, 0xa0, 0x29, 0xb1, 0x38, 0x40, 0xa1, + 0x21, 0x2b, 0x01, 0x80, 0x90, 0x00, 0x00, 0x83, 0xa3, 0x58, 0x96, 0xa6, + 0x79, 0x9e, 0xe7, 0x89, 0xa2, 0x69, 0xaa, 0x2a, 0x34, 0xcd, 0xf3, 0x44, + 0x51, 0x14, 0x4d, 0xd3, 0x34, 0x55, 0x15, 0x9a, 0xe6, 0x79, 0xa2, 0x28, + 0x8a, 0xa6, 0x69, 0x9a, 0xaa, 0x0a, 0x4d, 0xf3, 0x3c, 0x51, 0x14, 0x45, + 0xd3, 0x54, 0x55, 0x55, 0x85, 0xa6, 0x79, 0x9e, 0x28, 0x8a, 0xa2, 0x69, + 0xaa, 0xaa, 0xab, 0xc2, 0xf3, 0x44, 0x51, 0x34, 0x4d, 0xd3, 0x34, 0x55, + 0xd5, 0x75, 0xe1, 0x79, 0xa2, 0x68, 0x8a, 0xa6, 0x69, 0x9a, 0xaa, 0xea, + 0xba, 0x10, 0x45, 0x51, 0x34, 0x4d, 0xd3, 0x54, 0x55, 0xd7, 0x75, 0x5d, + 0x20, 0x8a, 0xa6, 0x69, 0x9a, 0xaa, 0xea, 0xba, 0xae, 0x0b, 0x44, 0xd1, + 0x34, 0x4d, 0x55, 0x55, 0x5d, 0x57, 0x96, 0x81, 0x28, 0x9a, 0xa6, 0x69, + 0xaa, 0xaa, 0xeb, 0xca, 0x32, 0x30, 0x4d, 0xd3, 0x54, 0x55, 0xd7, 0x75, + 0x5d, 0x59, 0x06, 0x98, 0xa6, 0xaa, 0xba, 0xae, 0xeb, 0xca, 0x32, 0x40, + 0x55, 0x5d, 0xd7, 0x75, 0x65, 0x59, 0x96, 0x01, 0xaa, 0xaa, 0xaa, 0xae, + 0x2b, 0xcb, 0xb2, 0x0c, 0x70, 0x5d, 0xd7, 0x75, 0x5d, 0x59, 0xb6, 0x6d, + 0x00, 0xae, 0xeb, 0xba, 0xb2, 0x6c, 0xdb, 0x02, 0x00, 0x00, 0x0e, 0x1c, + 0x00, 0x00, 0x02, 0x8c, 0xa0, 0x93, 0x8c, 0x2a, 0x8b, 0xb0, 0xd1, 0x84, + 0x0b, 0x0f, 0x40, 0xa1, 0x21, 0x2b, 0x02, 0x80, 0x28, 0x00, 0x00, 0xc0, + 0x18, 0xa6, 0x14, 0x53, 0xca, 0x30, 0x26, 0x21, 0xa4, 0x10, 0x1a, 0xc6, + 0x24, 0x84, 0x14, 0x42, 0x25, 0x25, 0xa5, 0x94, 0x4a, 0xa9, 0x20, 0xa4, + 0x52, 0x52, 0x29, 0x15, 0x84, 0x54, 0x52, 0x2a, 0x25, 0xa3, 0x92, 0x52, + 0x6a, 0x29, 0x65, 0x10, 0x52, 0x29, 0x29, 0x95, 0x0a, 0x42, 0x29, 0xa5, + 0x95, 0x54, 0x00, 0x00, 0xd8, 0x81, 0x03, 0x00, 0xd8, 0x81, 0x85, 0x50, + 0x68, 0xc8, 0x4a, 0x00, 0x20, 0x0f, 0x00, 0x80, 0x20, 0x44, 0x29, 0xc6, + 0x18, 0x73, 0x4e, 0x4a, 0xa9, 0x14, 0x63, 0xce, 0x39, 0x27, 0xa5, 0x54, + 0x8a, 0x31, 0xe7, 0x9c, 0x93, 0x52, 0x32, 0xc6, 0x98, 0x73, 0xce, 0x49, + 0x29, 0x19, 0x63, 0xcc, 0x39, 0xe7, 0xa4, 0x94, 0x8c, 0x39, 0xe7, 0x9c, + 0x73, 0x52, 0x4a, 0xc6, 0x9c, 0x73, 0xce, 0x39, 0x29, 0xa5, 0x73, 0xce, + 0x39, 0xe7, 0x9c, 0x94, 0x52, 0x4a, 0xe7, 0x9c, 0x73, 0x4e, 0x4a, 0x29, + 0x25, 0x84, 0xce, 0x39, 0x27, 0xa5, 0x94, 0xd2, 0x39, 0xe7, 0x9c, 0x13, + 0x00, 0x00, 0x54, 0xe0, 0x00, 0x00, 0x10, 0x60, 0xa3, 0xc8, 0xe6, 0x04, + 0x23, 0x41, 0x85, 0x86, 0xac, 0x04, 0x00, 0x52, 0x01, 0x00, 0x0c, 0x8e, + 0x63, 0x59, 0x9a, 0xa6, 0x69, 0x9e, 0x67, 0x8a, 0x9a, 0x64, 0x69, 0x9a, + 0xe7, 0x79, 0x9e, 0x28, 0x9a, 0xa6, 0x26, 0x49, 0x9a, 0xe6, 0x79, 0x9e, + 0x27, 0x8a, 0xa6, 0xc9, 0xf3, 0x3c, 0x4f, 0x14, 0x45, 0xd1, 0x34, 0x55, + 0x93, 0xe7, 0x79, 0x9e, 0x28, 0x8a, 0xa2, 0x69, 0xaa, 0x2a, 0xd7, 0x15, + 0x45, 0xd1, 0x34, 0x4d, 0x55, 0x55, 0x55, 0xb2, 0x2c, 0x8a, 0xa2, 0x68, + 0x9a, 0xaa, 0xaa, 0xaa, 0x30, 0x4d, 0xd3, 0x54, 0x55, 0x57, 0x75, 0x5d, + 0x98, 0xa6, 0x29, 0xaa, 0xaa, 0xab, 0xca, 0x2e, 0x64, 0xd9, 0x34, 0x55, + 0xd5, 0x75, 0x65, 0x19, 0xb6, 0x6d, 0x9a, 0xaa, 0xea, 0xba, 0xb2, 0x0c, + 0x54, 0x57, 0x55, 0x5d, 0xd7, 0x96, 0x81, 0xab, 0xaa, 0xaa, 0x6c, 0xda, + 0xb2, 0x00, 0x00, 0xf0, 0x04, 0x07, 0x00, 0xa0, 0x02, 0x1b, 0x56, 0x47, + 0x38, 0x29, 0x1a, 0x0b, 0x2c, 0x34, 0x64, 0x25, 0x00, 0x90, 0x01, 0x00, + 0x40, 0x10, 0x82, 0x90, 0x52, 0x0a, 0x21, 0xa5, 0x14, 0x42, 0x4a, 0x29, + 0x84, 0x94, 0x52, 0x08, 0x09, 0x00, 0x00, 0x18, 0x70, 0x00, 0x00, 0x08, + 0x30, 0xa1, 0x0c, 0x14, 0x1a, 0xb2, 0x12, 0x00, 0x48, 0x05, 0x00, 0x00, + 0x0c, 0x91, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0xd2, 0x38, 0x25, 0xa5, 0x94, + 0x52, 0x4a, 0x29, 0xa5, 0x71, 0x4c, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, + 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, + 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, + 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, + 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, + 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, + 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0xa5, + 0x94, 0x52, 0x4a, 0x29, 0xa5, 0x94, 0x52, 0x4a, 0x29, 0x05, 0x00, 0x2e, + 0x55, 0x38, 0x00, 0xe8, 0x3e, 0xd8, 0xb0, 0x3a, 0xc2, 0x49, 0xd1, 0x58, + 0x60, 0xa1, 0x21, 0x2b, 0x01, 0x80, 0x54, 0x00, 0x00, 0xc0, 0x18, 0x85, + 0x18, 0x83, 0x50, 0x4a, 0x6b, 0x15, 0x42, 0x8c, 0x39, 0x27, 0xa5, 0xa5, + 0xd6, 0x2a, 0x84, 0x18, 0x73, 0x4e, 0x4a, 0x4a, 0xad, 0xe5, 0x8c, 0x39, + 0x07, 0x21, 0xa5, 0xd6, 0x62, 0xcb, 0x9d, 0x73, 0x0c, 0x42, 0x29, 0xad, + 0xc5, 0xd8, 0x53, 0xe9, 0x9c, 0x94, 0x94, 0x5a, 0x8b, 0xb1, 0xa7, 0x14, + 0x3a, 0x2a, 0x29, 0xb5, 0x16, 0x5b, 0xef, 0xbd, 0xa4, 0x92, 0x5a, 0x6b, + 0x2d, 0xc6, 0xde, 0x7b, 0x0a, 0x29, 0xd4, 0xd6, 0x5a, 0x8c, 0xbd, 0xf7, + 0x56, 0x53, 0x6b, 0x2d, 0xc6, 0x1a, 0x7b, 0xef, 0x39, 0xb6, 0x12, 0x4b, + 0xac, 0x31, 0xf6, 0xde, 0x7b, 0x8f, 0xb5, 0xc5, 0xd8, 0x62, 0xec, 0xbd, + 0xf7, 0x1e, 0x5b, 0x4b, 0xb5, 0xe5, 0x58, 0x00, 0x00, 0x66, 0x83, 0x03, + 0x00, 0x44, 0x82, 0x0d, 0xab, 0x23, 0x9c, 0x14, 0x8d, 0x05, 0x16, 0x1a, + 0xb2, 0x12, 0x00, 0x08, 0x09, 0x00, 0x20, 0x8c, 0x51, 0x4a, 0x29, 0xc6, + 0x9c, 0x73, 0xce, 0x39, 0xe7, 0xa4, 0x94, 0x8c, 0x31, 0xe6, 0x1c, 0x84, + 0x10, 0x42, 0x08, 0xa1, 0x94, 0x92, 0x31, 0xc7, 0x9c, 0x83, 0x10, 0x42, + 0x08, 0x21, 0x94, 0x52, 0x32, 0xe6, 0x9c, 0x83, 0x10, 0x42, 0x08, 0x25, + 0x84, 0x52, 0x4a, 0xc6, 0x9c, 0x83, 0x0e, 0x42, 0x08, 0x25, 0x84, 0x52, + 0x52, 0xea, 0x9c, 0x73, 0x10, 0x42, 0x08, 0xa1, 0x84, 0x50, 0x4a, 0x29, + 0x9d, 0x73, 0x0e, 0x42, 0x08, 0x21, 0x84, 0x50, 0x4a, 0x4a, 0xa9, 0x73, + 0x10, 0x42, 0x08, 0x21, 0x84, 0x10, 0x4a, 0x29, 0x25, 0xa5, 0xd4, 0x39, + 0x08, 0x21, 0x94, 0x10, 0x42, 0x08, 0x29, 0xa5, 0x94, 0x42, 0x08, 0x21, + 0x84, 0x10, 0x42, 0x08, 0x21, 0x95, 0x92, 0x52, 0x08, 0x21, 0x84, 0x10, + 0x42, 0x28, 0xa5, 0x94, 0x54, 0x52, 0x0a, 0x21, 0x84, 0x10, 0x42, 0x08, + 0xa5, 0x84, 0x52, 0x52, 0x4a, 0x29, 0x85, 0x10, 0x4a, 0x08, 0x21, 0x84, + 0x50, 0x52, 0x4a, 0x29, 0xa5, 0x52, 0x4a, 0x09, 0x21, 0x84, 0x10, 0x4a, + 0x4a, 0x29, 0xa5, 0x14, 0x4a, 0x08, 0x21, 0x94, 0x10, 0x42, 0x4a, 0x29, + 0xa5, 0x94, 0x4a, 0x09, 0x21, 0x84, 0x10, 0x4a, 0x48, 0xa9, 0xa4, 0x94, + 0x52, 0x49, 0x21, 0x84, 0x10, 0x42, 0x08, 0x05, 0x00, 0x00, 0x1c, 0x38, + 0x00, 0x00, 0x04, 0x18, 0x41, 0x27, 0x19, 0x55, 0x16, 0x61, 0xa3, 0x09, + 0x17, 0x1e, 0x80, 0x42, 0x43, 0x56, 0x02, 0x00, 0x51, 0x00, 0x00, 0x10, + 0x82, 0x12, 0x42, 0x49, 0x2d, 0x02, 0x48, 0x29, 0x26, 0xad, 0x86, 0x48, + 0x39, 0x27, 0xad, 0xd6, 0x12, 0x39, 0xa4, 0x1c, 0xc5, 0x1a, 0x22, 0xa6, + 0x94, 0x93, 0x96, 0x42, 0x06, 0x99, 0x52, 0x4c, 0x4a, 0x09, 0x2d, 0x74, + 0x8c, 0x49, 0x4b, 0x29, 0xb6, 0x12, 0x3a, 0x48, 0xa9, 0xe6, 0x1c, 0x53, + 0x08, 0x29, 0x00, 0x00, 0x00, 0x82, 0x00, 0x80, 0x00, 0x13, 0x40, 0x60, + 0x80, 0xa0, 0xe0, 0x0b, 0x21, 0x20, 0xc6, 0x00, 0x00, 0x04, 0x21, 0x32, + 0x43, 0x24, 0x14, 0x56, 0xc1, 0x02, 0x83, 0x32, 0x68, 0x70, 0x98, 0x07, + 0x00, 0x0f, 0x10, 0x11, 0x12, 0x01, 0x40, 0x62, 0x82, 0x22, 0xed, 0xe2, + 0x02, 0xba, 0x0c, 0x70, 0x41, 0x17, 0x77, 0x1d, 0x08, 0x21, 0x08, 0x41, + 0x08, 0x62, 0x71, 0x00, 0x05, 0x24, 0xe0, 0xe0, 0x84, 0x1b, 0x9e, 0x78, + 0xc3, 0x13, 0x6e, 0x70, 0x82, 0x4e, 0x51, 0xa9, 0x03, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x80, 0x07, 0x00, 0x00, 0x84, 0x02, 0x88, 0x88, + 0x68, 0xe6, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, + 0x3e, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0b, 0x00, 0x3e, 0x00, + 0x00, 0x90, 0x10, 0x20, 0x22, 0xa2, 0x99, 0xab, 0xb0, 0xb8, 0xc0, 0xc8, + 0xd0, 0xd8, 0xe0, 0xe8, 0xf0, 0xf8, 0x00, 0x09, 0x00, 0x00, 0x04, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x20, 0x20, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x20, 0x4f, 0x67, 0x67, + 0x53, 0x00, 0x00, 0x40, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, + 0x44, 0x9b, 0x2b, 0x02, 0x00, 0x00, 0x00, 0x82, 0xb7, 0xde, 0x78, 0x18, + 0x2c, 0x2d, 0x2d, 0xcb, 0xcf, 0xca, 0xc7, 0xbf, 0xbd, 0xbe, 0xbf, 0xb7, + 0xc4, 0xbe, 0xbb, 0xc4, 0xc9, 0xc7, 0xca, 0xc5, 0xcc, 0xc8, 0xc9, 0xc4, + 0xf4, 0x44, 0x9e, 0xf3, 0x9e, 0xc8, 0x73, 0x7e, 0x68, 0x22, 0x4a, 0x91, + 0xa9, 0x25, 0x44, 0x3a, 0x60, 0x07, 0x85, 0xa7, 0x66, 0xef, 0x31, 0x44, + 0x0d, 0x44, 0xfc, 0x95, 0x1a, 0x47, 0x73, 0x0e, 0xd7, 0xf6, 0xb9, 0x1f, + 0xc5, 0x83, 0x7d, 0xee, 0x14, 0x64, 0x24, 0x01, 0x1c, 0x3d, 0x67, 0xe8, + 0x71, 0xfc, 0xa8, 0x43, 0xdf, 0xa1, 0x41, 0x66, 0x82, 0x95, 0x66, 0x44, + 0xd1, 0x0e, 0x41, 0xff, 0x73, 0x3c, 0xa4, 0x7a, 0xf1, 0xa8, 0xbf, 0x61, + 0xcb, 0x5f, 0x5b, 0xfe, 0x8f, 0xac, 0x8a, 0xf3, 0x41, 0xff, 0x6c, 0x56, + 0x56, 0xc6, 0xa1, 0x4b, 0x01, 0x84, 0x55, 0x46, 0x24, 0x09, 0xab, 0x8c, + 0x48, 0xb2, 0x36, 0x91, 0x88, 0x85, 0x16, 0x91, 0x30, 0x70, 0x24, 0x0c, + 0x79, 0x7f, 0xf3, 0x45, 0xab, 0xf1, 0xf1, 0x92, 0x79, 0xc4, 0x96, 0x64, + 0x5e, 0x96, 0x30, 0xaa, 0xd0, 0xb6, 0xc9, 0x18, 0x91, 0x26, 0xcd, 0x6f, + 0xd6, 0x03, 0x5a, 0xe9, 0x0d, 0x33, 0x08, 0x24, 0x3f, 0xa2, 0x51, 0x56, + 0x6f, 0x0d, 0x52, 0x8c, 0x76, 0x70, 0x95, 0xde, 0x30, 0x83, 0x40, 0xf2, + 0x23, 0x1a, 0x65, 0xf5, 0xd6, 0x20, 0xc5, 0x68, 0x07, 0xe7, 0x27, 0x88, + 0x8c, 0xac, 0x51, 0x4a, 0x54, 0xa3, 0x54, 0x2f, 0x94, 0x10, 0x84, 0xad, + 0x39, 0x64, 0x9a, 0x9e, 0xab, 0x73, 0x4f, 0x92, 0xf9, 0xb1, 0x14, 0xa3, + 0x00, 0x29, 0x84, 0x18, 0x22, 0x52, 0x88, 0x0e, 0x04, 0x90, 0x2d, 0x3b, + 0xf2, 0x73, 0xd2, 0xdc, 0xe6, 0x47, 0x69, 0xc8, 0x49, 0x96, 0xcc, 0xb1, + 0xa3, 0xa1, 0x69, 0x9a, 0xb6, 0x54, 0x13, 0xcb, 0x32, 0x96, 0xe1, 0x1b, + 0x9e, 0x6f, 0x5d, 0x33, 0x80, 0x07, 0xc6, 0x86, 0x12, 0xd6, 0x5b, 0xaa, + 0x32, 0xac, 0x16, 0x05, 0xc0, 0x8e, 0xc5, 0x7d, 0x86, 0x80, 0xd5, 0x4c, + 0x59, 0x1a, 0x15, 0x45, 0x28, 0x38, 0x2d, 0x8e, 0x25, 0x10, 0x93, 0x68, + 0xbf, 0x6d, 0x5e, 0x26, 0xa4, 0x96, 0x41, 0xe7, 0xa8, 0xb2, 0x6f, 0xe7, + 0xb3, 0xe5, 0xc0, 0xb0, 0x02, 0x2b, 0x0b, 0x4b, 0x0f, 0xd5, 0xda, 0x30, + 0x47, 0xe5, 0xb5, 0x80, 0xd3, 0xa3, 0x9b, 0x6d, 0x11, 0x70, 0x3c, 0xa2, + 0x80, 0xe3, 0x89, 0x41, 0xb7, 0x52, 0x5e, 0x03, 0xc0, 0x40, 0x03, 0x40, + 0x11, 0x00, 0xf0, 0x27, 0x02, 0x98, 0x17, 0x23, 0x10, 0x53, 0x01, 0x2a, + 0x74, 0xcc, 0x4c, 0x87, 0x46, 0x00, 0xa4, 0x99, 0x6c, 0x3a, 0xa0, 0xac, + 0x0a, 0x9e, 0x49, 0x55, 0x03, 0x04, 0xd2, 0x7f, 0x42, 0x32, 0x2c, 0x63, + 0xef, 0xff, 0x44, 0xd9, 0x2a, 0xc9, 0xa4, 0xaa, 0x01, 0x02, 0xe9, 0x3f, + 0x21, 0x19, 0x96, 0xb1, 0xf7, 0x7f, 0xa2, 0x6c, 0x95, 0x78, 0x41, 0x62, + 0x03, 0xb8, 0x33, 0xc0, 0xc2, 0x31, 0x0b, 0xc7, 0xd5, 0xe4, 0x11, 0x50, + 0xe9, 0x57, 0x8b, 0x2c, 0x06, 0xa0, 0x7c, 0x02, 0xb1, 0x40, 0x10, 0x44, + 0x22, 0x71, 0x14, 0x4f, 0x8c, 0x05, 0x41, 0x08, 0x12, 0xb6, 0x14, 0x44, + 0xc2, 0x28, 0x46, 0x98, 0xb8, 0x62, 0x65, 0x19, 0x0c, 0x15, 0xa1, 0x4a, + 0x44, 0xa3, 0x91, 0x9b, 0x97, 0x44, 0xaa, 0x58, 0xdd, 0x9d, 0x69, 0x06, + 0x70, 0xbe, 0x44, 0x16, 0x40, 0x3a, 0x29, 0x03, 0x30, 0x32, 0x03, 0x35, + 0x04, 0x50, 0xf0, 0x84, 0xb6, 0x6b, 0x01, 0x86, 0x6c, 0x4d, 0x31, 0x90, + 0xea, 0xb7, 0xcc, 0x6b, 0x50, 0xaf, 0x28, 0x40, 0x31, 0x32, 0x67, 0x45, + 0x3b, 0xcd, 0x21, 0x2b, 0xd3, 0xac, 0x5f, 0xc3, 0x6c, 0x46, 0x91, 0x39, + 0xa4, 0x76, 0x56, 0xe1, 0x8d, 0x6c, 0x87, 0x5d, 0x21, 0x5c, 0x40, 0xac, + 0x49, 0x2a, 0xd9, 0x48, 0x72, 0x72, 0x1a, 0x2c, 0xca, 0x65, 0x78, 0x33, + 0x79, 0x30, 0x21, 0x67, 0x90, 0xd0, 0x8a, 0x8e, 0x00, 0xe0, 0x9a, 0x7c, + 0x07, 0xcc, 0x78, 0x00, 0x40, 0xb1, 0x44, 0x19, 0x00, 0x21, 0x61, 0xb8, + 0x68, 0x48, 0x51, 0x85, 0x01, 0x32, 0xd9, 0x48, 0x03, 0x10, 0xf6, 0x3a, + 0xe7, 0x99, 0x74, 0x00, 0x5e, 0x89, 0xe5, 0x54, 0x0a, 0xa2, 0x1e, 0xe2, + 0x70, 0x97, 0x3a, 0xf6, 0xf7, 0x65, 0x99, 0xae, 0x5c, 0x1c, 0xaf, 0x12, + 0xcb, 0xa9, 0x14, 0x44, 0x3d, 0xc4, 0xe1, 0x2e, 0x75, 0xec, 0xef, 0xcb, + 0x32, 0x5d, 0xb9, 0x38, 0x9e, 0xe3, 0x4e, 0x1b, 0xa8, 0x87, 0x0d, 0x90, + 0x66, 0x9a, 0x9e, 0x10, 0xcd, 0xc8, 0x13, 0xc2, 0x72, 0xd5, 0x18, 0xc2, + 0x30, 0x31, 0x26, 0x00, 0x85, 0x31, 0x00, 0x0c, 0x84, 0x24, 0x12, 0x0a, + 0x06, 0x80, 0x34, 0x3f, 0x19, 0x38, 0x20, 0x93, 0x64, 0x65, 0x52, 0x39, + 0xb9, 0x83, 0x0c, 0xda, 0x12, 0x15, 0xa2, 0xba, 0x94, 0xa6, 0x10, 0x90, + 0xf3, 0x73, 0x3e, 0x02, 0xc0, 0x60, 0x15, 0x51, 0x00, 0xe4, 0x93, 0x04, + 0xcc, 0x70, 0xb2, 0x0a, 0x02, 0x10, 0x47, 0x3f, 0x1a, 0x66, 0x80, 0x20, + 0x73, 0x25, 0x00, 0xc0, 0xf6, 0x04, 0xac, 0x46, 0x78, 0x4a, 0x84, 0xf6, + 0x7b, 0x1a, 0x50, 0x1d, 0x67, 0x32, 0x87, 0x86, 0xb8, 0x38, 0x80, 0x9b, + 0x02, 0x62, 0x0b, 0xfe, 0x6d, 0x7c, 0x76, 0x11, 0x44, 0x03, 0x06, 0x2b, + 0x80, 0x69, 0x81, 0xde, 0x97, 0x6c, 0xcc, 0x89, 0x4b, 0xd8, 0xc4, 0x1e, + 0x93, 0x80, 0xa9, 0x32, 0xda, 0x5a, 0x12, 0x80, 0x17, 0x00, 0x38, 0x8b, + 0x35, 0x06, 0x00, 0x3c, 0x18, 0x01, 0xe9, 0x9e, 0x14, 0x80, 0xb6, 0x02, + 0x00, 0xdc, 0xcd, 0x0b, 0x00, 0x3c, 0x88, 0x03, 0xbc, 0x20, 0x62, 0x90, + 0x14, 0x00, 0x7e, 0x79, 0xc5, 0xd8, 0x43, 0xe2, 0x70, 0x0d, 0x7f, 0xe3, + 0x1a, 0xfb, 0x05, 0xf7, 0x7d, 0x4d, 0x1f, 0x99, 0xf4, 0x2e, 0xaf, 0x18, + 0x7b, 0x48, 0x1c, 0xae, 0xe1, 0xdf, 0xb8, 0xc6, 0x7e, 0xc1, 0x7d, 0x3f, + 0xd3, 0x97, 0x4c, 0x7a, 0x1e, 0x10, 0xb8, 0x01, 0x3d, 0xe0, 0x03, 0x20, + 0x69, 0x0a, 0x20, 0xad, 0xb2, 0x20, 0x8c, 0x05, 0x42, 0x58, 0x6e, 0x42, + 0xd6, 0x55, 0xd5, 0x24, 0x00, 0x10, 0xb3, 0x63, 0x84, 0x92, 0x13, 0x41, + 0x8e, 0x87, 0xa1, 0x01, 0xac, 0x78, 0x00, 0x08, 0x44, 0x08, 0x38, 0xc8, + 0x00, 0x20, 0x07, 0x32, 0x00, 0x64, 0x12, 0x1d, 0x6c, 0x26, 0x9b, 0x93, + 0x66, 0x1a, 0x10, 0x0d, 0xce, 0x0e, 0xd1, 0xe0, 0xdd, 0xd5, 0x02, 0x20, + 0x77, 0x60, 0xa6, 0x00, 0x00, 0xd2, 0x30, 0x9a, 0x00, 0xc0, 0xab, 0x0e, + 0x26, 0x0d, 0x00, 0x50, 0x00, 0x1e, 0x1a, 0x4c, 0x00, 0x62, 0x88, 0x8e, + 0x7b, 0x85, 0x67, 0xc9, 0x71, 0xf4, 0x6b, 0x52, 0x4e, 0x50, 0x6c, 0x76, + 0x5f, 0xcd, 0x02, 0xab, 0x86, 0xa8, 0x68, 0xa8, 0x41, 0x38, 0x09, 0xf4, + 0x9c, 0xe2, 0xaf, 0xcc, 0x02, 0x30, 0x15, 0xe0, 0x55, 0xf4, 0x57, 0x02, + 0x20, 0xe6, 0x15, 0x10, 0x0e, 0x04, 0xe0, 0x7c, 0x31, 0x00, 0x59, 0x00, + 0xc0, 0x1a, 0x62, 0x00, 0x86, 0x00, 0x80, 0xae, 0xae, 0xd4, 0x69, 0x00, + 0x00, 0x0d, 0x70, 0xd1, 0x46, 0xee, 0x80, 0x02, 0x00, 0x9e, 0x59, 0x75, + 0x32, 0x25, 0x37, 0x90, 0xae, 0xb8, 0x3d, 0xfc, 0x93, 0xc7, 0xfa, 0xb4, + 0xdd, 0x85, 0x7a, 0xda, 0xb4, 0x46, 0x1d, 0x21, 0xb7, 0x1f, 0x5d, 0x72, + 0x5c, 0xfe, 0xc9, 0x63, 0xfc, 0x6c, 0x77, 0xa1, 0x39, 0xcc, 0xf1, 0x01, + 0x68, 0x02, 0x40, 0xaa, 0x87, 0x4d, 0xf8, 0xe9, 0x2d, 0x88, 0x21, 0x95, + 0x30, 0x6a, 0x2a, 0xd1, 0x55, 0x94, 0x1a, 0x84, 0x50, 0x0c, 0x02, 0xe4, + 0x10, 0x00, 0x70, 0x24, 0x31, 0x36, 0x90, 0x62, 0x60, 0x09, 0xc4, 0x7c, + 0x80, 0x25, 0x2b, 0xcc, 0xcd, 0x2e, 0x44, 0xc8, 0xca, 0x18, 0x44, 0x6e, + 0xa2, 0x81, 0xae, 0x2d, 0x46, 0xa0, 0xed, 0xea, 0xde, 0x11, 0x00, 0x06, + 0x4e, 0xc8, 0x04, 0x00, 0x00, 0x30, 0x0f, 0x00, 0x58, 0x25, 0x22, 0x0f, + 0x00, 0x08, 0x00, 0x92, 0x01, 0x39, 0x29, 0x00, 0xcf, 0x61, 0x00, 0x61, + 0xc5, 0x50, 0x12, 0xf8, 0x64, 0x86, 0xec, 0x84, 0x1a, 0x15, 0x52, 0xee, + 0xdb, 0x14, 0x36, 0xd8, 0x68, 0x5b, 0x60, 0xa3, 0xe1, 0xa0, 0xa2, 0x02, + 0x30, 0x02, 0x4a, 0x65, 0xc0, 0x60, 0x80, 0x18, 0xe2, 0x00, 0x01, 0xb2, + 0x00, 0x7c, 0x00, 0x1b, 0xe0, 0xda, 0x5a, 0x00, 0x80, 0x15, 0x05, 0xc0, + 0x95, 0x42, 0x00, 0x20, 0x35, 0x00, 0x8c, 0xa2, 0x11, 0x00, 0x18, 0x04, + 0x00, 0xe8, 0x29, 0x8d, 0xd2, 0xa5, 0x01, 0x00, 0x5e, 0x59, 0xad, 0xd1, + 0x60, 0xb7, 0xe3, 0xcb, 0x67, 0xb5, 0xdb, 0x35, 0xfc, 0x0f, 0xc6, 0x5f, + 0xdb, 0x2b, 0x38, 0xf9, 0x2b, 0xab, 0x35, 0x3a, 0xec, 0x76, 0x7c, 0xf8, + 0xac, 0xf6, 0x7c, 0x0c, 0xff, 0xe3, 0x31, 0x60, 0x7a, 0xc5, 0xa4, 0xef, + 0x0d, 0x48, 0x66, 0x00, 0xe4, 0x09, 0xd5, 0xc6, 0x00, 0xe0, 0x46, 0x80, + 0x22, 0x1b, 0x81, 0xd7, 0x02, 0x02, 0x68, 0x41, 0x9c, 0x4a, 0x22, 0xf8, + 0x0c, 0x53, 0x14, 0x9f, 0x44, 0x00, 0xc2, 0xb8, 0x42, 0x27, 0x48, 0x11, + 0x9c, 0xe8, 0x10, 0x62, 0xb1, 0x50, 0x21, 0x00, 0x60, 0x4b, 0x8a, 0x60, + 0x19, 0x03, 0x60, 0x99, 0x18, 0x02, 0x06, 0x70, 0x10, 0x08, 0x00, 0x00, + 0xa0, 0xde, 0x32, 0x02, 0x00, 0x00, 0x2c, 0x38, 0x01, 0x01, 0x06, 0xf8, + 0x97, 0x1d, 0x6c, 0x14, 0x00, 0x14, 0x00, 0x31, 0x30, 0x49, 0x00, 0x40, + 0xc2, 0x10, 0x1a, 0x20, 0xe3, 0xd8, 0x90, 0xa0, 0x62, 0x6f, 0xab, 0x72, + 0x04, 0x38, 0x0d, 0x81, 0x9a, 0xb6, 0x8a, 0xbe, 0xa3, 0x17, 0xde, 0xc3, + 0x1a, 0x56, 0xf0, 0x3a, 0xa2, 0xe9, 0x4e, 0x38, 0x0e, 0xce, 0xc3, 0x16, + 0x60, 0x22, 0x0f, 0x06, 0x09, 0x3c, 0x00, 0xfa, 0x07, 0x80, 0x03, 0x00, + 0x28, 0x11, 0x03, 0x84, 0x8e, 0x8d, 0xab, 0x00, 0x40, 0x02, 0x00, 0xc0, + 0x02, 0x3a, 0x2c, 0x00, 0x00, 0x3e, 0x39, 0xed, 0x29, 0xb5, 0xdb, 0x6b, + 0xcc, 0x2b, 0xd8, 0xe3, 0x31, 0xfe, 0x57, 0xef, 0x5f, 0xc3, 0xe1, 0x79, + 0x72, 0x3a, 0xc6, 0xd4, 0x6e, 0xaf, 0x33, 0xaf, 0x60, 0x8c, 0xc7, 0xf8, + 0x3f, 0xae, 0x3e, 0x30, 0x50, 0xcf, 0x9e, 0x80, 0x16, 0xc8, 0x13, 0x9a, + 0x88, 0x12, 0x80, 0x1b, 0x01, 0xa2, 0x56, 0x07, 0x7c, 0x09, 0x80, 0x69, + 0x84, 0xb1, 0x00, 0x11, 0x9d, 0x9c, 0x11, 0x9d, 0x82, 0x7c, 0xe2, 0x00, + 0x44, 0x88, 0x26, 0x86, 0x89, 0x51, 0x85, 0x06, 0x11, 0x83, 0x00, 0x00, + 0x22, 0x00, 0x10, 0xfa, 0xda, 0x65, 0x80, 0x20, 0x0c, 0x05, 0x00, 0x00, + 0x00, 0xa0, 0x58, 0x60, 0x03, 0x40, 0x2a, 0x72, 0x3b, 0xd8, 0xa4, 0x69, + 0x9a, 0xd0, 0x90, 0x8b, 0x03, 0xa0, 0xdb, 0xbd, 0x0b, 0x00, 0x00, 0xa0, + 0x05, 0xc8, 0x5b, 0x99, 0x0b, 0x00, 0x10, 0x00, 0x27, 0x8a, 0x71, 0x55, + 0x49, 0xc0, 0xe2, 0xf9, 0x7e, 0x32, 0x5d, 0x42, 0x6b, 0xa4, 0x87, 0x54, + 0x89, 0xf9, 0x4c, 0xae, 0x64, 0xcb, 0xe6, 0x4e, 0x1c, 0x88, 0x79, 0x1d, + 0x51, 0x7b, 0x4a, 0x8d, 0x31, 0x94, 0xe1, 0x12, 0x4e, 0x15, 0x02, 0x36, + 0xc0, 0x0f, 0x80, 0x0d, 0x40, 0x79, 0x1a, 0x00, 0x40, 0xc7, 0x00, 0x00, + 0xf2, 0x09, 0x00, 0x04, 0x80, 0xfc, 0x8e, 0x00, 0x00, 0x30, 0x57, 0xd2, + 0x95, 0x02, 0x00, 0x5e, 0x39, 0x5d, 0x8b, 0x6b, 0x37, 0x97, 0xa6, 0xff, + 0x6d, 0xd1, 0xca, 0xcb, 0x3f, 0x36, 0xff, 0x29, 0xdb, 0x4b, 0xa8, 0x56, + 0x39, 0x5d, 0xaa, 0x6f, 0x37, 0x17, 0xaa, 0xff, 0x6d, 0x31, 0xca, 0xc3, + 0x3f, 0x36, 0xff, 0x0a, 0xdb, 0x4b, 0xa8, 0xea, 0x09, 0x08, 0x90, 0x27, + 0x54, 0x8b, 0x00, 0xe0, 0x57, 0x00, 0x00, 0x07, 0x81, 0x46, 0x12, 0x03, + 0x98, 0x96, 0x90, 0x67, 0x84, 0xe5, 0x07, 0x7c, 0x12, 0x01, 0x08, 0x63, + 0x81, 0xc2, 0x78, 0x80, 0x05, 0x0e, 0x31, 0x20, 0x00, 0xc0, 0x00, 0x0a, + 0x00, 0x00, 0x39, 0xb4, 0x00, 0x40, 0x23, 0x1b, 0x83, 0x66, 0xd3, 0x0c, + 0xa2, 0xb4, 0x05, 0xc0, 0x00, 0xa0, 0x58, 0xa2, 0x9e, 0x00, 0x88, 0x58, + 0xb4, 0x14, 0x00, 0xf2, 0x72, 0xb2, 0x00, 0x00, 0x00, 0xe7, 0x3d, 0xac, + 0x4c, 0x00, 0xa0, 0x40, 0x00, 0x80, 0x00, 0x34, 0x0c, 0x36, 0x49, 0x69, + 0x14, 0xf8, 0xe9, 0xe5, 0x98, 0x15, 0xbe, 0x85, 0x53, 0xf0, 0xf7, 0x12, + 0xb1, 0x6d, 0x1f, 0xde, 0x00, 0x81, 0x0d, 0x61, 0x88, 0x9b, 0xd3, 0xd8, + 0x4a, 0x08, 0x26, 0x28, 0x38, 0xe6, 0x30, 0x1b, 0x0b, 0xc0, 0x1b, 0xc0, + 0x09, 0x40, 0x0c, 0x80, 0x1e, 0x07, 0x00, 0x88, 0x67, 0x00, 0xe8, 0xdd, + 0xe4, 0x07, 0x20, 0x01, 0x00, 0x63, 0xa3, 0xf9, 0x0a, 0x00, 0xd2, 0x2c, + 0x01, 0x00, 0x3e, 0x39, 0x9d, 0x4a, 0x6d, 0x37, 0xd7, 0x9c, 0x8f, 0xde, + 0x69, 0xeb, 0xd0, 0x3f, 0x18, 0x9f, 0xe6, 0xbb, 0x32, 0x39, 0x9d, 0x4a, + 0x6d, 0x37, 0xd7, 0x9c, 0x8f, 0xde, 0x6e, 0xeb, 0xd0, 0x3f, 0x18, 0x9f, + 0xe6, 0xbb, 0x62, 0xfb, 0xb0, 0x00, 0x00, 0xdc, 0x08, 0x88, 0x6c, 0x22, + 0x80, 0x83, 0xc0, 0x82, 0x18, 0x50, 0x09, 0x39, 0x66, 0x84, 0xe5, 0x87, + 0x18, 0xa2, 0x02, 0x00, 0x00, 0x44, 0x82, 0x84, 0x60, 0x10, 0x81, 0x34, + 0x3f, 0xf2, 0x06, 0x9b, 0x6d, 0x26, 0x3f, 0x9a, 0xa5, 0xab, 0x03, 0x56, + 0x4a, 0x01, 0xc1, 0xa9, 0xa6, 0x0d, 0x0a, 0xa2, 0x4c, 0x72, 0x0b, 0xd1, + 0x30, 0xa0, 0x00, 0x30, 0x48, 0x9a, 0x05, 0x00, 0x00, 0xe0, 0xcd, 0x1d, + 0x90, 0x04, 0x00, 0x08, 0x00, 0x22, 0x77, 0xd0, 0x00, 0x00, 0x01, 0xcb, + 0x6a, 0x9a, 0x02, 0x22, 0xdf, 0x5f, 0x91, 0x42, 0x0b, 0x21, 0x48, 0xa8, + 0x78, 0xab, 0x8c, 0xd8, 0x94, 0xab, 0xf9, 0xd4, 0x01, 0x88, 0x16, 0xd5, + 0x2a, 0x9e, 0x71, 0xe4, 0xc4, 0x1d, 0xfb, 0x17, 0x33, 0x00, 0xae, 0xeb, + 0x1c, 0x00, 0x1f, 0x00, 0x16, 0x00, 0x06, 0xd1, 0x02, 0x00, 0xb8, 0x20, + 0xa0, 0xad, 0x5e, 0x0c, 0x00, 0x3e, 0x00, 0x48, 0x16, 0x32, 0x79, 0x02, + 0x00, 0x80, 0x7b, 0x8b, 0x03, 0x1e, 0x49, 0x9d, 0xea, 0xd8, 0x6e, 0x37, + 0xc5, 0xab, 0x33, 0xc6, 0x3a, 0xf4, 0x0f, 0xa1, 0xff, 0xa6, 0xa7, 0xf4, + 0x14, 0x49, 0x9d, 0xea, 0xd8, 0x6e, 0x37, 0xc5, 0xab, 0x33, 0xc6, 0x3a, + 0xf4, 0x0f, 0xa1, 0xff, 0xa6, 0xa7, 0xf4, 0xe4, 0x09, 0x48, 0xe9, 0xc3, + 0x02, 0x00, 0x70, 0x23, 0x40, 0x56, 0x6a, 0x80, 0x9f, 0x58, 0x10, 0xa7, + 0x25, 0xe4, 0x19, 0x35, 0x23, 0x38, 0x6a, 0x01, 0x11, 0x12, 0xa3, 0x41, + 0x10, 0x57, 0x42, 0x08, 0x0a, 0x00, 0x04, 0x00, 0xb2, 0x8d, 0x80, 0xe6, + 0xe7, 0x8a, 0x41, 0x92, 0xc8, 0xa6, 0x51, 0x05, 0x41, 0x0c, 0xc3, 0xb6, + 0x54, 0x41, 0x41, 0xa2, 0x5b, 0x2b, 0x80, 0xae, 0x0c, 0x00, 0x90, 0x19, + 0xb4, 0x05, 0x00, 0xa0, 0x00, 0x30, 0xad, 0xfc, 0x4c, 0x01, 0x40, 0x01, + 0x20, 0x2f, 0x29, 0x00, 0xda, 0x80, 0x9d, 0xa8, 0x11, 0x34, 0xf2, 0x23, + 0x42, 0x44, 0x5b, 0x4c, 0x29, 0x93, 0x42, 0xd6, 0xca, 0x95, 0x28, 0xc0, + 0x3a, 0x83, 0x62, 0xfa, 0x3d, 0x65, 0x7f, 0xdb, 0x8e, 0x02, 0x53, 0xe4, + 0xac, 0xff, 0x0c, 0x8f, 0xf3, 0x6f, 0x2b, 0x58, 0xed, 0x98, 0x21, 0x90, + 0xce, 0xb3, 0x4d, 0x46, 0x1d, 0xc1, 0x01, 0x37, 0x00, 0x4a, 0x83, 0xe9, + 0x66, 0x01, 0x00, 0x38, 0x80, 0xf5, 0xe1, 0x00, 0x35, 0x0d, 0x00, 0x8d, + 0xf9, 0xb9, 0xc4, 0x32, 0x00, 0x80, 0x77, 0x2d, 0x02, 0x1e, 0x49, 0x3d, + 0xc7, 0x32, 0xdb, 0x5c, 0xb5, 0xfe, 0xd7, 0x27, 0x73, 0x19, 0xff, 0x87, + 0xca, 0xbf, 0xa6, 0x43, 0x7a, 0x8c, 0xa4, 0x9e, 0x63, 0x99, 0x6d, 0xae, + 0x5a, 0xff, 0xeb, 0x93, 0xb9, 0x8c, 0xff, 0x43, 0xe5, 0x5f, 0xd3, 0x21, + 0x3d, 0x3a, 0xc8, 0x13, 0xaa, 0x8d, 0x05, 0x00, 0x37, 0x02, 0x64, 0xd6, + 0x00, 0x5f, 0x12, 0x40, 0x64, 0x41, 0x0c, 0x69, 0xec, 0x6c, 0x16, 0x1e, + 0x19, 0x06, 0x2b, 0x46, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x04, 0x40, 0x80, + 0x01, 0x00, 0x80, 0xc1, 0x34, 0xd0, 0xbc, 0x4c, 0x36, 0x2f, 0x27, 0x93, + 0xe6, 0xa7, 0xcd, 0x0e, 0x92, 0x48, 0xf3, 0x22, 0x2f, 0x11, 0x88, 0x18, + 0xc3, 0x13, 0xc8, 0xb4, 0x02, 0x00, 0x00, 0x50, 0xa3, 0x41, 0x53, 0x00, + 0x20, 0x00, 0x30, 0x30, 0x49, 0xa0, 0xda, 0xe0, 0x70, 0x81, 0x10, 0x69, + 0x5e, 0x12, 0x82, 0x82, 0x19, 0x1e, 0xc4, 0x59, 0x47, 0xee, 0x8a, 0x75, + 0xfd, 0xd1, 0x52, 0xa8, 0xbf, 0x21, 0xb7, 0x37, 0x67, 0xad, 0xe1, 0xae, + 0x8a, 0x02, 0x85, 0xdc, 0x77, 0xc0, 0x58, 0x8e, 0x7c, 0x82, 0x34, 0x09, + 0x3e, 0x21, 0x0e, 0x73, 0x24, 0x60, 0x68, 0x07, 0xc8, 0x00, 0x40, 0x2f, + 0x82, 0x66, 0x51, 0x9e, 0x02, 0x09, 0xd2, 0x29, 0xe0, 0x31, 0xc8, 0xa8, + 0xb1, 0x84, 0x04, 0x15, 0xae, 0x01, 0x00, 0x1e, 0x49, 0xdd, 0x7b, 0x9b, + 0xa5, 0x8b, 0xe5, 0xe3, 0xa5, 0xb4, 0x7e, 0xe5, 0x1f, 0x9c, 0xff, 0x86, + 0xbb, 0x31, 0x44, 0x52, 0xf7, 0xde, 0x66, 0xe9, 0x62, 0xf9, 0x78, 0x28, + 0xad, 0x5f, 0xf9, 0x07, 0x8e, 0x7f, 0xc3, 0xdd, 0x18, 0x5c, 0x13, 0x00, + 0xf2, 0x84, 0x86, 0x28, 0x01, 0xb8, 0x11, 0x20, 0xeb, 0x05, 0x70, 0x10, + 0xf0, 0x41, 0x0c, 0xa9, 0x24, 0x39, 0xfb, 0x58, 0x89, 0x61, 0x54, 0x71, + 0xc5, 0x8d, 0x01, 0x2c, 0xe4, 0xe0, 0x00, 0x00, 0x20, 0x00, 0x20, 0x86, + 0xbb, 0x23, 0x60, 0x30, 0x0d, 0x34, 0x3f, 0x32, 0x83, 0x64, 0x23, 0x06, + 0x9b, 0x0e, 0x27, 0x0b, 0xa8, 0xfc, 0x00, 0x80, 0xec, 0xc0, 0xa4, 0x00, + 0x00, 0x00, 0x8e, 0x61, 0x65, 0x02, 0x00, 0xd0, 0xcc, 0xa0, 0x2d, 0x44, + 0x80, 0x0f, 0x93, 0x1a, 0x9a, 0xb1, 0xa0, 0xad, 0xc2, 0xed, 0x8d, 0x16, + 0x47, 0x90, 0xcd, 0x46, 0xa2, 0xc5, 0x84, 0x94, 0x1f, 0xfc, 0xc6, 0x8c, + 0xc0, 0x21, 0x90, 0x33, 0x56, 0x6f, 0x91, 0x29, 0x8c, 0xbe, 0x18, 0x31, + 0xe6, 0xff, 0xfe, 0x52, 0x72, 0x94, 0xad, 0xfe, 0x21, 0x87, 0x03, 0x20, + 0x7d, 0x18, 0x86, 0xdd, 0x00, 0x1d, 0x47, 0xd2, 0x82, 0x62, 0x48, 0x6c, + 0x76, 0x56, 0x83, 0xd0, 0x15, 0x47, 0x08, 0x1b, 0x80, 0x3b, 0x85, 0xfb, + 0x64, 0x00, 0x5e, 0x49, 0x3d, 0xc6, 0x16, 0x99, 0x2f, 0x8f, 0x5f, 0xca, + 0xac, 0x63, 0xbf, 0x40, 0x35, 0xaf, 0xe9, 0x0a, 0x9e, 0x26, 0xa9, 0x7b, + 0x6f, 0x91, 0xf9, 0xf2, 0xf8, 0xa5, 0xcc, 0x3a, 0xf6, 0x0b, 0x54, 0xf3, + 0x9a, 0xae, 0xe0, 0xc9, 0x13, 0x90, 0x12, 0x79, 0x42, 0xbd, 0x00, 0xc0, + 0x8d, 0x80, 0xd4, 0x34, 0x80, 0x83, 0x48, 0x0d, 0x2d, 0xf9, 0xff, 0xb8, + 0x00, 0x81, 0x23, 0x44, 0x23, 0x49, 0x46, 0xc9, 0xc7, 0x22, 0x60, 0x61, + 0x05, 0x00, 0x40, 0x00, 0x40, 0x90, 0x62, 0xc4, 0x30, 0x98, 0x24, 0xcd, + 0xc6, 0x80, 0x68, 0x02, 0x22, 0xce, 0xb9, 0x33, 0x6c, 0x20, 0xf2, 0x0b, + 0x00, 0x83, 0x36, 0x01, 0x00, 0x00, 0xc0, 0x22, 0x2f, 0x00, 0x80, 0xe0, + 0x00, 0xd1, 0xc1, 0x08, 0x10, 0x02, 0x30, 0xda, 0x2c, 0x1f, 0x7f, 0xff, + 0xd4, 0xf5, 0x76, 0x49, 0x91, 0xaa, 0x5a, 0x97, 0x58, 0x09, 0x61, 0x71, + 0x6d, 0x92, 0x7e, 0x58, 0x56, 0x0b, 0x3e, 0x85, 0x27, 0xab, 0x96, 0xea, + 0xfc, 0xa2, 0xfd, 0x52, 0x2e, 0x7e, 0xa5, 0x1f, 0x33, 0xf9, 0x52, 0xae, + 0xae, 0x34, 0xc8, 0xfb, 0x7c, 0x92, 0x3a, 0x5c, 0xbb, 0xd4, 0xfd, 0x43, + 0x88, 0x8a, 0x52, 0xd5, 0x24, 0x1f, 0x90, 0x2f, 0x47, 0xda, 0x2e, 0xb9, + 0x81, 0xa6, 0xef, 0x74, 0x5c, 0x60, 0x55, 0xef, 0x23, 0xb4, 0x90, 0xcb, + 0x2f, 0xa6, 0x30, 0x58, 0x00, 0x00, 0xfe, 0x48, 0xbd, 0xf4, 0x38, 0xc9, + 0x31, 0x79, 0xfd, 0x2e, 0x4c, 0x2b, 0xff, 0x78, 0x59, 0x29, 0x4c, 0xaf, + 0xc8, 0x23, 0xf5, 0xd2, 0xfd, 0x24, 0xc7, 0xc9, 0xeb, 0x77, 0x61, 0xc7, + 0x95, 0x7f, 0xbc, 0x2c, 0x14, 0xa6, 0x67, 0xf4, 0xe4, 0x0d, 0x48, 0x24, + 0xe0, 0x06, 0xf4, 0x80, 0x1b, 0x01, 0xa2, 0x5e, 0x02, 0x93, 0x58, 0x28, + 0x48, 0x9f, 0x50, 0x7f, 0x36, 0x0e, 0x2d, 0x20, 0x4c, 0x08, 0xa2, 0x8a, + 0x25, 0x0a, 0x13, 0x0d, 0x12, 0xa2, 0x0e, 0x65, 0x30, 0x06, 0x11, 0x38, + 0x21, 0x21, 0x62, 0x30, 0x02, 0x01, 0x00, 0x31, 0x1a, 0x0c, 0x74, 0xef, + 0x9e, 0xb6, 0xa8, 0x4d, 0x16, 0x00, 0x58, 0x5d, 0x49, 0x00, 0x00, 0x09, + 0x00, 0x88, 0x2b, 0xbf, 0x09, 0x00, 0x50, 0x01, 0x03, 0x00, 0x73, 0x35, + 0x40, 0xd7, 0xc9, 0x5f, 0xbd, 0xfd, 0x0c, 0xcc, 0x32, 0xe9, 0xb0, 0x04, + 0xd2, 0x56, 0x2e, 0xcd, 0x68, 0x6f, 0xd6, 0xe4, 0x61, 0xef, 0x87, 0x13, + 0x3d, 0x8c, 0xa8, 0x4f, 0x4e, 0x88, 0xca, 0x89, 0x84, 0xe4, 0x34, 0xc8, + 0x02, 0xf6, 0x47, 0x7c, 0x59, 0xd7, 0x85, 0xcb, 0xae, 0xd7, 0xf3, 0xa8, + 0xff, 0x58, 0x6f, 0x80, 0x8d, 0x81, 0x42, 0xe5, 0x08, 0x21, 0xc4, 0xc6, + 0x30, 0x64, 0x3b, 0x98, 0x61, 0x57, 0x70, 0x01, 0xeb, 0x4f, 0x88, 0x2b, + 0xe9, 0x04, 0x18, 0x96, 0x06, 0x58, 0x0e, 0x7d, 0xa0, 0x6b, 0xb1, 0x60, + 0x79, 0x12, 0x00, 0xde, 0x48, 0xdd, 0xce, 0x71, 0x9e, 0x65, 0x93, 0xeb, + 0x53, 0x6e, 0x71, 0xe5, 0x57, 0xfe, 0xf5, 0xd3, 0x70, 0x79, 0x6a, 0xa4, + 0x6e, 0xe7, 0x38, 0xcf, 0xb2, 0xc9, 0xf5, 0x29, 0x0f, 0x2b, 0xff, 0xe4, + 0xd4, 0x7f, 0xc3, 0xe5, 0xd9, 0x13, 0x10, 0xf8, 0x08, 0x75, 0x00, 0xb8, + 0x11, 0x20, 0xb2, 0x0e, 0xf8, 0x89, 0xa6, 0x31, 0x8a, 0x65, 0x64, 0xfc, + 0x63, 0x5b, 0x80, 0xe3, 0x84, 0xf1, 0x84, 0x58, 0x34, 0xb0, 0x8c, 0x85, + 0x10, 0x32, 0xb6, 0x01, 0x00, 0x37, 0x51, 0x18, 0xc8, 0xca, 0x8f, 0x9c, + 0x9c, 0x0c, 0xd9, 0x54, 0x44, 0x63, 0x69, 0x25, 0x01, 0x29, 0x64, 0x5f, + 0x01, 0x20, 0x5d, 0x41, 0x04, 0x00, 0x28, 0xe1, 0x00, 0x80, 0x7b, 0x5c, + 0x05, 0x00, 0x04, 0x32, 0xa4, 0x22, 0x80, 0xbc, 0x24, 0x8d, 0x40, 0x8c, + 0x18, 0x78, 0xc7, 0x18, 0x71, 0x56, 0x30, 0x8c, 0x0f, 0x9b, 0x85, 0x08, + 0xaa, 0xdd, 0x10, 0x0d, 0xc8, 0x0f, 0x0b, 0xde, 0xea, 0xef, 0xea, 0xfd, + 0xa9, 0xcd, 0x76, 0x4e, 0x6a, 0xd3, 0x5c, 0xc7, 0x4a, 0xc8, 0x6a, 0x7e, + 0x30, 0xb6, 0xe3, 0x7e, 0x7f, 0x57, 0x13, 0x08, 0x6a, 0x98, 0x72, 0x01, + 0xb1, 0xed, 0x9d, 0xb0, 0xf9, 0xf6, 0xb9, 0x3e, 0xce, 0xc5, 0x68, 0x36, + 0xbe, 0x40, 0x58, 0xca, 0xa3, 0x32, 0xa4, 0x20, 0x7f, 0xa9, 0x12, 0xb8, + 0x43, 0x75, 0xd1, 0x12, 0xb6, 0x1e, 0xcd, 0x08, 0x56, 0x00, 0x3e, 0x49, + 0xbd, 0x55, 0x1f, 0xb5, 0xcb, 0xe3, 0x77, 0x8a, 0xc1, 0x3f, 0x8b, 0xe5, + 0xd3, 0xf4, 0x0a, 0x9e, 0x27, 0xa9, 0xb7, 0xea, 0xa3, 0x69, 0x79, 0xfc, + 0x2e, 0x17, 0x83, 0x7f, 0x96, 0x90, 0x4f, 0xd3, 0x53, 0x7a, 0x76, 0x0f, + 0x88, 0xe1, 0x96, 0x00, 0x6e, 0x04, 0x88, 0xa2, 0x0a, 0xf8, 0x12, 0x00, + 0x61, 0x54, 0xfa, 0xd9, 0x7f, 0x86, 0xe3, 0x16, 0x10, 0x04, 0x56, 0x34, + 0xee, 0x50, 0x60, 0x11, 0xc4, 0xa3, 0x06, 0xe1, 0x40, 0x00, 0x00, 0x32, + 0x11, 0x03, 0x94, 0x49, 0x5b, 0x00, 0x00, 0x40, 0x66, 0xb3, 0xd4, 0x40, + 0xd3, 0xd5, 0x2a, 0x26, 0x39, 0xb8, 0xce, 0xa0, 0xfb, 0x12, 0x00, 0x90, + 0xa2, 0x03, 0x00, 0xde, 0xd6, 0x03, 0x80, 0x35, 0x19, 0xbf, 0xd0, 0x80, + 0x2e, 0x03, 0x00, 0x1f, 0x0c, 0x1d, 0x69, 0x76, 0xc0, 0x19, 0x49, 0x17, + 0xd1, 0x36, 0x6d, 0x9a, 0xb8, 0x25, 0xa3, 0x62, 0x1c, 0x4b, 0xd4, 0x7f, + 0x4b, 0xcb, 0xdf, 0x66, 0x4b, 0x11, 0x6f, 0x80, 0x32, 0xd6, 0x5c, 0xfe, + 0xfc, 0x33, 0xf9, 0xcb, 0xdf, 0x69, 0xdb, 0x2c, 0xcb, 0x3a, 0x42, 0xf8, + 0x21, 0x4a, 0x18, 0x2c, 0x76, 0x89, 0xf3, 0xb2, 0x9d, 0xa9, 0x9a, 0xe5, + 0x13, 0xb6, 0xca, 0x0d, 0xc7, 0x63, 0xf5, 0xdb, 0x80, 0xc9, 0xb2, 0xaa, + 0xe8, 0xfa, 0x72, 0xf0, 0x67, 0x4a, 0x21, 0x8f, 0x26, 0x64, 0xb8, 0x08, + 0x19, 0xc3, 0x69, 0x71, 0xb6, 0xd7, 0x06, 0x00, 0xde, 0x48, 0xbd, 0x77, + 0xd3, 0x0e, 0xc3, 0xe4, 0xf3, 0x17, 0x25, 0x8e, 0xfd, 0xe3, 0x2d, 0x25, + 0x32, 0x3c, 0x3d, 0x36, 0x52, 0x2f, 0xdd, 0xb7, 0x79, 0x36, 0xf9, 0xf8, + 0x14, 0x4a, 0x1c, 0xff, 0xe7, 0x14, 0xfe, 0x1a, 0x9e, 0x1e, 0x3d, 0x01, + 0x89, 0x1b, 0xd0, 0x06, 0x6e, 0x04, 0x50, 0x2b, 0x81, 0xc9, 0x2c, 0x94, + 0x20, 0x8c, 0xfc, 0x4f, 0x70, 0x68, 0x01, 0x8e, 0x05, 0x91, 0x58, 0xd4, + 0x8a, 0x00, 0x76, 0x92, 0x41, 0x44, 0x06, 0x64, 0x0b, 0x00, 0x50, 0x50, + 0x00, 0x20, 0x62, 0x50, 0xd9, 0xe6, 0x36, 0x10, 0x4d, 0x23, 0x9e, 0x86, + 0xe7, 0x00, 0x38, 0x01, 0xc0, 0xca, 0xca, 0x0c, 0x00, 0x20, 0x8a, 0x17, + 0x80, 0x27, 0xcd, 0x2b, 0x00, 0x30, 0xb8, 0xe6, 0x8c, 0x03, 0xb2, 0xaa, + 0x28, 0x35, 0xc3, 0xb3, 0xad, 0xbb, 0x55, 0x08, 0xca, 0xe6, 0x9b, 0x8b, + 0xf2, 0xa7, 0xa3, 0x40, 0xb9, 0xed, 0xd7, 0xd5, 0x12, 0xcc, 0x3e, 0x62, + 0x62, 0x5f, 0x65, 0x2d, 0x97, 0xcd, 0x04, 0x5b, 0x77, 0x33, 0xfb, 0x48, + 0xad, 0xfd, 0x11, 0xf7, 0x42, 0x86, 0x64, 0xdc, 0x4a, 0x6d, 0x49, 0x89, + 0xce, 0x96, 0x22, 0x7a, 0x60, 0x09, 0x91, 0xec, 0xaa, 0x2d, 0x64, 0x46, + 0xf0, 0x65, 0x77, 0x66, 0x2f, 0x9d, 0x61, 0x31, 0x81, 0x26, 0xf2, 0x2d, + 0x41, 0x91, 0x74, 0xd6, 0x84, 0x49, 0x9d, 0xbe, 0xe1, 0x05, 0x20, 0x06, + 0x00, 0xbe, 0x48, 0xbd, 0x14, 0xd7, 0x5a, 0x99, 0x7c, 0xfe, 0x26, 0x44, + 0xd3, 0x3f, 0xa7, 0xf0, 0xd7, 0xf0, 0x24, 0x92, 0x7a, 0x6f, 0x2e, 0x56, + 0x26, 0x1f, 0xbf, 0x09, 0xd1, 0xf4, 0xcf, 0x09, 0xfc, 0x35, 0x3c, 0xf1, + 0x04, 0x2b, 0xa5, 0x0f, 0x40, 0x1d, 0x00, 0x37, 0x02, 0xa8, 0x01, 0x48, + 0xd3, 0x33, 0x5e, 0x46, 0x92, 0xff, 0x2c, 0x3e, 0xd6, 0x02, 0xe7, 0x0b, + 0x51, 0x61, 0x0c, 0xc5, 0x02, 0xc0, 0x21, 0x3a, 0x02, 0x42, 0x11, 0x00, + 0x20, 0x98, 0x00, 0xc0, 0x60, 0x06, 0x26, 0x99, 0x68, 0xda, 0x26, 0xa9, + 0x6c, 0x88, 0x05, 0x7c, 0x2e, 0x5e, 0x00, 0x90, 0x97, 0x4d, 0x01, 0x00, + 0x80, 0x0b, 0x00, 0x00, 0x63, 0x39, 0xc0, 0x0c, 0xe1, 0xa9, 0x80, 0x4a, + 0x26, 0xfe, 0x84, 0x34, 0x6d, 0xd3, 0xbc, 0x96, 0x6a, 0xcc, 0x30, 0xb4, + 0x33, 0xe5, 0xff, 0x76, 0xd4, 0xc8, 0xda, 0x6f, 0xc5, 0x9c, 0x0e, 0x49, + 0x5d, 0x6c, 0x7b, 0x3f, 0x96, 0x26, 0x49, 0x29, 0xb6, 0x61, 0x4f, 0xd1, + 0xa3, 0x71, 0x33, 0x10, 0x75, 0xeb, 0x75, 0xa4, 0xe4, 0x80, 0x2b, 0x11, + 0xb0, 0x64, 0x06, 0x6c, 0x02, 0xb1, 0x62, 0x32, 0x47, 0x63, 0x3a, 0x83, + 0x9c, 0x21, 0xab, 0x24, 0x0c, 0x6d, 0x56, 0xe2, 0xe7, 0xc9, 0xab, 0xac, + 0x7f, 0xca, 0x9f, 0x9c, 0x7f, 0x7f, 0x38, 0xdd, 0xad, 0x3f, 0x1f, 0xaf, + 0xa1, 0x17, 0x8c, 0x54, 0xeb, 0xf8, 0xa3, 0x28, 0x89, 0xe8, 0x45, 0x79, + 0x00, 0xfe, 0x48, 0xbd, 0xa4, 0x94, 0x44, 0xf3, 0x7a, 0x08, 0x0c, 0xff, + 0x43, 0xe8, 0xd7, 0x70, 0xf7, 0xf4, 0x48, 0xbd, 0xa4, 0x94, 0x84, 0xf3, + 0x7a, 0x08, 0x0c, 0xff, 0x43, 0xe8, 0xd7, 0x70, 0xc7, 0x41, 0x9e, 0x50, + 0x34, 0x91, 0x00, 0xd4, 0xc3, 0x04, 0x48, 0x29, 0x81, 0x9a, 0x5e, 0x10, + 0xf6, 0xff, 0x18, 0x20, 0x44, 0x05, 0x0c, 0x00, 0x00, 0x80, 0xa2, 0x84, + 0x00, 0x10, 0x04, 0x18, 0x00, 0x00, 0x18, 0x4c, 0x83, 0x66, 0x9a, 0xcd, + 0xe6, 0x65, 0x32, 0x49, 0x7e, 0x22, 0x1d, 0x4c, 0x33, 0xa5, 0x41, 0x1b, + 0x4c, 0xb4, 0x55, 0x00, 0x63, 0xd8, 0x07, 0x00, 0x17, 0x59, 0x5b, 0x7d, + 0x90, 0xba, 0x1a, 0x00, 0x90, 0x91, 0xf4, 0x4e, 0x12, 0x18, 0x1e, 0x89, + 0x2e, 0x34, 0x41, 0x33, 0x58, 0x44, 0x5c, 0x7b, 0xbf, 0x96, 0xbc, 0x37, + 0x0b, 0xd9, 0x06, 0x48, 0x9a, 0x79, 0x94, 0x85, 0xc9, 0x8e, 0x95, 0xaf, + 0xbd, 0x75, 0x79, 0xe9, 0x27, 0x5c, 0x74, 0x45, 0x26, 0x59, 0x8a, 0xa5, + 0xc8, 0xfc, 0x93, 0x4f, 0xf2, 0xfd, 0x85, 0x79, 0xae, 0xbc, 0xb9, 0xb4, + 0xca, 0xd6, 0x65, 0x3e, 0x09, 0xd5, 0x0b, 0x7e, 0x1d, 0x14, 0x7c, 0x54, + 0x15, 0x4c, 0xa4, 0x01, 0xf3, 0x45, 0xcc, 0x97, 0x3e, 0x9b, 0x24, 0x66, + 0x67, 0x2e, 0xe7, 0xb2, 0xbe, 0xe0, 0x2f, 0xb2, 0x2a, 0x2b, 0x9b, 0x54, + 0xb0, 0x32, 0x1c, 0x98, 0x9b, 0x3f, 0xa2, 0xe4, 0x01, 0xde, 0x28, 0xbd, + 0x75, 0x3f, 0x1b, 0xac, 0xf3, 0xdb, 0xa2, 0x32, 0xfc, 0x57, 0xf5, 0xd3, + 0x40, 0xc6, 0x8d, 0xd4, 0x5b, 0xf7, 0xb3, 0xc1, 0x36, 0xbf, 0x2d, 0x2a, + 0xc3, 0x7f, 0x35, 0x3f, 0x0d, 0xc4, 0xb3, 0x27, 0x80, 0x3e, 0xf2, 0x84, + 0x7a, 0x35, 0x00, 0xf8, 0x00, 0x20, 0xd5, 0x00, 0xd2, 0x84, 0x29, 0x79, + 0xb2, 0xff, 0x19, 0x0e, 0x2d, 0xc0, 0x91, 0x20, 0x22, 0x1c, 0x0b, 0x12, + 0xc0, 0x46, 0xd8, 0x00, 0x00, 0x00, 0x80, 0x63, 0x8b, 0x80, 0x81, 0x39, + 0xf2, 0xa5, 0xda, 0x88, 0x34, 0x2d, 0xd0, 0x32, 0x00, 0xbc, 0xc1, 0x7a, + 0x00, 0xa4, 0x03, 0x93, 0x02, 0x80, 0xa1, 0x6e, 0x03, 0x80, 0xb7, 0xf5, + 0x00, 0x1d, 0xb7, 0xb6, 0x32, 0xb3, 0xaa, 0x60, 0x44, 0xec, 0x6a, 0x00, + 0x43, 0xcd, 0xb3, 0x7e, 0x3c, 0x98, 0xc1, 0x62, 0x9a, 0x7d, 0x32, 0xd6, + 0xeb, 0xa5, 0xf7, 0x6a, 0x9f, 0xe4, 0xc6, 0xfe, 0xd7, 0x0a, 0x04, 0xbc, + 0xda, 0x5d, 0xed, 0x8f, 0xb6, 0x62, 0xfa, 0xba, 0x5f, 0x65, 0x8b, 0xb0, + 0x71, 0x9e, 0xbf, 0x08, 0xc5, 0x99, 0xf5, 0x07, 0x79, 0x79, 0xe8, 0x64, + 0x9b, 0xda, 0xc7, 0xb1, 0xc9, 0x40, 0x51, 0x2f, 0x86, 0x61, 0xc4, 0x75, + 0x0b, 0x1e, 0x35, 0xe7, 0xdc, 0x76, 0x86, 0x1c, 0x55, 0xab, 0xae, 0xd8, + 0x42, 0x71, 0x91, 0xcf, 0x62, 0x38, 0x0d, 0xb1, 0xcf, 0x0a, 0x43, 0xf0, + 0x8a, 0x82, 0x3f, 0xbd, 0x09, 0x00, 0xde, 0x48, 0xbd, 0x26, 0x9f, 0x64, + 0x96, 0x8f, 0x97, 0xda, 0xe2, 0xd8, 0x3f, 0x18, 0x8f, 0xb2, 0xe7, 0x46, + 0xea, 0x35, 0xfa, 0x58, 0xb3, 0xbc, 0x5e, 0x72, 0x8b, 0x63, 0xff, 0x60, + 0x7d, 0x0d, 0xe0, 0xd9, 0x1b, 0x40, 0x4a, 0xc0, 0x47, 0x68, 0x28, 0x4b, + 0x00, 0xea, 0xc2, 0x06, 0x14, 0x63, 0x84, 0x11, 0x46, 0x66, 0x9f, 0x8d, + 0x43, 0x0b, 0x99, 0x78, 0x18, 0x44, 0x43, 0x13, 0x53, 0x58, 0x0e, 0x6b, + 0x04, 0x76, 0x65, 0x64, 0x00, 0x04, 0x41, 0x06, 0x00, 0x00, 0x00, 0x1c, + 0x9d, 0x24, 0x8d, 0x00, 0x58, 0xa0, 0x0a, 0x6a, 0x83, 0xd5, 0x6e, 0x11, + 0xa2, 0x80, 0xfa, 0x02, 0x94, 0x95, 0xc0, 0x65, 0x30, 0xf4, 0x08, 0x64, + 0x57, 0xab, 0xd9, 0x93, 0xce, 0xf8, 0xa4, 0xb0, 0x66, 0x48, 0x88, 0x5a, + 0x7b, 0x31, 0x78, 0xd9, 0xb2, 0x30, 0xb3, 0xdb, 0xa4, 0x72, 0xa4, 0x73, + 0xf1, 0xef, 0x06, 0xdb, 0x70, 0xaf, 0x6d, 0xf3, 0x0c, 0xc9, 0x16, 0x7b, + 0xd0, 0x51, 0xb0, 0x4b, 0x3b, 0xcd, 0xaf, 0xad, 0xa9, 0xd8, 0xec, 0x0c, + 0x0e, 0xe9, 0x91, 0xb1, 0xbd, 0x33, 0x9b, 0x60, 0x09, 0x39, 0x2b, 0x96, + 0x19, 0xe7, 0xa3, 0x33, 0x3f, 0x4e, 0xcb, 0x18, 0x0c, 0x4a, 0xc9, 0x12, + 0xc4, 0xae, 0x00, 0x4a, 0xc7, 0x0d, 0x6b, 0xb0, 0x38, 0x77, 0x3b, 0x2a, + 0xb4, 0xc9, 0x10, 0x5c, 0xd8, 0x7c, 0x34, 0x0b, 0x03, 0x01, 0x4f, 0x67, + 0x67, 0x53, 0x00, 0x00, 0x40, 0xab, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc1, 0x44, 0x9b, 0x2b, 0x03, 0x00, 0x00, 0x00, 0xad, 0x53, 0xc1, 0xda, + 0x16, 0xc1, 0xc6, 0xc3, 0xcb, 0xc1, 0xc5, 0xca, 0xc1, 0xc8, 0xc3, 0xc0, + 0xbe, 0xc2, 0xcb, 0xc0, 0xc4, 0xb8, 0xc3, 0xc5, 0xbf, 0xb7, 0xc5, 0x9e, + 0x48, 0xdd, 0x8e, 0x7e, 0xda, 0x58, 0x1f, 0x3e, 0xc4, 0x62, 0xe8, 0xd5, + 0x3c, 0x5f, 0x03, 0x21, 0x91, 0xba, 0x1d, 0xfd, 0xb4, 0x49, 0x3e, 0xbc, + 0xc4, 0x62, 0xe8, 0xfd, 0xef, 0x67, 0x40, 0x3c, 0x81, 0x05, 0xf2, 0x84, + 0xb2, 0x21, 0x00, 0xf8, 0x00, 0x40, 0x1d, 0xa0, 0x6a, 0x0e, 0x25, 0x09, + 0xfb, 0x4f, 0x30, 0x16, 0x58, 0x72, 0x2c, 0x8c, 0x28, 0x31, 0x2a, 0x80, + 0x18, 0x1d, 0x0c, 0x00, 0x00, 0x00, 0x55, 0x31, 0x00, 0x90, 0x93, 0xcd, + 0x49, 0x2a, 0x72, 0xf3, 0x44, 0xb4, 0x74, 0x4e, 0x18, 0x80, 0x31, 0x4a, + 0x80, 0xf3, 0x18, 0x00, 0x84, 0xb9, 0x91, 0x56, 0x5c, 0x2f, 0x43, 0x10, + 0x40, 0x9b, 0xfd, 0xf9, 0x12, 0xbd, 0x86, 0x44, 0xe4, 0xda, 0x6b, 0x1b, + 0x71, 0xc9, 0x35, 0x44, 0x15, 0x4b, 0x6c, 0xac, 0x0b, 0x1b, 0x54, 0x07, + 0xe1, 0x4c, 0xe4, 0x2e, 0x52, 0x38, 0x99, 0xe4, 0x4c, 0x80, 0x89, 0x9c, + 0xbd, 0xfa, 0x30, 0xcd, 0x90, 0xd9, 0x9f, 0xb0, 0x0e, 0x1b, 0x67, 0xec, + 0xe5, 0x82, 0xaf, 0x8d, 0x91, 0xa5, 0xb6, 0xb5, 0x07, 0x4e, 0x83, 0x21, + 0x64, 0xe0, 0x67, 0x32, 0x88, 0x0b, 0xee, 0x83, 0x42, 0x20, 0x03, 0xe4, + 0xc8, 0x38, 0x07, 0xec, 0x37, 0xf8, 0x72, 0xad, 0x33, 0x66, 0xd4, 0xee, + 0x3e, 0xb6, 0xb7, 0x06, 0xcf, 0x12, 0x6b, 0x13, 0xf2, 0x90, 0xc9, 0x0a, + 0x9e, 0x48, 0xbd, 0x4c, 0xae, 0xb9, 0x94, 0x93, 0x5f, 0x1f, 0xc8, 0xc3, + 0xaf, 0x56, 0xf3, 0x55, 0xf6, 0x94, 0x48, 0xbd, 0x4c, 0xae, 0xb9, 0x64, + 0xf9, 0xf5, 0x21, 0xc8, 0xc3, 0xaf, 0x16, 0xf3, 0x35, 0x80, 0x47, 0x4f, + 0x00, 0x7c, 0xd8, 0x00, 0x00, 0xea, 0x61, 0x41, 0x65, 0xe4, 0xe4, 0xff, + 0x18, 0x0b, 0x13, 0x26, 0xc4, 0x14, 0x8b, 0x39, 0x12, 0x15, 0xa8, 0x00, + 0x00, 0x00, 0x56, 0x34, 0x11, 0x00, 0x1d, 0x18, 0x49, 0x76, 0xa0, 0x46, + 0x46, 0x26, 0x01, 0x30, 0x71, 0x8a, 0x53, 0x40, 0x01, 0x9c, 0x68, 0x0a, + 0xad, 0x66, 0x01, 0x3c, 0xb2, 0xa4, 0x04, 0xba, 0x22, 0x88, 0x92, 0x72, + 0xb5, 0xf3, 0x5b, 0x8c, 0xe9, 0xd7, 0x81, 0xa0, 0xf4, 0xbd, 0xb7, 0x58, + 0xd9, 0x2d, 0x64, 0x1f, 0xde, 0x8d, 0x86, 0xb7, 0x7c, 0xc3, 0xf9, 0xb8, + 0xb8, 0x50, 0xf5, 0xf3, 0x66, 0x96, 0x3f, 0xa7, 0x55, 0x36, 0xf5, 0x5f, + 0x19, 0x74, 0xff, 0xdb, 0x32, 0xdc, 0x2b, 0x08, 0xcc, 0xed, 0x67, 0x9d, + 0x56, 0x7f, 0x4b, 0x67, 0xa2, 0x93, 0x19, 0x85, 0x19, 0x7c, 0xb3, 0xae, + 0x36, 0x06, 0xd8, 0x90, 0x4c, 0x10, 0x8f, 0xe4, 0xe8, 0xd9, 0x4c, 0x72, + 0xfc, 0x4d, 0x97, 0xc3, 0x41, 0x13, 0x8e, 0x20, 0x38, 0x5c, 0xd2, 0x95, + 0x1c, 0x53, 0x06, 0xde, 0x3e, 0x98, 0x7b, 0x62, 0x3e, 0x30, 0xc3, 0xe3, + 0x23, 0x2e, 0x49, 0x49, 0x3c, 0x00, 0x9e, 0x48, 0xbd, 0x74, 0x37, 0x1f, + 0xe5, 0xe4, 0xf7, 0x5e, 0x65, 0xe8, 0xef, 0xeb, 0x32, 0x80, 0x31, 0x24, + 0x52, 0x2f, 0xdd, 0xcc, 0x47, 0x33, 0xf9, 0xbd, 0x93, 0x93, 0xa1, 0xbf, + 0x9f, 0xcb, 0x00, 0xc6, 0xe0, 0x09, 0xa0, 0xe5, 0x03, 0xa8, 0x34, 0x64, + 0x00, 0xb8, 0x01, 0x6c, 0x42, 0x35, 0x64, 0x2e, 0xf7, 0x7f, 0x8c, 0x05, + 0x38, 0x1a, 0x2a, 0x08, 0x83, 0x48, 0x3c, 0x0e, 0x28, 0xa6, 0x8a, 0x06, + 0x00, 0x03, 0x00, 0xc4, 0x12, 0x2a, 0x0c, 0x0c, 0x12, 0xf2, 0x24, 0x91, + 0xe4, 0xa6, 0x25, 0xea, 0x52, 0x04, 0x00, 0x22, 0xdb, 0xb5, 0x03, 0x56, + 0x0a, 0x08, 0x91, 0xc1, 0xe3, 0x0b, 0xc8, 0x02, 0x00, 0x08, 0x44, 0x68, + 0xb9, 0x70, 0xa2, 0xd9, 0x45, 0x38, 0x51, 0x28, 0xa6, 0x8d, 0x33, 0xb0, + 0x0b, 0xa6, 0xe2, 0x13, 0xe3, 0x23, 0x34, 0x27, 0xcc, 0x8f, 0x52, 0x9a, + 0x30, 0xe4, 0xa7, 0x70, 0x16, 0x9b, 0xe0, 0x04, 0x34, 0x31, 0xb6, 0x79, + 0xfe, 0xcb, 0xab, 0x9c, 0x3f, 0x9b, 0x65, 0x45, 0x8a, 0x7d, 0xb0, 0x16, + 0x16, 0xff, 0xfd, 0xa1, 0xcc, 0x94, 0xfc, 0xdc, 0x96, 0xb1, 0x80, 0x4d, + 0xe2, 0x70, 0xd4, 0x84, 0x19, 0x6d, 0x6a, 0xe2, 0xae, 0x10, 0x09, 0xe6, + 0xcc, 0x98, 0x73, 0xd0, 0xc9, 0xb7, 0x71, 0x38, 0xe8, 0x35, 0x19, 0xfc, + 0xd1, 0xd4, 0xa6, 0x17, 0x50, 0x62, 0x79, 0x2c, 0x03, 0x5e, 0x48, 0x5d, + 0x4b, 0x9a, 0x27, 0x0d, 0x7e, 0xf5, 0x30, 0xf6, 0xfe, 0x97, 0x06, 0xa0, + 0x90, 0xba, 0x96, 0x38, 0x4f, 0xba, 0xfc, 0xea, 0x05, 0x61, 0xec, 0xfd, + 0x2f, 0x0d, 0xe0, 0xc9, 0x13, 0x40, 0x20, 0x4f, 0xa8, 0x67, 0x01, 0xc0, + 0x0d, 0x60, 0x12, 0x8a, 0x27, 0x0f, 0xbd, 0x48, 0xb2, 0xff, 0x38, 0x62, + 0x81, 0x03, 0x70, 0xd4, 0xf1, 0xc4, 0xc4, 0x98, 0xb1, 0x88, 0x36, 0x00, + 0x00, 0x00, 0xa0, 0x58, 0xdc, 0x00, 0xe4, 0x0c, 0x9a, 0x27, 0x13, 0x4d, + 0x92, 0x2c, 0xd4, 0x8a, 0x38, 0x86, 0x00, 0xe8, 0xb6, 0xb7, 0x73, 0x60, + 0x18, 0x01, 0x24, 0x12, 0x53, 0x23, 0xc4, 0x21, 0x0c, 0x98, 0x37, 0xc7, + 0xee, 0xc5, 0xfb, 0xda, 0xfd, 0x4b, 0x8b, 0x3f, 0x89, 0x00, 0xbe, 0x2e, + 0x73, 0x37, 0xf1, 0xbc, 0xbd, 0xba, 0xb4, 0xca, 0x58, 0x04, 0xd9, 0x04, + 0x37, 0xa8, 0xdf, 0x7b, 0xa2, 0x46, 0xaf, 0x69, 0x35, 0xd6, 0xb7, 0x68, + 0xb7, 0x8e, 0x28, 0x3d, 0xe6, 0x94, 0x35, 0x13, 0xba, 0xf7, 0xf7, 0xa7, + 0xb9, 0x00, 0x4f, 0x52, 0x2c, 0xe9, 0x75, 0x54, 0x7c, 0xc6, 0x48, 0x24, + 0x14, 0x1e, 0xea, 0x6d, 0xff, 0xb5, 0xcb, 0x7e, 0x08, 0x98, 0x8a, 0x51, + 0x7c, 0x1f, 0xa3, 0xab, 0x30, 0x35, 0x3e, 0x40, 0x37, 0x2e, 0x65, 0xaa, + 0xad, 0xdc, 0x45, 0xd6, 0xd5, 0xae, 0x70, 0x1c, 0xc5, 0x67, 0x89, 0x6b, + 0x7b, 0xa3, 0x16, 0x31, 0xcb, 0x74, 0x1e, 0x00, 0x9e, 0x48, 0xbd, 0x76, + 0x3d, 0x0d, 0x76, 0xf9, 0xfd, 0x21, 0xa7, 0x34, 0xf6, 0x6a, 0x7c, 0x4b, + 0xd9, 0x53, 0x22, 0xf5, 0xda, 0xcd, 0x34, 0xd8, 0xe4, 0xf7, 0x87, 0x1c, + 0x8c, 0xbd, 0x1a, 0xdf, 0x52, 0xc6, 0x13, 0x40, 0xf8, 0x00, 0x6a, 0xd5, + 0x4c, 0x00, 0x37, 0x80, 0x01, 0x45, 0x08, 0xa9, 0x19, 0x21, 0x7f, 0x3c, + 0xc6, 0xc2, 0x28, 0x70, 0x2c, 0x8c, 0x28, 0x8c, 0x07, 0x20, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x48, 0x91, 0x44, 0x01, 0x34, 0x19, 0xb0, 0x38, 0xc9, + 0xcb, 0x24, 0x91, 0x16, 0x29, 0xba, 0x0c, 0xc0, 0xd8, 0x34, 0x9b, 0x06, + 0x63, 0x8a, 0x48, 0xa8, 0x52, 0x1e, 0x6e, 0x03, 0x03, 0x1e, 0xec, 0x72, + 0x6c, 0xb8, 0x60, 0x42, 0x76, 0xa5, 0x4e, 0x58, 0x8f, 0xc5, 0xc5, 0x4a, + 0x41, 0xd9, 0x24, 0xd6, 0x60, 0x1c, 0x34, 0x2a, 0xd4, 0x0a, 0x14, 0x2c, + 0x70, 0x46, 0x43, 0x28, 0x3d, 0x2e, 0x8e, 0x6c, 0xc2, 0xe6, 0x65, 0xd7, + 0xbd, 0x4f, 0x32, 0xa6, 0x38, 0xcb, 0x32, 0xa6, 0x28, 0x83, 0x23, 0xfd, + 0x54, 0x2d, 0x23, 0x69, 0x60, 0x01, 0xa3, 0x34, 0x14, 0xfb, 0x4f, 0xea, + 0xcf, 0x8f, 0x5b, 0x97, 0xc4, 0x8a, 0xcb, 0x9a, 0x4b, 0xd9, 0x48, 0x72, + 0x3b, 0xcb, 0x91, 0xce, 0xd1, 0xa9, 0xbe, 0xbf, 0xb5, 0x5b, 0x4a, 0x05, + 0x52, 0x54, 0xdf, 0xe8, 0x62, 0xf4, 0x4c, 0xb1, 0x00, 0x7e, 0x48, 0xdd, + 0x36, 0x3f, 0x0d, 0x26, 0xf8, 0x7c, 0xa9, 0x0c, 0xff, 0x93, 0x85, 0x0c, + 0x05, 0x0e, 0xa9, 0xdb, 0xe6, 0xa6, 0x81, 0xc9, 0xe7, 0x43, 0x65, 0xf8, + 0x9f, 0x2c, 0x64, 0x28, 0x7a, 0xf2, 0x06, 0x20, 0x12, 0xf0, 0x11, 0xca, + 0x1a, 0x00, 0xea, 0x61, 0x40, 0xd1, 0x33, 0x1e, 0x22, 0xd8, 0xff, 0x63, + 0x59, 0x80, 0x43, 0xc5, 0x63, 0x0e, 0x63, 0x41, 0x18, 0x92, 0xe0, 0x88, + 0xa2, 0x0e, 0x42, 0xdb, 0x02, 0xb0, 0x42, 0x50, 0x30, 0xb2, 0x01, 0x00, + 0x40, 0x24, 0x29, 0x00, 0xc0, 0x30, 0x64, 0x49, 0x95, 0x42, 0x9e, 0x2f, + 0xbe, 0xc1, 0x69, 0x29, 0x00, 0x0a, 0x3a, 0x21, 0x06, 0x10, 0xc0, 0x88, + 0x63, 0x86, 0x12, 0x86, 0x1e, 0xa3, 0xc6, 0x10, 0x30, 0xf1, 0x2b, 0xee, + 0x91, 0xbe, 0x27, 0xf7, 0x32, 0xea, 0x56, 0x11, 0x47, 0xac, 0x26, 0x19, + 0x1d, 0x59, 0x6e, 0xc6, 0x0b, 0x1b, 0x61, 0x89, 0x21, 0x73, 0xa6, 0xf8, + 0x21, 0x7a, 0x6f, 0xcf, 0x4d, 0x45, 0x99, 0x5a, 0xb1, 0xdf, 0xfd, 0xd7, + 0x0b, 0xc6, 0x0c, 0x72, 0x96, 0xf9, 0x71, 0x4c, 0xbe, 0x64, 0xf9, 0x53, + 0x47, 0x39, 0x25, 0xde, 0x92, 0x42, 0x40, 0x31, 0xe6, 0x5c, 0xe9, 0x11, + 0x2f, 0x05, 0x88, 0x95, 0x83, 0x3f, 0xc0, 0xb1, 0xed, 0x22, 0xe4, 0x22, + 0x44, 0x9e, 0x69, 0x45, 0x5e, 0x58, 0x0f, 0xd2, 0x6a, 0x9a, 0xf1, 0x80, + 0xb3, 0x01, 0x5e, 0x48, 0xbd, 0x16, 0x9d, 0x5c, 0x4e, 0x3e, 0x5e, 0x7a, + 0x61, 0xf8, 0x9f, 0xdc, 0x7a, 0x14, 0x3d, 0x17, 0x52, 0xaf, 0x45, 0x27, + 0x67, 0xf2, 0xf1, 0xb0, 0x08, 0x63, 0xff, 0xe4, 0xce, 0xab, 0xe4, 0xd9, + 0x13, 0x20, 0x20, 0x4f, 0xd0, 0x08, 0x80, 0x5a, 0x1a, 0x3d, 0x9d, 0x14, + 0x28, 0x61, 0xff, 0xc7, 0x81, 0x85, 0x88, 0x01, 0x22, 0x31, 0x92, 0x80, + 0x11, 0xd1, 0x21, 0x02, 0x10, 0x20, 0x72, 0x25, 0xd9, 0x41, 0xd2, 0x44, + 0x26, 0x24, 0x11, 0xe6, 0xa0, 0x69, 0x2b, 0x01, 0x44, 0x3a, 0xc8, 0x00, + 0x80, 0x81, 0xee, 0x99, 0xb2, 0x27, 0xb0, 0x54, 0x41, 0x41, 0xa4, 0xef, + 0x0c, 0xaa, 0x26, 0x45, 0xa0, 0x8b, 0x03, 0x88, 0xc0, 0x9c, 0x1c, 0x11, + 0x57, 0x1f, 0x32, 0x29, 0xa8, 0x24, 0xa0, 0x12, 0x72, 0x56, 0xd8, 0xa7, + 0x5a, 0x96, 0x44, 0x2a, 0xbe, 0xe1, 0xb5, 0xcb, 0x1f, 0x99, 0x91, 0x42, + 0x3d, 0x71, 0x90, 0x8b, 0x2c, 0xe3, 0x03, 0x74, 0xe4, 0xa7, 0x4f, 0xd0, + 0x90, 0x8a, 0x1f, 0x13, 0xc9, 0x2d, 0xf2, 0x16, 0xf7, 0x3a, 0x3e, 0x7f, + 0x4d, 0x92, 0xf4, 0x69, 0xbf, 0xd9, 0x0a, 0x35, 0x05, 0xdc, 0x72, 0x07, + 0x87, 0x40, 0x61, 0x73, 0x87, 0x85, 0x98, 0xaf, 0x90, 0xe2, 0x40, 0x42, + 0x52, 0x8b, 0xba, 0x24, 0x46, 0x9d, 0x90, 0xd8, 0xb2, 0x54, 0x08, 0xa2, + 0x5c, 0x07, 0x34, 0x25, 0x93, 0xf8, 0x5c, 0xbc, 0x28, 0x81, 0x13, 0x00, + 0x7e, 0x48, 0x3d, 0x46, 0xdf, 0x8c, 0xba, 0xc2, 0x47, 0x2f, 0x4b, 0x2b, + 0xbf, 0xf2, 0xaf, 0x4d, 0xc1, 0x18, 0x0e, 0xab, 0xc7, 0xe8, 0x9a, 0x41, + 0x8f, 0xf0, 0xd1, 0x8b, 0xd2, 0xf8, 0xaf, 0xe5, 0x6b, 0x53, 0x30, 0x46, + 0x4f, 0x00, 0xdc, 0x69, 0x01, 0x0b, 0x4a, 0x08, 0x63, 0xe2, 0x7f, 0x36, + 0x96, 0x85, 0x09, 0xa5, 0x84, 0x10, 0x2b, 0x0c, 0x40, 0x38, 0x88, 0x0a, + 0xc0, 0xa9, 0xc9, 0xcf, 0x1d, 0x90, 0xc9, 0xe4, 0x37, 0x37, 0x15, 0x22, + 0x34, 0xcd, 0x50, 0x61, 0x0c, 0x00, 0x48, 0x3b, 0x18, 0x00, 0x35, 0xe3, + 0x35, 0xb8, 0x18, 0x80, 0x44, 0x8d, 0xe4, 0x50, 0x40, 0x31, 0x5f, 0x0a, + 0x42, 0x6e, 0xa7, 0x5e, 0x27, 0x20, 0xf7, 0x63, 0x42, 0x64, 0xbb, 0x2c, + 0xfa, 0xa1, 0xd2, 0x96, 0x87, 0x96, 0x6b, 0x49, 0xd6, 0x06, 0x88, 0x4d, + 0xda, 0x55, 0x8d, 0xbf, 0xc9, 0x57, 0x60, 0x2d, 0x33, 0x6d, 0x1e, 0xc6, + 0xc2, 0x92, 0xfd, 0xf7, 0xf3, 0x59, 0x48, 0x36, 0x4b, 0xdb, 0xe7, 0x62, + 0x2e, 0x5b, 0x71, 0x4e, 0x07, 0x6e, 0xb3, 0xa1, 0x8d, 0x8a, 0x19, 0x22, + 0x49, 0xb8, 0xb3, 0xa6, 0x98, 0xf5, 0xb0, 0x26, 0x1c, 0xae, 0xf6, 0xcb, + 0x47, 0x4d, 0x1d, 0x09, 0xda, 0x0c, 0x06, 0x76, 0xc3, 0x18, 0x24, 0xd6, + 0xea, 0x01, 0xee, 0xc3, 0x6a, 0x28, 0x7b, 0x22, 0x62, 0x7f, 0x6d, 0x14, + 0x00, 0x5e, 0x48, 0xbd, 0x74, 0xdd, 0x8e, 0x26, 0xf9, 0x78, 0xa8, 0xc9, + 0xf0, 0xfb, 0xdf, 0x52, 0xa4, 0x90, 0x7a, 0x19, 0xe5, 0x34, 0xca, 0xe5, + 0xe3, 0xa5, 0x96, 0x32, 0xf6, 0xc3, 0xeb, 0x2d, 0x45, 0xcf, 0xee, 0x01, + 0xa4, 0x0f, 0x41, 0x5d, 0x01, 0xc0, 0x0d, 0x60, 0x41, 0xa8, 0x1c, 0x1d, + 0x63, 0x64, 0xf6, 0x8f, 0x03, 0x0b, 0x20, 0x1a, 0x8d, 0x12, 0x04, 0x61, + 0x42, 0x08, 0xe6, 0x0a, 0x1f, 0x03, 0x38, 0x56, 0x00, 0xc0, 0x0e, 0x12, + 0x2c, 0x60, 0xd5, 0xde, 0xdd, 0x32, 0x74, 0xdd, 0x55, 0x66, 0x48, 0x91, + 0xbf, 0x68, 0x2a, 0x00, 0x88, 0xfb, 0x7d, 0x2b, 0xc3, 0x9b, 0x00, 0xc4, + 0x77, 0xd9, 0x09, 0x0a, 0x0a, 0xc6, 0x57, 0x41, 0x27, 0xbd, 0xc2, 0xe8, + 0x7c, 0x7f, 0x62, 0x9a, 0xfe, 0x2a, 0xe6, 0x1d, 0x60, 0xbe, 0x37, 0xc6, + 0x20, 0x01, 0xa9, 0x28, 0x10, 0xf0, 0x46, 0xc8, 0x37, 0xfd, 0x81, 0x05, + 0x60, 0x5f, 0xbc, 0xa4, 0x2a, 0x26, 0x1c, 0x99, 0x20, 0x73, 0xee, 0x73, + 0x16, 0xa7, 0x8e, 0x47, 0x22, 0x9b, 0x4d, 0xa6, 0x14, 0x6f, 0xaf, 0x60, + 0x64, 0x24, 0x97, 0xeb, 0x72, 0x74, 0x12, 0xe1, 0x1c, 0xb9, 0x94, 0xb5, + 0xa7, 0x1b, 0xa8, 0x3f, 0x41, 0xa3, 0x04, 0x53, 0x5d, 0x1b, 0xa4, 0x04, + 0x98, 0x48, 0x48, 0xd3, 0x3c, 0x7c, 0x79, 0x21, 0xf9, 0xcd, 0xdf, 0x29, + 0x3f, 0xf1, 0xa1, 0xad, 0x82, 0x1f, 0x58, 0x09, 0x00, 0x7e, 0x48, 0xbd, + 0x47, 0x17, 0x99, 0x19, 0xd7, 0x4b, 0xc7, 0xf0, 0x2f, 0x86, 0x6f, 0xc0, + 0x21, 0xf5, 0x1e, 0x5d, 0xc8, 0x8c, 0xc7, 0x87, 0x8e, 0xe1, 0x9f, 0xfb, + 0x6f, 0x80, 0x27, 0x80, 0xb6, 0x5b, 0x7a, 0xc0, 0x0d, 0x60, 0x41, 0xd1, + 0x33, 0x42, 0x26, 0xb3, 0x9f, 0x8b, 0x0c, 0x0b, 0x59, 0x12, 0x21, 0xd1, + 0x68, 0x42, 0xa2, 0x50, 0x18, 0x12, 0x5a, 0x20, 0x45, 0x9c, 0x62, 0x00, + 0x42, 0x42, 0x01, 0x90, 0x76, 0xd0, 0x8c, 0x6a, 0x13, 0xd2, 0x14, 0x17, + 0x24, 0xcd, 0x17, 0xc2, 0x00, 0x2c, 0x71, 0x86, 0x15, 0xe8, 0x58, 0x00, + 0x44, 0xac, 0xc3, 0x64, 0x86, 0x44, 0xa4, 0x29, 0xcb, 0xb0, 0x24, 0xcc, + 0xbc, 0x8a, 0x71, 0x73, 0x57, 0x98, 0x6f, 0x32, 0x30, 0x39, 0x8b, 0xe6, + 0x49, 0xa6, 0xb0, 0x66, 0x88, 0x67, 0x97, 0x71, 0x4e, 0x5e, 0x36, 0x84, + 0xc2, 0x28, 0xda, 0xfe, 0x6c, 0xea, 0xf2, 0x27, 0x50, 0x47, 0xf1, 0x5d, + 0x2d, 0x91, 0x7d, 0xfd, 0x65, 0x64, 0x31, 0x86, 0xc5, 0xfd, 0x59, 0xae, + 0x89, 0x14, 0xb3, 0x2e, 0xc1, 0x66, 0x58, 0xab, 0x11, 0x31, 0x64, 0x31, + 0x80, 0xd9, 0xef, 0x30, 0x9b, 0x05, 0x4a, 0x3b, 0x50, 0x06, 0xb0, 0x83, + 0x3a, 0x82, 0x39, 0x2c, 0x6a, 0xb9, 0xcc, 0xd7, 0xe5, 0x86, 0x56, 0x4c, + 0x4a, 0xd1, 0x6a, 0xc6, 0x74, 0xec, 0x65, 0x59, 0x90, 0x78, 0x05, 0x00, + 0x5e, 0x48, 0x3d, 0x85, 0x2e, 0x05, 0x47, 0x73, 0x21, 0x25, 0xd6, 0x2f, + 0xca, 0x4b, 0x99, 0x83, 0x53, 0x21, 0xf5, 0x14, 0xa6, 0x14, 0x1c, 0xcd, + 0x45, 0x4a, 0x89, 0xf5, 0x8b, 0x78, 0xca, 0x9e, 0x3c, 0x01, 0x40, 0x9e, + 0x90, 0x0d, 0x02, 0xc0, 0x42, 0x51, 0x09, 0x61, 0xa9, 0xff, 0x63, 0x59, + 0x98, 0x50, 0x92, 0xac, 0x78, 0x24, 0x26, 0x90, 0x02, 0x15, 0x84, 0x2c, + 0x9a, 0x3b, 0x18, 0x21, 0x40, 0xf3, 0x03, 0x9f, 0x45, 0x86, 0x06, 0xd0, + 0x18, 0x98, 0x05, 0xdc, 0xf7, 0xef, 0xc5, 0x72, 0x1d, 0x32, 0x56, 0x34, + 0x14, 0xad, 0xfd, 0x91, 0x90, 0x40, 0x0a, 0x0b, 0xe6, 0xc9, 0x97, 0x97, + 0xd8, 0x28, 0x0a, 0xeb, 0x00, 0xae, 0x91, 0x90, 0x49, 0xdb, 0x56, 0xbc, + 0x61, 0xa4, 0x64, 0x8e, 0x26, 0x82, 0x97, 0x99, 0x75, 0xb1, 0xe2, 0x19, + 0x8d, 0xfe, 0xf8, 0xa9, 0xf1, 0x43, 0x5a, 0x9d, 0x45, 0xb3, 0x18, 0xa1, + 0x3c, 0xa0, 0xb8, 0x38, 0xad, 0x5d, 0x88, 0xf0, 0x54, 0x0a, 0xb3, 0x11, + 0x57, 0x6f, 0x60, 0x78, 0x3d, 0x53, 0xe4, 0x80, 0x6f, 0x9f, 0x03, 0x13, + 0x31, 0x95, 0x47, 0x60, 0xe4, 0xd3, 0x7c, 0xd5, 0xca, 0x26, 0x45, 0xa5, + 0xe8, 0x17, 0x6c, 0x37, 0xfc, 0x05, 0x67, 0x9b, 0x82, 0xd5, 0xb2, 0xe7, + 0x53, 0x53, 0x6e, 0xd7, 0x83, 0x6b, 0xdf, 0x6a, 0x9c, 0x40, 0x07, 0x00, + 0x7e, 0x48, 0xbd, 0x6b, 0x97, 0xca, 0x9c, 0xe5, 0x13, 0xdc, 0x57, 0xdf, + 0x83, 0x43, 0xea, 0x4d, 0xfb, 0x34, 0xeb, 0xac, 0x9f, 0x20, 0xee, 0xd5, + 0x07, 0x9e, 0x00, 0xcb, 0x0d, 0x58, 0x60, 0x55, 0x28, 0xc6, 0xf3, 0x39, + 0x16, 0xfe, 0xc8, 0xb0, 0x00, 0xc7, 0x09, 0xad, 0x34, 0x08, 0x24, 0xa4, + 0x38, 0x81, 0x41, 0x21, 0x81, 0x52, 0x99, 0xbc, 0x08, 0x42, 0x94, 0xdc, + 0xd2, 0x31, 0xb3, 0xbd, 0x03, 0x4a, 0xd2, 0x41, 0x01, 0x80, 0x48, 0xd2, + 0x4e, 0x10, 0x2a, 0x53, 0x71, 0xc7, 0x1a, 0x51, 0xed, 0x3a, 0xc1, 0x2f, + 0x5d, 0x24, 0xed, 0x8c, 0xb6, 0x74, 0x6c, 0x67, 0xb0, 0xc5, 0xe1, 0x6f, + 0xe9, 0x50, 0x1d, 0x9e, 0x20, 0x00, 0x9b, 0x22, 0x8f, 0xf5, 0x00, 0x9d, + 0xcd, 0x66, 0xf4, 0x59, 0x8f, 0x3a, 0x65, 0xf2, 0x85, 0xda, 0x2c, 0xd9, + 0xb8, 0xfa, 0xef, 0xb2, 0xfd, 0xe5, 0xc7, 0xfa, 0x5e, 0xa3, 0xbe, 0x5d, + 0xb6, 0xe2, 0x86, 0xc6, 0x01, 0x49, 0x62, 0xcc, 0x3a, 0xeb, 0xe8, 0xd5, + 0x04, 0xb6, 0x49, 0x52, 0x7e, 0x18, 0x55, 0x43, 0x39, 0xf5, 0xc7, 0xf4, + 0x9b, 0x8d, 0x38, 0x0d, 0xc1, 0x91, 0x23, 0xd1, 0x6d, 0x37, 0x21, 0xde, + 0x75, 0xe3, 0xb2, 0x79, 0x35, 0xdd, 0x89, 0xeb, 0x75, 0xf6, 0xe7, 0xd1, + 0x4d, 0x25, 0x63, 0x8a, 0x66, 0x45, 0x90, 0x9a, 0x13, 0x00, 0x1e, 0x48, + 0x9d, 0x5d, 0x4a, 0x79, 0xd3, 0x5d, 0x8a, 0x32, 0xdc, 0x9d, 0x93, 0x4b, + 0xd9, 0x53, 0x20, 0x75, 0x76, 0x25, 0xe5, 0x41, 0x77, 0x29, 0x0c, 0x77, + 0x2f, 0xe4, 0x52, 0xc2, 0x13, 0x40, 0xb8, 0x13, 0x40, 0x2d, 0xa1, 0xcf, + 0xa2, 0xe4, 0xec, 0x1f, 0xc7, 0x2c, 0x84, 0x02, 0x08, 0xc1, 0x89, 0x96, + 0x44, 0xb1, 0x91, 0xb8, 0x40, 0xb6, 0x4d, 0xe4, 0x0c, 0x36, 0xb7, 0x4a, + 0x90, 0x48, 0xdb, 0x61, 0xd1, 0x61, 0x30, 0x74, 0x16, 0x28, 0x44, 0xe4, + 0x0d, 0x04, 0x00, 0xc4, 0x8f, 0xf1, 0x65, 0xec, 0xd3, 0x7a, 0x19, 0xb0, + 0x63, 0x1e, 0x0d, 0x6d, 0x29, 0x0a, 0x9b, 0x6d, 0x14, 0x7b, 0xb3, 0xee, + 0x33, 0x4d, 0xf3, 0xc6, 0x0a, 0x8b, 0xb9, 0xae, 0x4d, 0x97, 0x86, 0xff, + 0xa3, 0xc6, 0xfc, 0x54, 0x7a, 0xa3, 0x7a, 0x49, 0x42, 0x0a, 0x0a, 0xfc, + 0x7e, 0x7f, 0x47, 0x3a, 0x35, 0x56, 0x65, 0x06, 0x7e, 0xc6, 0x86, 0xfd, + 0xe3, 0x4a, 0x56, 0x69, 0x4b, 0x64, 0x3a, 0x57, 0x23, 0x3d, 0x26, 0x29, + 0xa1, 0xb1, 0x69, 0x40, 0x9f, 0x9c, 0xd1, 0x0c, 0xbd, 0xb3, 0x73, 0x83, + 0x70, 0x2b, 0xa4, 0xc1, 0x70, 0x52, 0x31, 0x3b, 0x0c, 0x2b, 0x45, 0x69, + 0x0a, 0x58, 0x82, 0xdf, 0x1b, 0xca, 0x16, 0xac, 0xe2, 0xfe, 0x00, 0x37, + 0xbb, 0x9a, 0xc6, 0x96, 0x37, 0x31, 0x61, 0x34, 0x59, 0xeb, 0x8b, 0x00, + 0x5e, 0x48, 0xdd, 0x26, 0x93, 0xb0, 0x93, 0xfe, 0x83, 0x56, 0x86, 0xe3, + 0x4a, 0x65, 0x78, 0x2e, 0xa4, 0x6e, 0x93, 0x4b, 0xb0, 0xf4, 0x1f, 0x48, + 0x43, 0x71, 0xa5, 0x32, 0x3c, 0x79, 0x02, 0xe0, 0x4e, 0x02, 0xf5, 0x30, + 0xa0, 0xa3, 0x97, 0x32, 0x35, 0x23, 0x3f, 0x1b, 0xcb, 0xc2, 0x22, 0x26, + 0x05, 0xc4, 0xe2, 0xb1, 0x84, 0x00, 0x3b, 0x48, 0x08, 0x04, 0xe0, 0x08, + 0x81, 0x00, 0x40, 0x38, 0x04, 0x10, 0x83, 0x26, 0xda, 0x54, 0x4a, 0x33, + 0x89, 0x39, 0x55, 0x9a, 0x31, 0x02, 0x50, 0x78, 0x34, 0x93, 0x7f, 0x5a, + 0x29, 0x14, 0x2f, 0x26, 0x96, 0xda, 0x3f, 0xc3, 0xf1, 0x65, 0x2a, 0x11, + 0xa0, 0x65, 0xb7, 0xab, 0x0c, 0x59, 0x35, 0x53, 0xd5, 0x62, 0x48, 0x26, + 0x51, 0x9d, 0xc4, 0x88, 0x13, 0x51, 0xbd, 0xe2, 0x41, 0x76, 0x76, 0x08, + 0xf1, 0xf7, 0x11, 0x18, 0x71, 0x2a, 0x1d, 0x34, 0x49, 0x4f, 0x6a, 0x38, + 0x37, 0xe5, 0xca, 0xa1, 0x56, 0xbd, 0xe6, 0x66, 0xb7, 0x07, 0xe1, 0x05, + 0xbb, 0x27, 0x18, 0xac, 0xde, 0x5c, 0xaf, 0x28, 0xe5, 0x82, 0x48, 0x72, + 0xfc, 0xeb, 0xb4, 0x91, 0x19, 0x2f, 0xec, 0xaf, 0x63, 0x79, 0x98, 0x26, + 0x78, 0xf2, 0x68, 0x64, 0x05, 0x07, 0xb9, 0xe4, 0x8c, 0x5f, 0x42, 0x60, + 0x6a, 0x98, 0x82, 0x13, 0xab, 0x04, 0x5f, 0x9c, 0x11, 0x00, 0xa9, 0x5b, + 0x4e, 0x00, 0x35, 0xe0, 0xeb, 0xb5, 0x46, 0xed, 0x4c, 0x50, 0x00, 0x7e, + 0x48, 0xdd, 0xf6, 0x12, 0x52, 0xb0, 0x5c, 0x0a, 0x43, 0xd7, 0xce, 0xc1, + 0x61, 0x75, 0xdb, 0x63, 0xc8, 0x92, 0xe5, 0xa1, 0x4c, 0x43, 0xd7, 0x96, + 0x03, 0x4f, 0x00, 0xdc, 0x80, 0x1e, 0x50, 0x4b, 0x14, 0x8e, 0x43, 0x45, + 0x32, 0xfb, 0xc7, 0xb6, 0x40, 0x61, 0x22, 0x89, 0x22, 0x91, 0x08, 0x02, + 0x27, 0x06, 0x84, 0x20, 0x48, 0x0c, 0x94, 0x64, 0x07, 0xc9, 0x88, 0x36, + 0xc9, 0xb4, 0x91, 0x14, 0x73, 0x9b, 0x9c, 0x31, 0x40, 0x74, 0xb9, 0x04, + 0x40, 0x18, 0xc1, 0xd3, 0x70, 0x58, 0x11, 0x87, 0x84, 0x25, 0x26, 0x64, + 0xe6, 0x36, 0x06, 0x45, 0x21, 0x87, 0xc5, 0x0b, 0x9d, 0x56, 0x02, 0xea, + 0x46, 0x92, 0xb7, 0xc1, 0x00, 0x9c, 0x31, 0x63, 0x20, 0x14, 0xd7, 0x1f, + 0x33, 0x7f, 0x10, 0x78, 0x2a, 0x20, 0xd3, 0x85, 0x97, 0x8c, 0x89, 0x38, + 0x2c, 0xf5, 0x2f, 0xba, 0xb1, 0x12, 0x63, 0x5b, 0x1c, 0x32, 0xe4, 0x2c, + 0xb9, 0x51, 0xc5, 0x6b, 0x2f, 0x75, 0xd9, 0x95, 0x4b, 0xcf, 0x38, 0x30, + 0xe4, 0xba, 0x07, 0x5c, 0xea, 0xc2, 0x89, 0x65, 0x82, 0x98, 0x35, 0x93, + 0x55, 0x3f, 0x06, 0xed, 0xc3, 0x70, 0xad, 0xe6, 0x3a, 0xf8, 0xad, 0x7c, + 0xa9, 0x73, 0x14, 0xe6, 0xd6, 0x67, 0xdc, 0xf6, 0xdf, 0x7a, 0x6f, 0x7b, + 0xad, 0xbf, 0x86, 0x32, 0xfe, 0xc0, 0xd0, 0xe7, 0x5a, 0x44, 0x01, 0x7e, + 0x48, 0x3d, 0xc6, 0x14, 0x22, 0xc9, 0x9d, 0xc1, 0xe0, 0xca, 0x71, 0x65, + 0x0e, 0xab, 0xc7, 0x18, 0x43, 0x4c, 0x72, 0x67, 0x4a, 0x83, 0x2b, 0x57, + 0x0c, 0xe0, 0xd1, 0x3d, 0x40, 0xb0, 0xd5, 0x12, 0x99, 0x90, 0x8c, 0xfc, + 0x1f, 0xdb, 0x42, 0x44, 0x20, 0x16, 0x4d, 0x88, 0x2a, 0x1e, 0x1b, 0x56, + 0x57, 0x57, 0x57, 0xc7, 0xd1, 0xea, 0x8a, 0xf3, 0xd8, 0x0e, 0x11, 0x49, + 0x6a, 0x30, 0xd9, 0x44, 0xa3, 0x88, 0x9a, 0x19, 0x87, 0x0e, 0x33, 0x53, + 0x1b, 0x21, 0x04, 0x91, 0x66, 0xf2, 0x00, 0x0c, 0xcc, 0x81, 0xb3, 0x51, + 0xf3, 0x2a, 0x24, 0x5c, 0x05, 0x72, 0x45, 0x5c, 0xc5, 0xc1, 0x58, 0x0a, + 0x6b, 0xfc, 0xbe, 0xe5, 0xbd, 0xec, 0xf6, 0xe4, 0x74, 0x96, 0xb3, 0xec, + 0xba, 0xea, 0xae, 0x08, 0xf3, 0x15, 0x70, 0x59, 0x69, 0x79, 0x9e, 0xfb, + 0x79, 0xf5, 0xb1, 0x63, 0x5f, 0x91, 0x13, 0xc4, 0x5e, 0xf1, 0x66, 0x33, + 0xa3, 0x93, 0xc4, 0xc4, 0x7e, 0x45, 0x7c, 0xad, 0x55, 0x65, 0x2b, 0xce, + 0xde, 0x61, 0x13, 0x29, 0xc6, 0xd2, 0xd6, 0x4e, 0xa2, 0xeb, 0xf1, 0x33, + 0x9e, 0x6b, 0x54, 0x0d, 0x66, 0x8d, 0x3a, 0x74, 0xcb, 0x00, 0x06, 0x14, + 0x5f, 0x02, 0xb3, 0x0e, 0x61, 0x30, 0x63, 0x52, 0xc4, 0xad, 0x37, 0x49, + 0x30, 0x69, 0x62, 0xb0, 0xf1, 0xef, 0x3e, 0x2b, 0x87, 0xd9, 0x31, 0x20, + 0xc4, 0x1e, 0x00, 0x1e, 0x48, 0x5d, 0x7c, 0x4c, 0xf7, 0xc5, 0x82, 0x22, + 0xd3, 0xc3, 0x73, 0x20, 0x75, 0xf1, 0x31, 0x3d, 0x16, 0x8b, 0xa8, 0xc8, + 0xf4, 0xf0, 0xec, 0x09, 0x60, 0x4c, 0x8d, 0x32, 0x8a, 0xcc, 0x48, 0xf2, + 0xb3, 0x71, 0xc4, 0x02, 0x45, 0x83, 0x68, 0x00, 0x21, 0x4e, 0xcc, 0x5f, + 0x20, 0x69, 0x9b, 0x34, 0xdb, 0x18, 0x24, 0xcf, 0x60, 0x10, 0x2b, 0x4d, + 0x3a, 0xea, 0x30, 0x97, 0x64, 0xbd, 0x2c, 0xa6, 0x6a, 0x29, 0x29, 0xc9, + 0x5c, 0x56, 0x40, 0x08, 0xff, 0xc8, 0xc5, 0x3e, 0x56, 0xc5, 0x11, 0x42, + 0x5a, 0x64, 0x62, 0x38, 0x35, 0x75, 0x6c, 0xd1, 0x85, 0xcb, 0x69, 0x22, + 0xa9, 0x8e, 0x42, 0xf7, 0xcd, 0xf0, 0x3f, 0xd9, 0xdb, 0x05, 0x4a, 0xd9, + 0xc5, 0xaf, 0x99, 0x52, 0x7a, 0x48, 0x38, 0x53, 0xb8, 0x64, 0x69, 0x91, + 0x43, 0x53, 0x2b, 0x8f, 0xa2, 0x01, 0x04, 0xd0, 0x1d, 0xaf, 0xc9, 0xaa, + 0x33, 0x84, 0x36, 0x1f, 0x98, 0xd9, 0x55, 0xf3, 0x3d, 0x83, 0xfe, 0x66, + 0xb3, 0x35, 0x7a, 0x7a, 0x09, 0x9b, 0xc6, 0x1d, 0x11, 0xa0, 0x57, 0xa0, + 0x7e, 0xa9, 0x03, 0xc2, 0x27, 0xf2, 0x7f, 0xf3, 0xd9, 0xf7, 0x14, 0xa3, + 0x1a, 0x84, 0xb7, 0x63, 0x80, 0x1c, 0x1f, 0x56, 0x24, 0x78, 0x16, 0x77, + 0x99, 0xef, 0x30, 0x07, 0x65, 0x9f, 0x02, 0xfe, 0x47, 0xdd, 0x75, 0x9c, + 0x26, 0x41, 0xbb, 0x04, 0x5c, 0xfd, 0x38, 0xfc, 0x51, 0x77, 0xed, 0xa7, + 0xc9, 0xd2, 0x2e, 0x41, 0x72, 0xf5, 0xe3, 0x78, 0xf2, 0x04, 0x58, 0xa6, + 0x85, 0x28, 0x19, 0x9a, 0x91, 0xec, 0x3f, 0x8e, 0x59, 0x80, 0xad, 0xa8, + 0xe4, 0x48, 0x34, 0xc8, 0x4f, 0x73, 0x22, 0x2d, 0x69, 0x46, 0xa6, 0x99, + 0x01, 0x1d, 0x32, 0x8c, 0x59, 0x9d, 0xcd, 0x5c, 0x56, 0x57, 0xd2, 0xce, + 0x76, 0xe9, 0xa6, 0x4d, 0xd3, 0x34, 0x22, 0x50, 0x6d, 0x7e, 0x02, 0xce, + 0x89, 0xf1, 0xe2, 0x2b, 0xe1, 0x0d, 0x51, 0xd3, 0x2b, 0x7e, 0x52, 0x88, + 0xd7, 0xa6, 0x06, 0x11, 0x83, 0x36, 0xcd, 0xea, 0xe8, 0x9b, 0xf2, 0xde, + 0x2c, 0x6e, 0xce, 0xcd, 0xe0, 0x8d, 0x49, 0xb7, 0x79, 0x8a, 0x25, 0x59, + 0x1d, 0x4b, 0x24, 0x34, 0x12, 0x44, 0x52, 0xfb, 0xab, 0x4c, 0x9d, 0x10, + 0x8c, 0x53, 0x78, 0x7f, 0x1b, 0xcb, 0x20, 0xf3, 0x91, 0xb5, 0x41, 0xe4, + 0x82, 0xb4, 0x49, 0x66, 0xa8, 0x12, 0xce, 0x09, 0xc2, 0x8b, 0x30, 0x97, + 0xd1, 0xb5, 0x35, 0xca, 0x10, 0x6a, 0x58, 0xa5, 0x57, 0x82, 0xe4, 0x82, + 0x4b, 0xb0, 0x33, 0x20, 0x5f, 0xae, 0xce, 0x99, 0xa9, 0x05, 0x72, 0x26, + 0x94, 0x54, 0x7d, 0x38, 0x5f, 0xd6, 0xb5, 0x94, 0x4a, 0x48, 0x1a, 0x80, + 0x0e, 0x7f, 0x0f, 0x7c, 0xd5, 0xa6, 0x9e, 0x14, 0x39, 0x03, 0x3e, 0x58, + 0x3d, 0x93, 0x4f, 0x98, 0xc9, 0x5c, 0x50, 0x64, 0xc4, 0xf1, 0x34, 0x48, + 0x3d, 0x93, 0x4f, 0x99, 0x65, 0x5e, 0x68, 0x32, 0xe2, 0x78, 0xf2, 0x04, + 0xc0, 0x56, 0x4b, 0x4c, 0xc6, 0x4e, 0xc8, 0xff, 0x58, 0x16, 0x22, 0x20, + 0x48, 0x30, 0x89, 0xd1, 0x68, 0x6c, 0x60, 0x4e, 0x4e, 0x6e, 0x26, 0x34, + 0x69, 0x9a, 0x3f, 0x29, 0x72, 0x72, 0xe4, 0xe7, 0x64, 0x06, 0xcf, 0x4b, + 0x45, 0x96, 0xd4, 0x58, 0x33, 0x0e, 0x63, 0xb6, 0x73, 0x8c, 0x04, 0x0d, + 0x40, 0x2c, 0x9f, 0x02, 0xe5, 0x14, 0xf0, 0xae, 0xb2, 0x99, 0x02, 0x6e, + 0x9e, 0x21, 0xa3, 0x15, 0xc2, 0x58, 0x20, 0x66, 0x61, 0x0c, 0x12, 0x1b, + 0xba, 0xb4, 0x6f, 0xb4, 0xca, 0x33, 0x2c, 0x1c, 0x61, 0x66, 0xe7, 0xb7, + 0x56, 0x7c, 0xec, 0x30, 0x1a, 0x32, 0x65, 0x8f, 0x2e, 0xaf, 0xf7, 0x64, + 0x4e, 0x5d, 0xf9, 0x74, 0x6f, 0x90, 0x5b, 0x27, 0xa2, 0xe1, 0x35, 0xf3, + 0x4b, 0xa7, 0xc1, 0x1c, 0x21, 0x03, 0x47, 0xbb, 0xf5, 0x64, 0x6a, 0xb3, + 0x85, 0x27, 0x8c, 0xf6, 0x95, 0x97, 0xeb, 0x6c, 0x9b, 0xf9, 0xce, 0xa2, + 0x4a, 0x20, 0xfb, 0x87, 0xd2, 0x03, 0x82, 0xc9, 0xdc, 0x97, 0xfa, 0xe6, + 0xd8, 0x0c, 0xc6, 0xcb, 0xe5, 0xfc, 0xd0, 0x09, 0x5c, 0xfb, 0x8d, 0x2f, + 0x69, 0xdd, 0x1c, 0x58, 0x5d, 0x6d, 0x2f, 0xf4, 0x30, 0x99, 0x73, 0x03, + 0x01, 0x1b, 0x00, 0x3e, 0x48, 0x3d, 0x53, 0x4a, 0x11, 0xa4, 0x05, 0x86, + 0x52, 0xc3, 0x20, 0xf5, 0x48, 0x25, 0x25, 0x82, 0xb4, 0xc0, 0x50, 0x6a, + 0xf0, 0x06, 0x58, 0x12, 0x70, 0x67, 0x80, 0x91, 0x31, 0x32, 0x21, 0xc9, + 0xaf, 0x59, 0x8c, 0x05, 0x84, 0x84, 0x51, 0x39, 0x48, 0x88, 0x84, 0x0e, + 0x82, 0x88, 0xa2, 0x22, 0xb4, 0xc2, 0x88, 0x25, 0x0b, 0x45, 0x2b, 0x0b, + 0x64, 0x61, 0xcf, 0x66, 0xb6, 0x59, 0x8e, 0x01, 0x44, 0x83, 0x61, 0xff, + 0x2e, 0x29, 0x0c, 0xd1, 0x62, 0x71, 0x19, 0x25, 0xb2, 0xf4, 0x6b, 0x79, + 0x72, 0xc2, 0x9c, 0x8c, 0xc5, 0x9f, 0x6e, 0xb3, 0xe0, 0x64, 0xd3, 0x2e, + 0xf9, 0xa6, 0x85, 0xcd, 0x4f, 0x6a, 0xc9, 0x59, 0x61, 0xf3, 0xdd, 0x8c, + 0xa9, 0xdf, 0x1f, 0x55, 0x5e, 0x6a, 0x79, 0x46, 0x23, 0x54, 0x1b, 0x4b, + 0xd9, 0xaf, 0x0c, 0x19, 0x72, 0xad, 0x70, 0xdb, 0x81, 0x35, 0x11, 0x7f, + 0x50, 0x2e, 0x27, 0x23, 0xbd, 0xfc, 0x49, 0xa1, 0xc6, 0xbc, 0x40, 0xf5, + 0x37, 0x95, 0xa2, 0xca, 0xf0, 0xd8, 0xb7, 0xf5, 0xd2, 0x93, 0x64, 0x97, + 0x22, 0xca, 0x8a, 0x80, 0x4e, 0x38, 0x7c, 0x92, 0xa0, 0xd0, 0x84, 0xaf, + 0x07, 0x2a, 0x90, 0x29, 0x7f, 0x42, 0x63, 0x24, 0xa4, 0x90, 0x0f, 0x53, + 0x82, 0x81, 0xb1, 0xcf, 0x9c, 0x65, 0x2d, 0xb3, 0xf7, 0xda, 0xda, 0xfa, + 0x31, 0x0a, 0x3e, 0x48, 0xbd, 0x46, 0x93, 0x90, 0x4b, 0x5a, 0x91, 0x46, + 0x89, 0xf0, 0x30, 0x48, 0xbd, 0x46, 0x97, 0x90, 0x49, 0xba, 0x60, 0x90, + 0x04, 0x9e, 0x00, 0xcb, 0x0d, 0x58, 0xa0, 0x51, 0x9d, 0xd0, 0x4d, 0x66, + 0xff, 0x18, 0x0b, 0x20, 0x0c, 0x1c, 0x3a, 0x4a, 0x02, 0x80, 0x11, 0x26, + 0x94, 0x1c, 0x9a, 0x68, 0x32, 0x80, 0x56, 0xa3, 0x9d, 0x5e, 0x94, 0x71, + 0x8f, 0x99, 0x3e, 0x51, 0x47, 0x08, 0xc9, 0xaa, 0x46, 0x22, 0x3f, 0x99, + 0xdf, 0xfe, 0xd9, 0xed, 0xef, 0xe3, 0x4a, 0xce, 0x73, 0xa4, 0x8b, 0x01, + 0x02, 0x59, 0x9e, 0xb7, 0x7f, 0x59, 0xe7, 0xf7, 0xe7, 0x8f, 0xe8, 0xee, + 0xe7, 0x1b, 0x59, 0xcc, 0x73, 0xf7, 0xdc, 0x09, 0xf5, 0x63, 0x30, 0x23, + 0x08, 0xab, 0x83, 0x0d, 0xc0, 0x7d, 0x5b, 0x6a, 0xd9, 0x4b, 0x0c, 0x16, + 0x43, 0x88, 0x94, 0x34, 0xbe, 0x09, 0xfd, 0x31, 0xb8, 0xeb, 0x7c, 0x4a, + 0x71, 0x14, 0xaf, 0xc3, 0x9f, 0xf3, 0x05, 0x14, 0xec, 0x85, 0x80, 0x4d, + 0x60, 0xb8, 0xbd, 0x64, 0x81, 0x16, 0xc0, 0xbe, 0xfe, 0xbc, 0x59, 0x42, + 0x80, 0x4f, 0x83, 0xdf, 0x98, 0x2d, 0xca, 0x5c, 0x01, 0xa5, 0xad, 0x9b, + 0x8a, 0x4c, 0xc5, 0xc9, 0xff, 0x01, 0x29, 0x23, 0xc9, 0xbf, 0x13, 0x21, + 0xc4, 0x8a, 0x51, 0x75, 0x00, 0x1e, 0x48, 0xdd, 0x96, 0x18, 0x37, 0x4d, + 0x5a, 0x90, 0x86, 0x93, 0xf0, 0x14, 0x58, 0xdd, 0x96, 0x14, 0x37, 0x41, + 0x5a, 0x60, 0x38, 0x11, 0x78, 0x03, 0x4c, 0x08, 0x40, 0xad, 0xa6, 0xe7, + 0x78, 0x08, 0x23, 0x24, 0xf9, 0x1f, 0xcb, 0x42, 0x10, 0x28, 0x01, 0x07, + 0xf1, 0xb8, 0x88, 0x39, 0x6e, 0x4b, 0xe4, 0x20, 0x02, 0x34, 0x4d, 0x3b, + 0x60, 0x30, 0x59, 0x09, 0x49, 0x6e, 0x2c, 0xa4, 0x7b, 0xba, 0xa7, 0xf9, + 0x47, 0x2b, 0x55, 0x32, 0x2e, 0x82, 0xa7, 0x83, 0xc1, 0xca, 0x79, 0x59, + 0xcf, 0x12, 0x34, 0x02, 0xba, 0x81, 0xab, 0x9b, 0x7d, 0x47, 0x1a, 0xda, + 0x6d, 0xb4, 0xff, 0x9e, 0x54, 0xcc, 0x6f, 0x1a, 0xf9, 0x15, 0x19, 0x4f, + 0x9e, 0x59, 0xc6, 0x04, 0xe8, 0x7d, 0xa3, 0x9d, 0xcf, 0xbf, 0x0f, 0xde, + 0x18, 0x50, 0xa1, 0x97, 0x8d, 0x8c, 0x94, 0x4a, 0xf4, 0x88, 0x17, 0xc1, + 0xa8, 0xa5, 0x05, 0x5d, 0xb9, 0x8d, 0x51, 0x8d, 0x0b, 0x72, 0x6f, 0xeb, + 0x53, 0x4d, 0xf9, 0xdb, 0x18, 0x7f, 0xa8, 0xb3, 0x84, 0x2d, 0x79, 0xd4, + 0xa5, 0xc1, 0xcb, 0x4e, 0xc2, 0xc7, 0xe7, 0xd6, 0x98, 0x72, 0x4f, 0x21, + 0x96, 0xb5, 0x50, 0x31, 0xc6, 0x5d, 0xea, 0xe4, 0x4c, 0x9f, 0xf3, 0xad, + 0x1d, 0x0d, 0x9f, 0xf9, 0xe4, 0xa6, 0x41, 0x88, 0xa4, 0xac, 0xe9, 0x2e, + 0x62, 0x33, 0x53, 0x2a, 0xf6, 0x4b, 0x07, 0xb3, 0x52, 0x00, 0x4f, 0x67, + 0x67, 0x53, 0x00, 0x04, 0x61, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc1, 0x44, 0x9b, 0x2b, 0x04, 0x00, 0x00, 0x00, 0x5f, 0x4e, 0x18, 0xf0, + 0x17, 0xbb, 0xc0, 0xb5, 0xb7, 0xb2, 0xbd, 0xb6, 0xb7, 0xb1, 0xb5, 0xb5, + 0xae, 0xbd, 0xbb, 0xb0, 0xb5, 0xb6, 0xb6, 0xb1, 0xb2, 0xa9, 0x88, 0x2d, + 0xfe, 0x57, 0x3d, 0x7c, 0x4c, 0x88, 0x45, 0x15, 0x15, 0x49, 0x62, 0x8f, + 0x7f, 0xd4, 0x35, 0xa6, 0x94, 0x37, 0xa0, 0x20, 0xf6, 0xe4, 0x09, 0x20, + 0x6d, 0x0b, 0x0f, 0x47, 0x38, 0x96, 0x9c, 0xfd, 0xe3, 0xc0, 0x02, 0x13, + 0x44, 0xe3, 0x84, 0x72, 0xcc, 0xb9, 0x39, 0x03, 0x43, 0x43, 0x1a, 0x22, + 0xc9, 0x4d, 0xb4, 0x3a, 0xb0, 0x99, 0x36, 0x15, 0x49, 0xb3, 0xd1, 0x1c, + 0xcf, 0x71, 0x16, 0x98, 0x29, 0x1a, 0xc5, 0xe0, 0xd5, 0xa0, 0xde, 0x7f, + 0x9c, 0x19, 0x1a, 0xce, 0x53, 0x8d, 0x2c, 0x66, 0x6c, 0xe7, 0x9f, 0x58, + 0x3e, 0x73, 0x05, 0x13, 0xee, 0x3b, 0x86, 0xa0, 0x47, 0xef, 0xb7, 0xf2, + 0x67, 0xcc, 0x78, 0x81, 0xc8, 0x36, 0xfb, 0x8c, 0x6b, 0xa7, 0x6a, 0xbd, + 0x37, 0xb4, 0x8e, 0xe4, 0x35, 0x99, 0xb6, 0x5a, 0x86, 0x8c, 0xdf, 0x9b, + 0x73, 0x20, 0x96, 0xe1, 0xc6, 0xb8, 0xe1, 0x90, 0xb7, 0x4e, 0xd8, 0xf7, + 0xb1, 0xf8, 0xbb, 0x19, 0xa4, 0xf1, 0x73, 0x05, 0xe2, 0x16, 0xd3, 0x6d, + 0x63, 0xef, 0x62, 0xaf, 0x95, 0x3a, 0x97, 0xd8, 0x33, 0x86, 0x3a, 0x45, + 0x48, 0x81, 0xa9, 0x41, 0x2d, 0x6a, 0xc8, 0xe4, 0xb8, 0x98, 0x09, 0x8d, + 0xcb, 0xb8, 0x97, 0x88, 0x75, 0xc5, 0xce, 0x26, 0xe7, 0x40, 0xd3, 0x52, + 0x52, 0xcd, 0x95, 0x4a, 0x11, 0x08, 0x00, 0xfe, 0x47, 0xdd, 0x63, 0x49, + 0x69, 0x90, 0x09, 0x18, 0x16, 0xf3, 0x47, 0xdd, 0x63, 0x49, 0x69, 0x91, + 0x09, 0x92, 0x61, 0xb1, 0x47, 0x4f, 0x80, 0x61, 0x55, 0x31, 0x8e, 0x08, + 0x86, 0xb2, 0xec, 0x7f, 0x1c, 0x58, 0x18, 0x9c, 0x00, 0x56, 0x18, 0x46, + 0xb2, 0xc9, 0x60, 0x33, 0xa1, 0x69, 0x2a, 0x8d, 0x24, 0x23, 0x1a, 0xed, + 0x80, 0x41, 0xd3, 0x6c, 0x34, 0x4d, 0x84, 0x54, 0xb1, 0xe8, 0x15, 0x8a, + 0x54, 0x64, 0x86, 0x36, 0x53, 0xc7, 0x41, 0xc3, 0xeb, 0x8d, 0x60, 0xaa, + 0x14, 0x9c, 0x5a, 0xf6, 0x7c, 0xbe, 0xbc, 0x14, 0xc1, 0xd4, 0xf5, 0x88, + 0x62, 0x26, 0xea, 0x59, 0x47, 0xd4, 0xfa, 0x8d, 0x2d, 0x89, 0x44, 0x9d, + 0x73, 0xc2, 0x7b, 0x51, 0xd6, 0xbd, 0x3c, 0xe3, 0x66, 0x6d, 0x2a, 0xeb, + 0xc1, 0xc0, 0x3d, 0x96, 0x33, 0x6a, 0xc9, 0x09, 0x76, 0x7a, 0xc8, 0x3a, + 0x3c, 0x3d, 0x3b, 0x9b, 0x62, 0xa5, 0xff, 0x9b, 0xba, 0xdc, 0x22, 0x17, + 0x61, 0x60, 0x7c, 0x2d, 0xcd, 0xa6, 0xcf, 0xa6, 0x50, 0x36, 0x89, 0x26, + 0x95, 0xb0, 0xa6, 0x7a, 0x27, 0x3b, 0x15, 0x7d, 0xeb, 0xf3, 0xb1, 0x8e, + 0x62, 0x43, 0x65, 0x05, 0x14, 0x78, 0xf0, 0xad, 0x6f, 0xf7, 0xd0, 0x86, + 0x82, 0xa6, 0x23, 0x0d, 0x14, 0x5f, 0x40, 0x29, 0xb5, 0xb9, 0x2a, 0x50, + 0xb7, 0xee, 0xa1, 0x80, 0x67, 0x66, 0x01, 0xfe, 0x47, 0xdd, 0x63, 0x4d, + 0x11, 0xe8, 0x40, 0x22, 0xf8, 0xa3, 0xee, 0xbe, 0xa6, 0x6b, 0x50, 0x7b, + 0x58, 0x12, 0x81, 0x27, 0x80, 0x74, 0x03, 0x06, 0x70, 0xac, 0x20, 0xc9, + 0xff, 0x8c, 0x05, 0xb2, 0x10, 0xb2, 0x03, 0x89, 0x30, 0x21, 0xee, 0xaa, + 0xaa, 0xd8, 0xc0, 0x08, 0x13, 0x84, 0x69, 0xa0, 0xd1, 0x54, 0x88, 0xc4, + 0xd8, 0x4e, 0x53, 0xe4, 0x84, 0x3d, 0xe8, 0xcf, 0xe3, 0x18, 0x08, 0xf5, + 0x96, 0x01, 0xba, 0xe4, 0x2b, 0x8d, 0xd9, 0xdc, 0x73, 0xad, 0xf8, 0x6a, + 0x69, 0x97, 0xcb, 0xbe, 0x76, 0x9a, 0xe0, 0xec, 0x98, 0xda, 0x1a, 0x37, + 0xaf, 0xe0, 0x7c, 0x63, 0x25, 0xab, 0x9f, 0x21, 0x48, 0x54, 0xce, 0xef, + 0xc5, 0xf6, 0x24, 0x52, 0x35, 0x26, 0xc0, 0x2e, 0x66, 0x32, 0x1f, 0x37, + 0x58, 0xc4, 0x1f, 0x8b, 0x04, 0xbf, 0x61, 0x26, 0x6a, 0xfd, 0xf1, 0xd6, + 0x95, 0xc1, 0x86, 0x2a, 0x7a, 0x93, 0xc4, 0x9c, 0xd6, 0x56, 0xde, 0xbf, + 0xf4, 0x94, 0xaf, 0x82, 0x61, 0xeb, 0xec, 0xf1, 0x38, 0x85, 0x74, 0xb8, + 0x4c, 0x7d, 0x72, 0x7e, 0x12, 0x76, 0x02, 0x63, 0x1a, 0x62, 0x3b, 0xbf, + 0x81, 0x33, 0x14, 0x36, 0x8a, 0x85, 0xdc, 0x5e, 0xd8, 0x18, 0x38, 0xf8, + 0xb1, 0x0b, 0x19, 0x17, 0x6f, 0xa5, 0x93, 0x01, 0xde, 0x47, 0x5d, 0x6b, + 0x09, 0x5a, 0x20, 0x4a, 0x66, 0x3c, 0xf6, 0x51, 0xd7, 0x52, 0x13, 0xea, + 0x20, 0x62, 0x06, 0x4f, 0x00, 0x6c, 0x1e, 0x2e, 0x23, 0x33, 0xc6, 0xfe, + 0xc7, 0x81, 0x85, 0x41, 0xf5, 0x46, 0x19, 0xc7, 0xe3, 0xd3, 0xcd, 0x66, + 0x17, 0xcf, 0xcc, 0xe7, 0x4d, 0xc4, 0xa0, 0xd9, 0x18, 0xd8, 0x44, 0x76, + 0xaa, 0x64, 0x7c, 0x98, 0x08, 0x14, 0x3b, 0xdd, 0xda, 0xec, 0x32, 0x87, + 0xa9, 0x0e, 0x9c, 0x2b, 0x71, 0x42, 0x13, 0xe3, 0x63, 0x1d, 0xc6, 0xc2, + 0x6c, 0xa8, 0xea, 0x3e, 0x14, 0x1f, 0xdf, 0x7a, 0x97, 0xfc, 0x16, 0xff, + 0xcc, 0xc6, 0x8c, 0x6f, 0xac, 0x25, 0x9e, 0x2c, 0xce, 0x39, 0x21, 0x8c, + 0x20, 0xe2, 0x19, 0xac, 0x39, 0x89, 0xc6, 0xce, 0x25, 0x57, 0xfb, 0xf4, + 0xa3, 0x65, 0x90, 0x22, 0x96, 0x2a, 0x32, 0x1e, 0xe6, 0x30, 0x39, 0x37, + 0x45, 0xe2, 0x0c, 0x16, 0xf4, 0x1a, 0xfc, 0x91, 0xe1, 0x2c, 0xf0, 0xb9, + 0xa1, 0x1c, 0xd3, 0x8e, 0x3d, 0x16, 0xcb, 0x26, 0xb2, 0x28, 0xbb, 0x4b, + 0xac, 0xf1, 0x41, 0xc6, 0x98, 0xc2, 0xa7, 0x42, 0x02, 0x82, 0xc7, 0xad, + 0x05, 0x8c, 0x0f, 0xce, 0xda, 0x96, 0x42, 0xa7, 0xa5, 0x99, 0x84, 0x93, + 0xf0, 0xad, 0x0f, 0x71, 0x45, 0x93, 0x38, 0x0a, 0x23, 0xa2, 0x00, 0xbe, + 0x57, 0x9d, 0x4d, 0xcf, 0x8a, 0xa4, 0x31, 0x00, 0xf6, 0xaa, 0xb3, 0xe9, + 0x59, 0x91, 0x34, 0x1a, 0x80, 0x27, 0xc0, 0x30, 0x75, 0xcd, 0x25, 0xaa, + 0x84, 0x3d, 0x3e, 0x8b, 0x23, 0x16, 0x06, 0xcb, 0xc6, 0x89, 0xa1, 0x9b, + 0x0c, 0x14, 0x88, 0x92, 0x69, 0x9a, 0xb7, 0xcc, 0x39, 0xac, 0x98, 0x0c, + 0x69, 0xda, 0x61, 0x31, 0xc8, 0xa9, 0x6d, 0x1a, 0xd1, 0x51, 0x4d, 0x98, + 0x9a, 0x86, 0x05, 0x7b, 0xd4, 0x0b, 0xc6, 0xd8, 0x3f, 0xfb, 0x88, 0xe6, + 0x38, 0x3a, 0xb6, 0x15, 0x46, 0x8d, 0x9a, 0xec, 0x1e, 0xec, 0xe0, 0x7b, + 0x28, 0xa7, 0x6a, 0x1a, 0xcb, 0xa8, 0x8a, 0x17, 0x6f, 0xbd, 0x19, 0x63, + 0xb9, 0xf1, 0x8b, 0x70, 0xd1, 0x47, 0x15, 0xe4, 0x04, 0x49, 0xaa, 0x6f, + 0xde, 0xd1, 0x3b, 0x8b, 0xa4, 0x42, 0xc5, 0x39, 0x9d, 0x4d, 0x84, 0x36, + 0xb2, 0x39, 0x4c, 0xe1, 0x4e, 0xcf, 0xe1, 0xeb, 0x2c, 0xce, 0x8c, 0x39, + 0xed, 0x41, 0xfb, 0xc5, 0x95, 0xa9, 0xf0, 0x66, 0xe0, 0x18, 0x4a, 0x41, + 0x0c, 0xa1, 0x7c, 0x11, 0xc4, 0xa5, 0x40, 0x0c, 0xc4, 0x35, 0x86, 0x9a, + 0xb0, 0xcb, 0xf1, 0x89, 0xf3, 0x7f, 0x39, 0x2c, 0x25, 0x00, 0xa5, 0x1f, + 0x15, 0xa9, 0x72, 0x6c, 0x38, 0x2d, 0xb8, 0x04, 0x00, 0xde, 0x47, 0xdd, + 0x5b, 0x8d, 0x20, 0x18, 0x10, 0x80, 0x3e, 0xea, 0x5e, 0x6b, 0x94, 0x66, + 0x42, 0x02, 0x4f, 0x9e, 0x00, 0xc1, 0xe0, 0x18, 0x1d, 0x35, 0x47, 0x92, + 0x3f, 0xcb, 0xb0, 0x2c, 0x44, 0x10, 0x10, 0xa9, 0x39, 0x31, 0x26, 0x25, + 0x9d, 0x2d, 0x93, 0xe4, 0x74, 0xd6, 0x24, 0x5d, 0x1a, 0xcb, 0x58, 0x66, + 0x7f, 0x33, 0x74, 0x1c, 0x87, 0x65, 0x66, 0x57, 0xab, 0x63, 0x0a, 0xd8, + 0x0a, 0x12, 0x4d, 0x01, 0xba, 0x7d, 0x91, 0xc4, 0x0c, 0xe6, 0x30, 0x7f, + 0x1a, 0x66, 0x5b, 0x9b, 0x36, 0x9f, 0xd1, 0x0a, 0x4f, 0xcf, 0x51, 0x6c, + 0x3f, 0x27, 0x0b, 0x35, 0xb9, 0x21, 0x59, 0x2b, 0x4d, 0x9a, 0xb0, 0x48, + 0x6d, 0x52, 0xbe, 0xb6, 0x26, 0x97, 0xfc, 0xb6, 0x75, 0x39, 0x10, 0x36, + 0x43, 0xc5, 0x29, 0x0f, 0x69, 0x4c, 0xf9, 0xb1, 0x95, 0x8d, 0x4c, 0x17, + 0xfb, 0x14, 0x52, 0x79, 0x67, 0x53, 0x73, 0x29, 0x4d, 0x53, 0x2f, 0x15, + 0x60, 0x07, 0x79, 0x32, 0x9f, 0xea, 0x81, 0xcf, 0x9f, 0xf6, 0xf3, 0xc5, + 0xac, 0xae, 0x77, 0xd9, 0x9a, 0x80, 0x0b, 0xe4, 0x20, 0x58, 0x79, 0x12, + 0x88, 0x2f, 0x9c, 0x49, 0xc1, 0x38, 0x35, 0x3b, 0x74, 0x65, 0x12, 0x86, + 0x7f, 0x05, 0x4c, 0x4d, 0xcf, 0x4e, 0x3b, 0x17, 0x30, 0x03, 0x25, 0xe8, + 0xff, 0x04, 0x69, 0x08, 0x50, 0x00, 0xbe, 0x57, 0xdd, 0x96, 0x92, 0x20, + 0x01, 0x80, 0x3d, 0xea, 0xb6, 0xa4, 0x04, 0x09, 0x00, 0x78, 0x02, 0x0b, + 0x53, 0x68, 0xc1, 0xb1, 0x24, 0x99, 0xfd, 0xe3, 0xc0, 0xc2, 0x84, 0x52, + 0x42, 0xa8, 0x48, 0x3c, 0x16, 0x0c, 0xcc, 0x64, 0xb2, 0x09, 0x89, 0x65, + 0x73, 0x35, 0xa7, 0xe9, 0x6a, 0x63, 0x58, 0x86, 0x0c, 0xab, 0x96, 0x39, + 0x2e, 0x4b, 0xdb, 0x1e, 0x5b, 0xb3, 0x51, 0x63, 0x93, 0xc2, 0x56, 0xe4, + 0x2c, 0x35, 0x3e, 0xf7, 0x69, 0xaa, 0x98, 0x3d, 0x21, 0x89, 0xe4, 0x6e, + 0x20, 0x10, 0x24, 0x45, 0x37, 0x19, 0xa6, 0xbf, 0x56, 0x61, 0x52, 0x46, + 0x09, 0xe2, 0xd1, 0xed, 0x34, 0x1d, 0x8c, 0x3e, 0xe2, 0xbe, 0x36, 0x9f, + 0xc1, 0x58, 0x76, 0x7b, 0xb7, 0xf9, 0x10, 0xc7, 0x36, 0xeb, 0x04, 0xbd, + 0x67, 0x5c, 0x0b, 0xd6, 0x5c, 0xf6, 0xad, 0xc9, 0x06, 0xc5, 0xa4, 0xa9, + 0x3b, 0x53, 0xac, 0xf8, 0x3e, 0xf2, 0xc4, 0x9b, 0x58, 0x45, 0xfd, 0x98, + 0xed, 0xb1, 0x37, 0x16, 0x6a, 0xad, 0xc9, 0x99, 0x86, 0x76, 0x9f, 0x0a, + 0x94, 0x90, 0x9a, 0x05, 0xe0, 0xa8, 0x24, 0xfc, 0x46, 0x81, 0xed, 0x23, + 0x1f, 0xc8, 0x4b, 0x72, 0x65, 0x37, 0xe5, 0x42, 0x04, 0x9b, 0x18, 0x73, + 0x94, 0x99, 0x76, 0xe8, 0xca, 0x07, 0xce, 0x0a, 0x9e, 0x47, 0xdd, 0x46, + 0x1f, 0x97, 0x85, 0x8c, 0xa4, 0x1a, 0xf2, 0xa8, 0x67, 0xf4, 0x09, 0x12, + 0x19, 0x45, 0x35, 0x78, 0x02, 0x0c, 0x5b, 0xf0, 0x70, 0x3c, 0xe4, 0x19, + 0xf9, 0xd9, 0x38, 0x62, 0x61, 0x08, 0x11, 0x0e, 0x13, 0x23, 0xca, 0x35, + 0xd8, 0xa6, 0x74, 0x2c, 0x9a, 0x93, 0x89, 0x26, 0x59, 0xd2, 0xcc, 0x20, + 0x59, 0x89, 0x56, 0x2a, 0x32, 0x54, 0xb3, 0xa4, 0xe3, 0x20, 0x93, 0x5f, + 0xf3, 0xfe, 0xf1, 0xc8, 0x34, 0x1a, 0x59, 0x21, 0x69, 0x8e, 0x8b, 0x49, + 0x12, 0xbc, 0x16, 0x28, 0x32, 0x38, 0x89, 0xb0, 0xd3, 0x6c, 0x10, 0x1b, + 0x6d, 0x8a, 0x89, 0xcd, 0x94, 0xcd, 0x18, 0xdc, 0xe5, 0xcb, 0xc1, 0xe6, + 0xca, 0xe9, 0x54, 0xa7, 0x8f, 0x45, 0x23, 0x52, 0xf6, 0x2f, 0x8b, 0x49, + 0x43, 0xa6, 0xe4, 0x72, 0x8f, 0x6e, 0x77, 0x24, 0x90, 0x0a, 0x67, 0xed, + 0x48, 0xce, 0xb3, 0x80, 0xcd, 0xd3, 0xe5, 0xe0, 0x41, 0x2d, 0x30, 0x4e, + 0x33, 0xd3, 0x09, 0x4b, 0xc1, 0x25, 0x37, 0x6d, 0xde, 0x6e, 0x6d, 0xc5, + 0x4a, 0x02, 0x77, 0xee, 0x52, 0x02, 0x31, 0xbf, 0xc2, 0x65, 0x81, 0x27, + 0xa0, 0x06, 0x69, 0x22, 0xa4, 0xbc, 0x6c, 0xc6, 0x4a, 0x03, 0xbb, 0x29, + 0x25, 0x95, 0x8c, 0x9a, 0x96, 0xad, 0x47, 0xc3, 0x46, 0x13, 0x00, 0xbe, + 0x47, 0x3d, 0x63, 0x4b, 0xc3, 0x01, 0x80, 0x3d, 0xea, 0x19, 0x6b, 0x1a, + 0x05, 0x08, 0xe0, 0xc1, 0x13, 0x60, 0xa8, 0x4d, 0x31, 0x8e, 0x2e, 0x3a, + 0xc9, 0x3e, 0x1b, 0xcb, 0x42, 0x58, 0xf1, 0x88, 0x50, 0x34, 0x1a, 0x46, + 0x36, 0xcd, 0x6b, 0x5a, 0x95, 0xe6, 0xa7, 0x69, 0x46, 0x91, 0x1f, 0x91, + 0x44, 0x45, 0xee, 0x74, 0x36, 0x43, 0x48, 0xbd, 0xfd, 0xfd, 0x28, 0xcb, + 0x1b, 0xbf, 0x53, 0x7f, 0x62, 0x43, 0xaf, 0xf3, 0x91, 0xb1, 0x2d, 0xa0, + 0x67, 0x40, 0x26, 0xa3, 0x84, 0x80, 0x33, 0x92, 0x08, 0x93, 0x84, 0xc5, + 0xb3, 0x63, 0x13, 0x56, 0x64, 0xb0, 0x78, 0xcd, 0x82, 0xa5, 0x96, 0x02, + 0xe1, 0x54, 0xca, 0x93, 0x28, 0x70, 0x4b, 0x92, 0x84, 0x48, 0x24, 0xea, + 0xfc, 0x15, 0x59, 0xd6, 0xa9, 0xe7, 0xe2, 0xfc, 0x99, 0x54, 0xf8, 0x78, + 0xdf, 0xbd, 0x21, 0x42, 0x14, 0x8b, 0xf7, 0xe8, 0xf8, 0x6c, 0xbc, 0x22, + 0x1a, 0xc5, 0xc0, 0xd5, 0xe2, 0x36, 0x22, 0xd5, 0x6c, 0x85, 0x6b, 0x36, + 0x24, 0x12, 0x6e, 0x02, 0x82, 0x97, 0x60, 0xe5, 0x20, 0x8b, 0x28, 0x2b, + 0x0c, 0x35, 0x3b, 0x91, 0x01, 0xd6, 0x90, 0x35, 0x99, 0x02, 0x2e, 0xad, + 0x7b, 0xa3, 0x83, 0x50, 0x16, 0x1c, 0x02, 0x00, 0x9e, 0x47, 0x3d, 0x5c, + 0xcb, 0xc4, 0x01, 0x80, 0x3d, 0xea, 0xe9, 0x5b, 0x3a, 0x0e, 0x00, 0x78, + 0x02, 0x0b, 0x7e, 0x15, 0x61, 0x24, 0x4b, 0xfe, 0xb3, 0x41, 0x31, 0x16, + 0x00, 0x41, 0x82, 0x88, 0x24, 0x88, 0x01, 0x1d, 0xd0, 0x48, 0x9b, 0x4a, + 0x22, 0x8d, 0xa5, 0x49, 0xb2, 0x19, 0x6a, 0x38, 0x0e, 0x83, 0x64, 0xd4, + 0xfd, 0xcd, 0x34, 0x59, 0x56, 0xb4, 0x52, 0xaa, 0x48, 0xd2, 0x68, 0x92, + 0x4e, 0x4b, 0xf8, 0xda, 0x81, 0x9d, 0x93, 0x90, 0x19, 0x7b, 0x87, 0x0d, + 0x33, 0x8b, 0x33, 0xc8, 0x30, 0xe6, 0xad, 0x86, 0x24, 0x03, 0x61, 0xec, + 0xb4, 0x9b, 0x82, 0x35, 0xeb, 0x2f, 0x49, 0x47, 0x07, 0x3e, 0x8b, 0xa9, + 0x1c, 0x3a, 0x2b, 0x9e, 0x35, 0x36, 0x77, 0xe3, 0xb7, 0x52, 0x35, 0xb6, + 0x9a, 0x8d, 0xaf, 0x12, 0x59, 0xf7, 0xfd, 0xf6, 0x29, 0x5a, 0x2f, 0xfa, + 0x46, 0x55, 0xf5, 0x59, 0x88, 0x54, 0x42, 0x9e, 0x45, 0x36, 0xab, 0xc8, + 0x32, 0x46, 0xea, 0xea, 0x54, 0x33, 0xc0, 0x86, 0x48, 0x76, 0xfb, 0xca, + 0x64, 0xf4, 0x49, 0x90, 0x09, 0xab, 0xf0, 0x26, 0x61, 0xcb, 0x70, 0x78, + 0x49, 0x98, 0x23, 0xa9, 0xdd, 0x53, 0x0c, 0x8c, 0x1e, 0x11, 0x0a, 0x81, + 0xda, 0xc5, 0x0a, 0x4a, 0x60, 0x1a, 0xbb, 0x81, 0x03, 0x9e, 0x47, 0x3d, + 0x53, 0x4d, 0x33, 0x01, 0x08, 0x40, 0x1e, 0xf5, 0x48, 0x2d, 0x4d, 0x16, + 0x68, 0x12, 0x78, 0xf4, 0x04, 0x18, 0xa6, 0xaa, 0xe4, 0x59, 0x3c, 0xfb, + 0x07, 0x58, 0x58, 0x46, 0x41, 0x34, 0x12, 0x4f, 0xb4, 0x32, 0x39, 0xb9, + 0x83, 0x26, 0x69, 0x34, 0xa2, 0xf2, 0x32, 0x8b, 0xb2, 0xc1, 0x32, 0xcc, + 0x99, 0x15, 0x5d, 0x19, 0x56, 0x92, 0xb0, 0x24, 0x1a, 0x2d, 0x83, 0x88, + 0xea, 0x8c, 0x53, 0x9b, 0x61, 0x4f, 0xe5, 0x25, 0x72, 0xed, 0x7b, 0xae, + 0x14, 0x49, 0xb5, 0x4f, 0x84, 0x9a, 0x5a, 0x5c, 0x5f, 0x1d, 0xf3, 0x20, + 0x1f, 0xd9, 0x57, 0x28, 0x28, 0x6c, 0xd3, 0x73, 0x97, 0xd2, 0xc7, 0xf2, + 0x93, 0x23, 0x0d, 0xd6, 0xb5, 0x98, 0x82, 0x11, 0xa3, 0x06, 0xc4, 0x3c, + 0xb3, 0xfd, 0x1d, 0xe6, 0xa5, 0xea, 0x95, 0x96, 0xfe, 0x61, 0xe8, 0xe7, + 0x7b, 0x4b, 0x8e, 0xd0, 0x65, 0xf9, 0x4b, 0x1b, 0x78, 0xc9, 0xfd, 0x2f, + 0xda, 0x09, 0xb9, 0x4a, 0x9c, 0xf9, 0x79, 0x5c, 0xd8, 0x42, 0xa6, 0xe5, + 0x68, 0x70, 0xc6, 0x21, 0x72, 0x24, 0x5c, 0x3d, 0xf3, 0x26, 0x7e, 0x9f, + 0xf1, 0x7d, 0x3a, 0x78, 0x9c, 0x03, 0xaf, 0x87, 0x04, 0x5f, 0x04, 0x23, + 0xc6, 0x9b, 0x2c, 0xe5, 0x40, 0xed, 0xa9, 0x16, 0xc0, 0x06, 0x9e, 0x47, + 0x3d, 0x74, 0x2f, 0x0e, 0xce, 0x00, 0x40, 0x1e, 0xf5, 0xd0, 0xbd, 0x38, + 0x38, 0x03, 0x00, 0x9e, 0x00, 0xd2, 0xd4, 0xe9, 0x98, 0x98, 0x25, 0xff, + 0x19, 0xc0, 0x02, 0x50, 0x54, 0x84, 0x56, 0x82, 0x07, 0xc6, 0xa0, 0x49, + 0x03, 0x12, 0x1d, 0x20, 0x6a, 0x1c, 0x96, 0x69, 0x1a, 0x66, 0xb3, 0x32, + 0x8c, 0xe3, 0x2c, 0x4d, 0xab, 0x92, 0xa9, 0x61, 0x88, 0x66, 0xb3, 0x00, + 0x8d, 0xdf, 0x8a, 0xb5, 0xa9, 0xb9, 0xd1, 0x75, 0xdf, 0xbc, 0x81, 0xa5, + 0xc5, 0x86, 0xf7, 0xad, 0xc8, 0x66, 0xe0, 0x23, 0xa3, 0x3a, 0xcc, 0xfe, + 0x5d, 0x47, 0x1c, 0x23, 0x49, 0xfb, 0x36, 0x3f, 0xd7, 0xb3, 0x57, 0x06, + 0x3e, 0xe1, 0xe3, 0xf6, 0x6f, 0x2e, 0x37, 0x90, 0x77, 0x27, 0x9e, 0x40, + 0xcc, 0xfb, 0xec, 0xdc, 0xa2, 0x29, 0xb9, 0xe8, 0x55, 0x24, 0x53, 0xec, + 0x3a, 0xd2, 0x50, 0xae, 0x36, 0x55, 0x5b, 0x79, 0xe3, 0xf2, 0x3c, 0x99, + 0xc1, 0x76, 0xfb, 0x4b, 0xe3, 0x6f, 0x80, 0x3c, 0xa1, 0x4d, 0xa4, 0x1b, + 0x82, 0x67, 0x5a, 0x51, 0x92, 0x63, 0x87, 0x28, 0xed, 0xc0, 0x09, 0x78, + 0x57, 0xda, 0x18, 0x22, 0xb5, 0x9d, 0x09, 0xd0, 0x39, 0x0d, 0x84, 0x10, + 0x9c, 0x65, 0xda, 0x01, 0x9e, 0x47, 0xbd, 0xc6, 0x52, 0x16, 0xc1, 0x04, + 0x33, 0xc8, 0xa3, 0x5e, 0x62, 0x29, 0x9b, 0x26, 0x1b, 0xd2, 0x0c, 0x3c, + 0x01, 0xa4, 0xad, 0x79, 0x72, 0x28, 0xca, 0x93, 0xfc, 0xb3, 0xb1, 0x2d, + 0xb0, 0x1d, 0x84, 0x38, 0x81, 0x40, 0x92, 0x46, 0x3a, 0x8f, 0x68, 0x92, + 0xa4, 0x99, 0xfc, 0x01, 0x91, 0x9b, 0x46, 0x36, 0x2f, 0x89, 0x66, 0x32, + 0x8d, 0x90, 0x76, 0x66, 0x8e, 0xed, 0x90, 0x4c, 0x0d, 0x16, 0x6d, 0xb5, + 0xd5, 0xd4, 0x54, 0xc8, 0xcd, 0x8d, 0x6f, 0x20, 0xb6, 0x24, 0xa8, 0x64, + 0x9c, 0x31, 0xa3, 0xca, 0xeb, 0xba, 0x27, 0x3a, 0xac, 0x1d, 0x03, 0x1b, + 0x06, 0x13, 0xfd, 0x25, 0x4d, 0x59, 0x2e, 0x09, 0x15, 0x6f, 0x92, 0x1c, + 0x73, 0x16, 0x54, 0xc2, 0xe2, 0x08, 0xc7, 0xa9, 0xc6, 0x84, 0xc4, 0xe5, + 0x8e, 0xb1, 0xc4, 0x2e, 0x32, 0x53, 0xb7, 0x73, 0x21, 0xc4, 0xf2, 0x57, + 0x73, 0x1a, 0x56, 0xc3, 0x83, 0xac, 0x78, 0x3f, 0x99, 0xb5, 0x5f, 0x5e, + 0x5b, 0x23, 0x7c, 0xec, 0xc2, 0x5e, 0x5f, 0x64, 0x9b, 0x71, 0x25, 0xba, + 0xfc, 0x97, 0x2a, 0x08, 0x01, 0x02, 0x36, 0x1c, 0x12, 0x93, 0x63, 0x24, + 0x05, 0xc2, 0x20, 0x61, 0x12, 0x3e, 0xda, 0xcd, 0x9b, 0x19, 0xc0, 0xd9, + 0x21, 0xe2, 0x2c, 0x40, 0xb2, 0x5d, 0xa2, 0x66, 0xb2, 0xce, 0x6f, 0x19, + 0x00, 0x7e, 0x47, 0xbd, 0x94, 0x9a, 0x49, 0x90, 0x16, 0x00, 0xee, 0xa8, + 0xd7, 0x54, 0x32, 0x09, 0xd2, 0x0a, 0x80, 0x37, 0xc0, 0x00, 0x96, 0xcd, + 0xa1, 0x3c, 0x06, 0xcb, 0xfe, 0x61, 0x36, 0xb6, 0x85, 0x0d, 0x4a, 0x30, + 0xf1, 0x44, 0xcb, 0x76, 0x63, 0x20, 0x90, 0x89, 0x06, 0x69, 0x32, 0x91, + 0xd7, 0xb1, 0x89, 0x63, 0x49, 0xa6, 0x23, 0x69, 0xd3, 0xb0, 0xb7, 0xc3, + 0x26, 0x48, 0xc4, 0x38, 0x69, 0x78, 0x99, 0xce, 0x3b, 0x23, 0x0c, 0x6a, + 0xf6, 0x53, 0x77, 0x42, 0x24, 0x16, 0x55, 0xe4, 0x2a, 0xc6, 0x32, 0x3f, + 0xeb, 0xac, 0x29, 0x62, 0x93, 0x36, 0x69, 0xdb, 0x05, 0x39, 0xc5, 0x14, + 0x4c, 0x4d, 0xa5, 0x20, 0xde, 0x89, 0x28, 0xa5, 0xb7, 0x6d, 0x35, 0xba, + 0x1b, 0x6d, 0x76, 0xaa, 0xee, 0x98, 0xca, 0x0b, 0x14, 0x4a, 0xfb, 0x3a, + 0x7a, 0x6c, 0x61, 0x67, 0xf2, 0xb3, 0xb2, 0xa4, 0x77, 0x13, 0x75, 0x96, + 0x6c, 0x14, 0x75, 0xfe, 0xec, 0x9e, 0x7f, 0x34, 0x72, 0x58, 0x92, 0x0c, + 0x6b, 0x71, 0xae, 0x6a, 0xcd, 0x5e, 0xae, 0x8b, 0x73, 0x39, 0x43, 0x52, + 0x9f, 0x05, 0xb7, 0xcb, 0x89, 0x28, 0x90, 0xfa, 0x88, 0xa0, 0x12, 0x90, + 0xe6, 0xda, 0x69, 0xbc, 0x28, 0xa0, 0x52, 0xb0, 0x33, 0x4c, 0xea, 0xd6, + 0x48, 0x35, 0x4e, 0x49, 0xa5, 0x2a, 0x0a, 0x00, 0x7e, 0x47, 0xbd, 0xf6, + 0x16, 0xb5, 0xae, 0x6f, 0x00, 0xb8, 0xa3, 0x5e, 0x7b, 0x2d, 0xd5, 0xba, + 0xbe, 0x41, 0x00, 0x3c, 0x01, 0x96, 0x5a, 0x15, 0x61, 0x1c, 0xfa, 0xe4, + 0x7f, 0x1c, 0x5a, 0x00, 0xd4, 0xa3, 0x52, 0xa4, 0xa4, 0x2e, 0xb2, 0xf9, + 0x8d, 0xc8, 0xcd, 0x44, 0xc8, 0xc9, 0x26, 0xa9, 0x4a, 0xe5, 0x27, 0xf2, + 0x73, 0xb3, 0x91, 0x44, 0xdb, 0x79, 0x8a, 0xbf, 0x79, 0xa3, 0x63, 0x3b, + 0xab, 0x99, 0x24, 0xea, 0x67, 0x8a, 0x32, 0xe2, 0xba, 0xf2, 0xea, 0x92, + 0x31, 0x8c, 0xee, 0xc9, 0x8a, 0xf9, 0xaa, 0xed, 0x47, 0x5e, 0x16, 0x9b, + 0x30, 0x66, 0x60, 0xf8, 0xa3, 0xb0, 0x21, 0x4d, 0xdc, 0x3a, 0x58, 0xcc, + 0x45, 0xe7, 0xdf, 0x11, 0x2b, 0x64, 0x28, 0x9d, 0xf0, 0x44, 0xdc, 0xcb, + 0xa7, 0xb4, 0xed, 0x36, 0xc1, 0x18, 0xd5, 0xa7, 0x64, 0x1d, 0x5a, 0x3a, + 0x6e, 0x52, 0xcc, 0x58, 0x78, 0x73, 0xa4, 0x0f, 0x7f, 0xce, 0xff, 0x87, + 0x58, 0x7d, 0x98, 0xf2, 0xca, 0xe5, 0x83, 0x40, 0xb9, 0x91, 0xac, 0x47, + 0xa2, 0xa2, 0x3d, 0x92, 0x43, 0x6c, 0x15, 0x94, 0x16, 0x92, 0x1a, 0xd0, + 0xcd, 0x7e, 0x80, 0xe4, 0x01, 0xd4, 0x96, 0x4a, 0xa5, 0xb1, 0xdd, 0x55, + 0xce, 0x60, 0xda, 0x01, 0x3e, 0x47, 0xdd, 0xf6, 0x9a, 0x86, 0x03, 0x0a, + 0x50, 0x47, 0xbd, 0x8c, 0x35, 0x85, 0x03, 0x0a, 0xe0, 0x09, 0x80, 0xa9, + 0x4c, 0xc7, 0x66, 0xff, 0x8f, 0x8b, 0xb5, 0xc0, 0xa6, 0x49, 0xa1, 0xc3, + 0xa8, 0x18, 0x90, 0x66, 0x22, 0x93, 0xe4, 0xa6, 0xe3, 0xcd, 0xc9, 0xc6, + 0xc0, 0x54, 0xcc, 0xb9, 0xba, 0x6f, 0x31, 0x87, 0x61, 0xae, 0x2c, 0xb5, + 0xdf, 0x19, 0xa5, 0x35, 0x0c, 0x6b, 0xb9, 0x9a, 0x14, 0x2d, 0xf2, 0x39, + 0xa7, 0x6d, 0xcc, 0xb6, 0x09, 0x32, 0x8c, 0xd6, 0x16, 0x7d, 0x65, 0xc3, + 0xf0, 0x9b, 0x7b, 0x91, 0x5d, 0x37, 0xbe, 0x48, 0x8b, 0x07, 0x67, 0x24, + 0xad, 0xd5, 0xcc, 0x3b, 0x5b, 0x7f, 0xb1, 0xbc, 0x33, 0xe6, 0x73, 0xff, + 0x63, 0x85, 0x53, 0x9b, 0xb0, 0x29, 0x33, 0x73, 0xb2, 0x2a, 0x4d, 0x3c, + 0x1b, 0x17, 0xf9, 0x19, 0x72, 0x0c, 0x6a, 0x3e, 0xb5, 0xd1, 0xc5, 0xec, + 0x57, 0x2c, 0xde, 0x96, 0x4d, 0x19, 0x58, 0xd6, 0xd8, 0x43, 0x2c, 0xf8, + 0xdb, 0x8a, 0xc3, 0x80, 0x98, 0x66, 0xcd, 0xc9, 0xda, 0xd6, 0xde, 0x68, + 0x5e, 0x08, 0x84, 0x38, 0x6d, 0x82, 0x4e, 0x33, 0x04, 0x74, 0x65, 0x35, + 0x4a, 0x55, 0x55, 0xf0, 0x6a, 0xb1, 0x08, 0x66, 0x68, 0x60, 0x27, 0x26, + 0xc3, 0x62, 0xf3, 0x34, 0x00, 0xfe, 0x47, 0x7d, 0xb4, 0xb6, 0x3a, 0xc1, + 0x84, 0x12, 0x3e, 0x1c, 0xff, 0x51, 0x1f, 0xad, 0xad, 0xae, 0xc1, 0x24, + 0x29, 0xe1, 0x03, 0x0f, 0x20, 0x4c, 0x1e, 0x4e, 0x48, 0x71, 0xf6, 0x7f, + 0x1c, 0xb3, 0x30, 0xd8, 0x01, 0x26, 0x1e, 0x7a, 0x51, 0x36, 0x47, 0x34, + 0x25, 0x6d, 0x9a, 0x49, 0xf3, 0xd3, 0x61, 0xda, 0x58, 0x3a, 0x5b, 0xab, + 0x1d, 0x95, 0xa9, 0x86, 0x9e, 0x47, 0x9d, 0x43, 0x73, 0xc2, 0x17, 0xce, + 0x99, 0x26, 0x7c, 0xee, 0x45, 0xb2, 0x05, 0x84, 0x03, 0x0b, 0x33, 0xb4, + 0x57, 0xb0, 0x85, 0xd9, 0xaf, 0xcc, 0x01, 0x48, 0x9d, 0x8c, 0x9f, 0xf9, + 0xa9, 0x73, 0x75, 0xd8, 0xa8, 0x63, 0xbb, 0x2f, 0xbf, 0xc3, 0x69, 0xe5, + 0x75, 0x2b, 0x61, 0x15, 0x72, 0x1d, 0xc9, 0x5a, 0xed, 0xdc, 0xa6, 0x4e, + 0xf2, 0xe3, 0x6b, 0x7f, 0x97, 0x80, 0x72, 0x31, 0x16, 0xde, 0xaa, 0xcd, + 0x90, 0xb0, 0x24, 0xb7, 0xfe, 0xcb, 0x82, 0x9f, 0xfa, 0xf8, 0xbf, 0xb0, + 0x0a, 0xbb, 0xd5, 0xd4, 0x07, 0x99, 0x98, 0x89, 0x3d, 0x3e, 0x03, 0x3b, + 0x0a, 0x18, 0x25, 0x57, 0x8c, 0x89, 0x64, 0x12, 0xb6, 0x05, 0x20, 0xd0, + 0xeb, 0x4f, 0x64, 0xec, 0x3b, 0x4d, 0x67, 0xb9, 0x4d, 0x30, 0xd2, 0x88, + 0x5d, 0x09, 0x7f, 0x18, 0x68, 0x12, 0x00, 0xfe, 0x47, 0xfd, 0xd8, 0xeb, + 0x8e, 0x08, 0xc0, 0x08, 0x15, 0xfc, 0x51, 0xdf, 0x7b, 0xdd, 0x43, 0x04, + 0x60, 0x84, 0x0a, 0x1c, 0x53, 0x55, 0xd0, 0xc9, 0x33, 0xf2, 0x3f, 0xce, + 0x34, 0x10, 0x64, 0x75, 0x40, 0x4e, 0x4e, 0xe4, 0x64, 0x72, 0x97, 0x0d, + 0x22, 0x4d, 0x22, 0x95, 0x93, 0x1b, 0x2b, 0x31, 0x0c, 0x43, 0xe6, 0xc6, + 0x8e, 0xb9, 0x1d, 0xb2, 0x67, 0x23, 0x2d, 0xcc, 0xd0, 0x18, 0xb6, 0xa5, + 0xda, 0x68, 0x84, 0x1f, 0x87, 0x1e, 0x91, 0xcb, 0xf9, 0x0b, 0xff, 0x37, + 0x3e, 0x97, 0xf6, 0x51, 0x18, 0x21, 0x8e, 0x3d, 0x2f, 0x3f, 0x44, 0xa9, + 0x43, 0x3e, 0x71, 0xb1, 0x99, 0xbc, 0x36, 0x78, 0x09, 0x23, 0x52, 0x13, + 0x84, 0xa9, 0x5d, 0x61, 0x31, 0xca, 0x6d, 0x57, 0x22, 0xb5, 0xce, 0x59, + 0xf8, 0xa4, 0x37, 0xea, 0xfc, 0xd5, 0x1f, 0xf3, 0xcd, 0x06, 0x08, 0x1e, + 0x7d, 0x52, 0xc6, 0xff, 0x74, 0x87, 0x85, 0xb4, 0xec, 0xab, 0x88, 0x9d, + 0xfc, 0x59, 0x9d, 0x5d, 0x1e, 0x0a, 0xae, 0x6e, 0xc6, 0xb3, 0xd1, 0x4b, + 0x82, 0x0a, 0x04, 0x42, 0x12, 0x72, 0x36, 0x03, 0x2c, 0x4e, 0x29, 0x84, + 0xdd, 0x22, 0xd0, 0x34, 0x21, 0xe2, 0x4a, 0x30, 0xb8, 0xa0, 0x35, 0x45, + 0x92, 0xbe, 0x1b, 0x27, 0x31, 0x28, 0x81, 0x2f, 0x01, 0xfe, 0x47, 0x7d, + 0xaf, 0x7d, 0xef, 0xea, 0xa0, 0x99, 0xe1, 0x83, 0x3f, 0xea, 0x6b, 0x9d, + 0xf6, 0x29, 0x14, 0x0c, 0x23, 0xfc, 0x05, 0x27, 0xc7, 0x64, 0x4c, 0x12, + 0xba, 0xe8, 0xb3, 0x7f, 0x9c, 0x34, 0x04, 0x94, 0x18, 0x64, 0x90, 0x6c, + 0xe5, 0xe7, 0x65, 0xa3, 0xa1, 0x48, 0x17, 0x59, 0xd9, 0x0d, 0x38, 0x32, + 0x5a, 0x9a, 0x9c, 0x96, 0xb4, 0x5d, 0x8e, 0xeb, 0x86, 0xd6, 0x1a, 0x1a, + 0x9a, 0x6f, 0xee, 0xdc, 0xcb, 0x7b, 0x8a, 0xcd, 0xd3, 0xa0, 0x63, 0x7e, + 0x84, 0x38, 0x1f, 0x85, 0x43, 0xfd, 0x14, 0x13, 0x69, 0x29, 0xc8, 0xb5, + 0x0a, 0x83, 0xd1, 0x3e, 0x4f, 0x68, 0x1d, 0x3b, 0x2b, 0x4a, 0x01, 0x72, + 0x5e, 0x2b, 0xb4, 0x04, 0xaf, 0xb3, 0xe2, 0x4c, 0x14, 0x75, 0xd0, 0x90, + 0x80, 0xd9, 0x27, 0x8a, 0xcc, 0x94, 0xb3, 0x81, 0xd7, 0x25, 0x33, 0x38, + 0x23, 0x91, 0x8c, 0xe4, 0x39, 0xe7, 0x36, 0xde, 0x73, 0xdb, 0xa1, 0xc4, + 0x9c, 0x35, 0x58, 0x18, 0x47, 0x5a, 0xfa, 0x26, 0xde, 0x9a, 0xfe, 0xa7, + 0xa5, 0x48, 0x48, 0x21, 0x80, 0xed, 0xaf, 0xd2, 0x86, 0x78, 0x76, 0x71, + 0xb0, 0x02, 0x12, 0x12, 0xe3, 0xca, 0x0c, 0x76, 0x66, 0x07, 0x20, 0x5c, + 0x23, 0x90, 0x16, 0x20, 0x70, 0x00, 0xfe, 0x47, 0xfd, 0xbc, 0x8c, 0x57, + 0x09, 0x03, 0xd1, 0x0e, 0x75, 0x82, 0x3f, 0xe9, 0xd7, 0xa5, 0x5f, 0x85, + 0x83, 0x6c, 0x84, 0x3a, 0xe2, 0xe8, 0xd8, 0x3c, 0xb2, 0xa0, 0xfb, 0xff, + 0x31, 0x4e, 0x4a, 0xa9, 0x8c, 0xbc, 0x41, 0x33, 0x39, 0xb9, 0xb9, 0x72, + 0x46, 0x99, 0x2e, 0x64, 0xa2, 0x4d, 0xd3, 0xa5, 0x13, 0x32, 0x15, 0x4d, + 0x16, 0x07, 0x61, 0x98, 0x4e, 0x9a, 0x67, 0x56, 0x67, 0xce, 0x21, 0xdd, + 0xc8, 0x21, 0x36, 0xb9, 0x02, 0x39, 0x21, 0x75, 0xbc, 0x0b, 0x2c, 0xb4, + 0xc2, 0x06, 0x24, 0x8b, 0xc2, 0x51, 0x99, 0xdf, 0xbe, 0xab, 0x69, 0xca, + 0x74, 0x0d, 0x2c, 0x91, 0xc8, 0x53, 0xf5, 0x33, 0x63, 0x4b, 0xe8, 0x62, + 0x12, 0x66, 0x75, 0xf6, 0x71, 0x4c, 0x7f, 0x71, 0xde, 0x0a, 0xd2, 0x67, + 0xf5, 0xb4, 0xc5, 0x9a, 0x17, 0x6c, 0xc9, 0x18, 0x91, 0x7a, 0xb1, 0x13, + 0x97, 0x04, 0xfb, 0xea, 0x33, 0xf1, 0xa9, 0xab, 0x03, 0x67, 0xbc, 0xf2, + 0x08, 0x6a, 0x35, 0x67, 0x98, 0xaa, 0xf3, 0x0d, 0xcb, 0x74, 0xc6, 0x65, + 0x3a, 0xc5, 0x28, 0x48, 0x83, 0xa8, 0x6d, 0x1f, 0xe4, 0xdc, 0x13, 0x8b, + 0xb1, 0x26, 0xb5, 0x27, 0xa4, 0x5d, 0x0c, 0x78, 0xd8, 0x00, 0x89, 0x1a, + 0x1f, 0x02, 0xe7, 0x00, 0xbe, 0x47, 0xfd, 0xb3, 0x6d, 0x6f, 0xa4, 0x02, + 0x36, 0xb0, 0x47, 0xfd, 0xbb, 0xad, 0x77, 0x8c, 0x02, 0x0e, 0xe0, 0xd0, + 0xa1, 0x42, 0x48, 0x4e, 0x8a, 0x67, 0x0f, 0xc7, 0x38, 0x00, 0xcd, 0x9a, + 0x2f, 0x27, 0x96, 0xcf, 0xe4, 0x85, 0x34, 0x61, 0x9e, 0x26, 0x22, 0xb8, + 0x79, 0x57, 0x73, 0x20, 0x19, 0xcd, 0xa4, 0x3a, 0x7c, 0x69, 0xc1, 0xac, + 0x1a, 0x6f, 0xa7, 0xe0, 0x57, 0x67, 0xde, 0x91, 0x6d, 0xcb, 0x4f, 0xb5, + 0xa6, 0x16, 0x33, 0x44, 0xd9, 0x9f, 0x72, 0xcb, 0x24, 0xae, 0x04, 0x27, + 0x73, 0xae, 0x4e, 0x5c, 0xe1, 0x63, 0x23, 0xbd, 0x98, 0x93, 0x55, 0x8c, + 0x05, 0x6b, 0xd9, 0x81, 0x59, 0xea, 0x48, 0xde, 0x62, 0xb9, 0xc5, 0x9b, + 0x76, 0xc4, 0x16, 0xc5, 0x95, 0x5d, 0xd7, 0xca, 0xfe, 0xb9, 0xe1, 0xdc, + 0xc5, 0x69, 0xc6, 0x4c, 0xb1, 0xea, 0xc4, 0xc6, 0xb3, 0x1a, 0xaf, 0xb2, + 0x3f, 0x96, 0xa9, 0xa6, 0x33, 0xa3, 0x4c, 0x9b, 0x02, 0xa5, 0x8d, 0x37, + 0x61, 0xff, 0x9b, 0xd3, 0x4e, 0xeb, 0x95, 0x0a, 0x2e, 0x41, 0xf6, 0x89, + 0xe1, 0x9c, 0xad, 0x81, 0x3d, 0x72, 0xf9, 0x34, 0xc1, 0x6e, 0x1c, 0xcd, + 0x01, 0x34, 0x02, 0x38, 0x00, 0xde, 0x47, 0xfd, 0x6f, 0x5b, 0x7e, 0xb8, + 0x00, 0x0e, 0xd0, 0x47, 0xfd, 0x6f, 0x5b, 0x7e, 0xa8, 0x00, 0x36, 0xa0, + 0x56, 0x48, 0x81, 0xa2, 0x3c, 0xff, 0xc3, 0x31, 0x06, 0x00, 0x60, 0xc2, + 0x54, 0x89, 0xf3, 0x68, 0x41, 0x55, 0x0c, 0xd5, 0x1c, 0xcc, 0xf9, 0x93, + 0x1f, 0xb9, 0x42, 0x62, 0x81, 0x41, 0x2f, 0xe0, 0x83, 0xa4, 0x45, 0x42, + 0xad, 0x30, 0x4b, 0xc0, 0x8e, 0x39, 0xd6, 0x83, 0x1a, 0xc2, 0x5f, 0xc6, + 0x3a, 0x8b, 0xe3, 0xd4, 0xb2, 0xa9, 0xb3, 0x79, 0x62, 0x33, 0x37, 0xb0, + 0x96, 0x5f, 0x66, 0xef, 0x7c, 0xce, 0x37, 0xbb, 0x7b, 0x80, 0xf2, 0x12, + 0xb5, 0x63, 0x95, 0x65, 0x57, 0x32, 0x29, 0xa7, 0x31, 0xa1, 0xe6, 0x27, + 0x0e, 0xc8, 0xe2, 0xf9, 0x81, 0x4e, 0xc6, 0x05, 0x01, 0x2a, 0x90, 0x33, + 0x15, 0x4d, 0x8a, 0x1c, 0x68, 0xa2, 0xbb, 0x41, 0x09, 0x02, 0xd6, 0x08, + 0x18, 0x20, 0x01, 0x02, 0x06, 0x12, 0x0d, 0x18, 0x00, 0xbe, 0x47, 0xfd, + 0xef, 0x2c, 0x5f, 0xba, 0x00, 0x0e, 0xb0, 0x47, 0xfd, 0xef, 0x2c, 0x5f, + 0xba, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x21, 0x06, 0x10, + 0x63, 0x00, 0x30, 0x80, 0x00, 0x00, 0xde, 0x00, 0xb8, 0x04, 0x20, 0x00, + 0x9c, 0x00, 0x28, 0xa0, 0x80, 0x03 +}; +unsigned int data_sound_win_ogg_len = 16326; diff --git a/onefile/data-src/history/ancient-dates-orig.txt b/onefile/data-src/history/ancient-dates-orig.txt new file mode 100644 index 0000000..4ce0854 --- /dev/null +++ b/onefile/data-src/history/ancient-dates-orig.txt @@ -0,0 +1,75 @@ +2 млн. лет назад Древнейшие люди (человек умелый) Первые люди +40 тыс. лет назад Человек разумный Первые люди +10 тыс. лет назад Возникновение земледелия Первые люди +9 тыс. лет назад Обработка меди (Западная Азия) Первые люди + +3000 лет д.н.э. Объединение Египта (Южный подчинил себе Северный) Египет +2600 лет д.н.э. Возведение пирамиды Хеопса Египет +1500 лет д.н.э. Завоевания фараона Тутмоса Египет + +1792-1760 гг д.н.э. Правление Хаммурапи (Вавилонское царство) Двуречье, Вавилон + +X век (1000-900гг) д.н.э. Столицей Еврейского царства стал Иерусалим Еврейское царство + +X век (1000-900гг) д.н.э. Ремесленники начали использовать железо Общее2 +VIII-VII вв (800-600гг) д.н.э. Завоевания ассирийских царей Ассирия +612 г д.н.э. Захват и сожжение Ниневиии, падение Ассирийской державы Ассирия + +VII век (700-600гг) д.н.э Первая чеканная монета (из сплава золота с серебром, в Лидии) Общее3 +VI век (600-500гг) д.н.э. Завоевания персидского царя Кира Персия +538 г д.н.э. Кир захватил Вавилон Персия +525 г д.н.э. Сын Кира захватил Египет Персия + +III век (300-200гг) д.н.э. Ашока захватил и объединил все индийские племена Индия + +221 г д.н.э Цинь Шихуан захватил и объединил все китайские царства Китай + +XV в (1500-1400гг) д.н.э. Гибель Критского царства (извержение вулкана на о.Фера) Греция +~1200г д.н.э. Троянская война Греция +VIII в (800-700гг) д.н.э. Поэмы Гомера Греция +VIII в (800-700гг) д.н.э. Греческая письменность (взамен древнейшего письма) Греция +594 г д.н.э. Избрание Солона архонтом древней Аттики Греция + +VI в д.н.э. Становление Спарты Греция + +VIII-VII вв (800-600гг) д.н.э. Греческие колонии Греция + +776 г д.н.э. Первые Олимпийские игры Греция + +490 г д.н.э. Марафонская битва (греки отбили нападение персов) Греция +480 г д.н.э. Поход персидского царя Ксеркса на Элладу Греция + +V в д.н.э (500-400гг) д.н.э. Возвышение Афин, расцвет демократии Греция +443 г д.н.э. Первое избрание Перикла Греция + +IV в (400-300гг) д.н.э. Македонские завоевания Македония +338 г д.н.э. Битва близ города Хиронея Македония +334 г д.н.э. Поход Александра Македонского на восток Македония +331 г д.н.э. Поход Александра Македонского вглубь Персии Македония +323 г д.н.э. Смерть Александра Македонского Македония + +VI в (600-500гг) д.н.э. Рим стал многолюдным городом на семи холмах Рим +509 г д.н.э. Установление Римской республики Рим +390 г д.н.э. Нашествие галлов на Рим Рим +326 г д.н.э. Запрещение долгового рабства в Риме Рим +280 г д.н.э. Поход Пирра на Италию Рим +216 г д.н.э. Битва при Каннах Рим +202 г д.н.э. Битва близ города Зама Рим +146 г д.н.э. Разрушение Карфагена и Коринфа Рим +133 г д.н.э. Земельный закон Тиберия Рим +73-71гг д.н.э. Восстание Спартака Рим +49 г д.н.э. Захват Цезарем единоличной власти в Риме Рим +44 г д.н.э. (15 марта) Убийство Цезаря Рим +31 г д.н.э. Битва Антония и Октавиана около мыса Акций Рим +30-14гг д.н.э. Единовластие Октавиана Августа, конец республики, начало империи Рим +I в (1-100гг) н.э. Правление Нерона Рим +70 г н.э. Разрушение Иерусалима Рим +II в (100-200гг) н.э. Расцвет Римской Империи Рим +98-117гг н.э. Правление Траяна Рим +IV в (300-400гг) н.э. Правление Константина Рим +313 г н.э. Прекращение преследования христиан в Римской Империи Рим +330 г н.э. Перенос столицы из Рима в Константинополь (Византий) Рим +395 г н.э. Разделение Римской империи на Восточную и Западную Рим +410 г н.э. Захват и разграбление Рима готами Рим +455 г н.э. Захват и разграбление Рима вандалами Рим +476 г н.э. Падение Западной Римской Империи Рим diff --git a/onefile/data/history/ancient-dates.txt b/onefile/data/history/ancient-dates.txt new file mode 100644 index 0000000..f460716 --- /dev/null +++ b/onefile/data/history/ancient-dates.txt @@ -0,0 +1,60 @@ +2 млн. лет назад Древнейшие люди (человек умелый) Первые люди +40 тыс. лет назад Человек разумный Первые люди +10 тыс. лет назад Возникновение земледелия Первые люди +9 тыс. лет назад Обработка меди (Западная Азия) Первые люди +3000 лет д.н.э. Объединение Египта (Южный подчинил себе Северный) Египет +2600 лет д.н.э. Возведение пирамиды Хеопса Египет +1792-1760 гг д.н.э. Правление Хаммурапи (Вавилонское царство) Двуречье, Вавилон +1500 лет д.н.э. Завоевания фараона Тутмоса Египет +XV в (1500-1400гг) д.н.э. Гибель Критского царства (извержение вулкана на о.Фера) Греция +1200 лет д.н.э. Троянская война Греция +X век (1000-900гг) д.н.э. Столицей Еврейского царства стал Иерусалим ~Еврейское царство +X век (1000-900гг) д.н.э. Ремесленники начали использовать железо ~~Общее2 +VIII-VII вв (800-600гг) д.н.э. Греческие колонии Греция +VIII-VII вв (800-600гг) д.н.э. Завоевания ассирийских царей Ассирия +VIII век (800-700гг) д.н.э. Греческая письменность (взамен древнейшего письма) Греция +VIII век (800-700гг) д.н.э. Поэмы Гомера Греция +776 г д.н.э. Первые Олимпийские игры Греция +VII век (700-600гг) д.н.э Первая чеканная монета (из сплава золота с серебром, в Лидии) ~~Общее3 +612 г д.н.э. Захват и сожжение Ниневиии, падение Ассирийской державы Ассирия +VI век (600-500гг) д.н.э. Становление Спарты Греция +VI век (600-500гг) д.н.э. Рим стал многолюдным городом на семи холмах Рим +VI век (600-500гг) д.н.э. Завоевания персидского царя Кира ~~Персия +594 г д.н.э. Избрание Солона архонтом древней Аттики Греция +538 г д.н.э. Кир захватил Вавилон ~~Персия +525 г д.н.э. Сын Кира захватил Египет ~~Персия +509 г д.н.э. Установление Римской республики Рим +V век д.н.э (500-400гг) д.н.э. Возвышение Афин, расцвет демократии Греция +490 г д.н.э. Марафонская битва (греки отбили нападение персов) Греция +480 г д.н.э. Поход персидского царя Ксеркса на Элладу Греция +443 г д.н.э. Первое избрание Перикла Греция +390 г д.н.э. Нашествие галлов на Рим Рим +IV век (400-300гг) д.н.э. Македонские завоевания Македония +338 г д.н.э. Битва близ города Хиронея Македония +334 г д.н.э. Поход Александра Македонского на восток Македония +331 г д.н.э. Поход Александра Македонского вглубь Персии Македония +326 г д.н.э. Запрещение долгового рабства в Риме Рим +323 г д.н.э. Смерть Александра Македонского Македония +III век (300-200гг) д.н.э. Ашока захватил и объединил все индийские племена ~Индия +280 г д.н.э. Поход Пирра на Италию Рим +221 г д.н.э Цинь Шихуан захватил и объединил все китайские царства ~~Китай +216 г д.н.э. Битва при Каннах Рим +202 г д.н.э. Битва близ города Зама Рим +146 г д.н.э. Разрушение Карфагена и Коринфа Рим +133 г д.н.э. Земельный закон Тиберия Рим +73-71гг д.н.э. Восстание Спартака Рим +49 г д.н.э. Захват Цезарем единоличной власти в Риме Рим +44 г д.н.э. (15 марта) Убийство Цезаря Рим +31 г д.н.э. Битва Антония и Октавиана около мыса Акций Рим +30-14гг д.н.э. Единовластие Октавиана Августа, конец республики, начало империи Рим +I век (1-100гг) н.э. Правление Нерона Рим +70 г н.э. Разрушение Иерусалима Рим +II век (100-200гг) н.э. Расцвет Римской Империи Рим +98-117гг н.э. Правление Траяна Рим +IV век (300-400гг) н.э. Правление Константина Рим +313 г н.э. Прекращение преследования христиан в Римской Империи Рим +330 г н.э. Перенос столицы из Рима в Константинополь (Византий) Рим +395 г н.э. Разделение Римской империи на Восточную и Западную Рим +410 г н.э. Захват и разграбление Рима готами Рим +455 г н.э. Захват и разграбление Рима вандалами Рим +476 г н.э. Падение Западной Римской Империи Рим diff --git a/onefile/data/output-demo/ancient-dates.png b/onefile/data/output-demo/ancient-dates.png new file mode 100644 index 0000000..4f30b97 Binary files /dev/null and b/onefile/data/output-demo/ancient-dates.png differ diff --git a/onefile/data/output-demo/crypt.png b/onefile/data/output-demo/crypt.png new file mode 100644 index 0000000..263359d Binary files /dev/null and b/onefile/data/output-demo/crypt.png differ diff --git a/onefile/data/output-demo/history/ancient-dates.png b/onefile/data/output-demo/history/ancient-dates.png new file mode 100644 index 0000000..4f30b97 Binary files /dev/null and b/onefile/data/output-demo/history/ancient-dates.png differ diff --git a/onefile/data/output-demo/splitted-text.pdf b/onefile/data/output-demo/splitted-text.pdf new file mode 100644 index 0000000..777bbcf Binary files /dev/null and b/onefile/data/output-demo/splitted-text.pdf differ diff --git "a/onefile/data/output-demo/writing/writings - 08 - \320\275.svg" "b/onefile/data/output-demo/writing/writings - 08 - \320\275.svg" new file mode 100644 index 0000000..2247db6 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 08 - \320\275.svg" @@ -0,0 +1,291 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + На кухне + Ночь, день - спать лень.Есть дым - чёрт с ним.Сна нет - есть сон лет.Кино - кончилось давно. + Мой дом, я в нёмСижу - пень пнём.Есть свет, сна нет.Есть ночь - уже уходит прочь. + Стоит таз, горит газ.Щелчок - и газ погас.Пора спать - в кровать.Вставать, завтра вставать. + н н н н н н н н н н + + + н н н н н н н н н н + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 09 - \320\272.svg" "b/onefile/data/output-demo/writing/writings - 09 - \320\272.svg" new file mode 100644 index 0000000..8cb4176 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 09 - \320\272.svg" @@ -0,0 +1,211 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + к к к к к к к к к к + + + к к к к к к к к к к + + + – Никакие не сыски.Никакие не хыхки,а коротко и ясно: фыфки! + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 10 - \320\243\321\203.svg" "b/onefile/data/output-demo/writing/writings - 10 - \320\243\321\203.svg" new file mode 100644 index 0000000..60bf955 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 10 - \320\243\321\203.svg" @@ -0,0 +1,523 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + у у у у у у у у у уук + + + + + + + + Солнце светит, и растет трава,но тебе она не нужна.Все не так, и все не то,когда твоя девушка больна, У-уу-укогда твоя девушка больна,У-уу-укогда больна... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 11 - \321\201.svg" "b/onefile/data/output-demo/writing/writings - 11 - \321\201.svg" new file mode 100644 index 0000000..12e0d34 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 11 - \321\201.svg" @@ -0,0 +1,904 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 12 - \320\273\320\274.svg" "b/onefile/data/output-demo/writing/writings - 12 - \320\273\320\274.svg" new file mode 100644 index 0000000..f62cfd5 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 12 - \320\273\320\274.svg" @@ -0,0 +1,642 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + л л л л л л л л л л + + + + + м м м м м м м м + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 13 - \320\232\320\235.svg" "b/onefile/data/output-demo/writing/writings - 13 - \320\232\320\235.svg" new file mode 100644 index 0000000..807f431 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 13 - \320\232\320\235.svg" @@ -0,0 +1,1191 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + К К К К К + Н Н Н Н Н + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 14 - \320\241.svg" "b/onefile/data/output-demo/writing/writings - 14 - \320\241.svg" new file mode 100644 index 0000000..e0d3ec3 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 14 - \320\241.svg" @@ -0,0 +1,1627 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 15 - \320\234.svg" "b/onefile/data/output-demo/writing/writings - 15 - \320\234.svg" new file mode 100644 index 0000000..464d1d6 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 15 - \320\234.svg" @@ -0,0 +1,2060 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Соедините стрелками: + + diff --git "a/onefile/data/output-demo/writing/writings - 16 - \321\210.svg" "b/onefile/data/output-demo/writing/writings - 16 - \321\210.svg" new file mode 100644 index 0000000..7d474f4 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 16 - \321\210.svg" @@ -0,0 +1,2633 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 17 - \320\250.svg" "b/onefile/data/output-demo/writing/writings - 17 - \320\250.svg" new file mode 100644 index 0000000..0ef9bd0 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 17 - \320\250.svg" @@ -0,0 +1,6008 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Соедините стрелками: + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 18 - \320\220.svg" "b/onefile/data/output-demo/writing/writings - 18 - \320\220.svg" new file mode 100644 index 0000000..4353f2c --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 18 - \320\220.svg" @@ -0,0 +1,2869 @@ + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Соедините стрелками: + + + + diff --git "a/onefile/data/output-demo/writing/writings - 19 - \320\264.svg" "b/onefile/data/output-demo/writing/writings - 19 - \320\264.svg" new file mode 100644 index 0000000..7d0974b --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 19 - \320\264.svg" @@ -0,0 +1,13795 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 20 - \320\224.svg" "b/onefile/data/output-demo/writing/writings - 20 - \320\224.svg" new file mode 100644 index 0000000..6b399a0 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 20 - \320\224.svg" @@ -0,0 +1,2150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 21 - \320\222\320\262.svg" "b/onefile/data/output-demo/writing/writings - 21 - \320\222\320\262.svg" new file mode 100644 index 0000000..93f053d --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 21 - \320\222\320\262.svg" @@ -0,0 +1,9847 @@ + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 22 - \320\265\321\221.svg" "b/onefile/data/output-demo/writing/writings - 22 - \320\265\321\221.svg" new file mode 100644 index 0000000..acc134e --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 22 - \320\265\321\221.svg" @@ -0,0 +1,2932 @@ + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 23 - \320\225\320\201.svg" "b/onefile/data/output-demo/writing/writings - 23 - \320\225\320\201.svg" new file mode 100644 index 0000000..d1b69b0 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 23 - \320\225\320\201.svg" @@ -0,0 +1,2737 @@ + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 24 - \320\261.svg" "b/onefile/data/output-demo/writing/writings - 24 - \320\261.svg" new file mode 100644 index 0000000..6f60176 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 24 - \320\261.svg" @@ -0,0 +1,2439 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nautilus Pompilius + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 25 - \320\221.svg" "b/onefile/data/output-demo/writing/writings - 25 - \320\221.svg" new file mode 100644 index 0000000..db95e5c --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 25 - \320\221.svg" @@ -0,0 +1,3415 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 26 - \320\267.svg" "b/onefile/data/output-demo/writing/writings - 26 - \320\267.svg" new file mode 100644 index 0000000..62e37d9 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 26 - \320\267.svg" @@ -0,0 +1,2488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 27 - \320\227.svg" "b/onefile/data/output-demo/writing/writings - 27 - \320\227.svg" new file mode 100644 index 0000000..4687eff --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 27 - \320\227.svg" @@ -0,0 +1,2366 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 28 - \321\217.svg" "b/onefile/data/output-demo/writing/writings - 28 - \321\217.svg" new file mode 100644 index 0000000..f70229c --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 28 - \321\217.svg" @@ -0,0 +1,2350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 29 - \320\257.svg" "b/onefile/data/output-demo/writing/writings - 29 - \320\257.svg" new file mode 100644 index 0000000..6a9c3e8 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 29 - \320\257.svg" @@ -0,0 +1,2088 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 30x - \321\205\320\266\320\271\321\207\321\206\321\211\321\204.svg" "b/onefile/data/output-demo/writing/writings - 30x - \321\205\320\266\320\271\321\207\321\206\321\211\321\204.svg" new file mode 100644 index 0000000..353ff46 --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 30x - \321\205\320\266\320\271\321\207\321\206\321\211\321\204.svg" @@ -0,0 +1,2726 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/onefile/data/output-demo/writing/writings - 30x2 - \321\215\321\216\321\214\321\212.svg" "b/onefile/data/output-demo/writing/writings - 30x2 - \321\215\321\216\321\214\321\212.svg" new file mode 100644 index 0000000..8dc83be --- /dev/null +++ "b/onefile/data/output-demo/writing/writings - 30x2 - \321\215\321\216\321\214\321\212.svg" @@ -0,0 +1,1961 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/onefile/data/output-demo/writing/writings - grid.svg b/onefile/data/output-demo/writing/writings - grid.svg new file mode 100644 index 0000000..a81076e --- /dev/null +++ b/onefile/data/output-demo/writing/writings - grid.svg @@ -0,0 +1,935 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/onefile/data/output/history/.placeholder b/onefile/data/output/history/.placeholder new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/onefile/data/output/history/.placeholder diff --git a/onefile/data/people.png b/onefile/data/people.png new file mode 100644 index 0000000..8c96d3f Binary files /dev/null and b/onefile/data/people.png differ diff --git a/onefile/data/sound/beep.ogg b/onefile/data/sound/beep.ogg new file mode 100644 index 0000000..71f5128 Binary files /dev/null and b/onefile/data/sound/beep.ogg differ diff --git a/onefile/data/sound/begin.ogg b/onefile/data/sound/begin.ogg new file mode 100644 index 0000000..30e1167 Binary files /dev/null and b/onefile/data/sound/begin.ogg differ diff --git a/onefile/data/sound/nom.ogg b/onefile/data/sound/nom.ogg new file mode 100644 index 0000000..3a55a7e Binary files /dev/null and b/onefile/data/sound/nom.ogg differ diff --git a/onefile/data/sound/win.ogg b/onefile/data/sound/win.ogg new file mode 100644 index 0000000..17e68e2 Binary files /dev/null and b/onefile/data/sound/win.ogg differ diff --git a/onefile/history-dates-test.c b/onefile/history-dates-test.c new file mode 100644 index 0000000..b08a562 --- /dev/null +++ b/onefile/history-dates-test.c @@ -0,0 +1,281 @@ + +#include +#include +#include + + +#define MAXREC 1000 +#define ANSWERS 4 + +#define MAXQUESTS 10 + + +typedef struct { + char text[128]; +} Date; + +typedef struct { + char text[1024]; +} Text; + +typedef struct { + char text[128]; +} Part; + + +typedef struct { + Date date; + Text text; + Part part; +} BaseRecord; + +typedef struct { + Date *date; + Text *text; + Part *part; + int error; +} Record; + +typedef struct { + Date *date; + int error; +} Answer; + + +BaseRecord recordsSrc[MAXREC]; +Record records[MAXREC]; +Part *parts[MAXREC]; +Date *dates[MAXREC]; +int partCount; +int dateCount; +int recCount; + + +int mode; +int errorCount; +int curError; +int curRec; +double questionFade; +Answer answers[ANSWERS]; + + +void load(const char *filename) { + recCount = 0; + partCount = 0; + dateCount = 0; + memset(recordsSrc, 0, sizeof(recordsSrc)); + memset(records, 0, sizeof(records)); + memset(parts, 0, sizeof(parts)); + memset(dates, 0, sizeof(dates)); + + FILE *f = fopen(filename, "r"); + if (!f) { + printf("cannot open file for read: %s\n", filename); + return; + } + + int mode = 0; + BaseRecord *rs = recordsSrc; + char *p = rs->date.text; + char *e = p + sizeof(rs->date.text); + while(1) { + int c = fgetc(f); + if (c <= 0 || c >= 256) break; + if (c == '\t') { + if (mode == 0) { + mode = 1; p = rs->text.text; e = p + sizeof(rs->text.text); + } else + if (mode == 1) { + mode = 2; p = rs->part.text; e = p + sizeof(rs->part.text); + } else + if (mode == 2) { + mode = 3; + } + } else + if (c == '\n') { + if (rs->date.text[0] || rs->text.text[0] || rs->part.text[0]) { + ++recCount; ++rs; + if (recCount >= MAXREC) break; + } + mode = 0; p = rs->date.text; e = p + sizeof(rs->date.text); + } else + if (c != '\r' && p+1 < e) { + *p++ = c; + } + } + fclose(f); + + if (recCount < MAXREC) + if (rs->date.text[0] || rs->text.text[0] || rs->part.text[0]) + ++recCount; + + for(int i = 0; i < recCount; ++i) { + Record *r = &records[i]; + BaseRecord *rs = &recordsSrc[i]; + for(int j = 0; j <= i; ++j) { + BaseRecord *rrs = &recordsSrc[j]; + if (!r->date && !strcmp(rs->date.text, rrs->date.text)) r->date = &rrs->date; + if (!r->text && !strcmp(rs->text.text, rrs->text.text)) r->text = &rrs->text; + if (!r->part && !strcmp(rs->part.text, rrs->part.text)) r->part = &rrs->part; + } + if (r->part == &rs->part) + parts[partCount++] = r->part; + if (r->date == &rs->date) + dates[dateCount++] = r->date; + } + + if (recCount > MAXQUESTS) + recCount = MAXQUESTS; +} + + +void nextQuestion() { + if (mode != 2) return; + if (!curError) ++curRec; + if (curRec >= recCount) + { mode = 3; return; } + + curError = 0; + mode = 1; + + int q = randomNumber(curRec, recCount-1); + if (q != curRec) { + Record r; + memcpy(&r, &records[curRec], sizeof(r)); + memcpy(&records[curRec], &records[q], sizeof(r)); + memcpy(&records[q], &r, sizeof(r)); + } + + for(int i = 0; i < ANSWERS; ++i) { + for(int j = 0; j < 100; ++j) { + answers[i].date = dates[randomNumber(0, dateCount-1)]; + if (answers[i].date != records[curRec].date) break; + } + answers[i].error = 0; + } + answers[randomNumber(0, ANSWERS-1)].date = records[curRec].date; +} + + +void startTest() { + mode = 2; + curRec = -1; + curError = 0; + errorCount = 0; + for(int i = 0; i < recCount; ++i) + records[i].error = 0; + nextQuestion(); +} + + +void giveAnswer(int i) { + if (mode != 1) return; + if (answers[i].date == records[curRec].date) { + mode = 2; + } else { + curError = 1; + if (!records[curRec].error) { + records[curRec].error = 1; + ++errorCount; + } + for(int j = 0; j < ANSWERS; ++j) + if (answers[j].date != records[curRec].date) + answers[j].error = 1; + } +} + + +void init() { + load("data/history/ancient-dates.txt"); + startTest(); +} + + +void draw() { + saveState(); + double w = windowGetWidth(); + double h = windowGetHeight(); + translate(w/2, h/2); + + double my = mouseTransformedY(); + + saveState(); + if (mode == 1 || mode == 2) { + noFill(); + strokeWidth(2); + stroke(COLOR_BLACK); + textAlign(HALIGN_CENTER, VALIGN_CENTER); + textf(0, -200, "%d / %d", curRec+1, recCount); + textSize(32); + text(0, -100, records[curRec].text->text); + textSize(24); + textAlign(HALIGN_LEFT, VALIGN_TOP); + line(-150, -65, 150, -65); + double y = -40, dy = 40; + int hover = -1; + for(int i = 0; i < ANSWERS; ++i) { + if (answers[i].error) { + stroke(COLOR_RED); + } else + if (mode == 2) { + if (answers[i].date == records[curRec].date) { + circle(-130, y+i*dy+20, 10); + stroke(COLOR_BLUE); + fill(COLOR_BLUE); + circle(-130, y+i*dy+20, 5); + noFill(); + } + } else { + circle(-130, y+i*dy+20, 10); + if (my > y+i*dy && my < y+(i+1)*dy) { + hover = i; + stroke(COLOR_BLUE); + fill(COLOR_BLUE); + circle(-130, y+i*dy+20, 5); + noFill(); + } + } + text(-100, y + i*dy, answers[i].date->text); + stroke(COLOR_BLACK); + } + + if (mode == 1) { + questionFade += windowGetFrameTime(); + if (questionFade > 1) questionFade = 1; + if (hover >= 0 && mouseWentDown("left")) + giveAnswer(hover); + } else { + questionFade -= windowGetFrameTime(); + if (questionFade < 0) { + questionFade = 0; + nextQuestion(); + } + } + } else + if (mode == 3) { + textSize(64); + textAlign(HALIGN_CENTER, HALIGN_CENTER); + textf(0, 0, "%d / %d", recCount - errorCount, recCount); + questionFade += windowGetFrameTime(); + if (questionFade > 1) questionFade = 1; + } + restoreState(); + + noStroke(); + fill(colorByRGBA(1, 1, 1, 1-questionFade)); + rect(-w/2, -h/2, w, h); + + restoreState(); +} + + +int main() { + windowSetSize(800, 600); + windowSetResizable(TRUE); + windowSetVariableFrameRate(); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); + return 0; +} + diff --git a/onefile/history-dates.c b/onefile/history-dates.c new file mode 100644 index 0000000..3ce9b46 --- /dev/null +++ b/onefile/history-dates.c @@ -0,0 +1,458 @@ + +#include +#include +#include +#include +#include + + +#define MAXREC 1000 +#define MARGINX 30.0 +#define MARGINY 15.0 +#define MARGINLINE0 30.0 +#define MARGINLINE1 40.0 +#define BASELINE 22.0 +#define PADDING 15.0 +#define SEPARATOR 15.0 +#define TEXTWIDTH 300.0 + + +typedef struct { + char text[128]; + double w; + double h; +} Date; + +typedef struct { + char text[1024]; + double w; + double h; +} Text; + +typedef struct { + char text[128]; + int index; + int begin; + int end; + double w; + double y0; + double y1; +} Part; + +typedef struct { + double x, w; +} Column; + + +typedef struct { + Date date; + Text text; + Part part; +} BaseRecord; + +typedef struct { + Date *date; + Text *text; + Part *part; + double y; +} Record; + + + +BaseRecord recordsSrc[MAXREC]; +Record records[MAXREC]; +Part *parts[MAXREC]; +Date *dates[MAXREC]; +Column columns[MAXREC]; +int partCount; +int dateCount; +int recCount; +int colCount; +double datesWidth; +double fullWidth, fullHeight; + +double dx, dy; +double mx, my; +double zm = 1; + +int curRec; +double curFade; + + + +void updateLayout(); + + +double calcWidth(char *b, char *e) { + char c = *e; + *e = 0; + TextLayout tl = createTextLayout(b); + *e = c; + double w = textLayoutGetWidth(tl); + textLayoutDestroy(tl); + return w; +} + +void wordWrap(char *buf, double maxWidth) { + int len = strlen(buf); + if (calcWidth(buf, buf + len) <= maxWidth) return; + + char *last = NULL; + for(char *p = buf + len - 1; p > buf; --p) { + if (isspace(*p)) { + last = p; + if (calcWidth(buf, p) < maxWidth) + { *p = '\n'; wordWrap(p+1, maxWidth); return; } + } + } + if (!last) return; + + *last = '\n'; + wordWrap(last+1, maxWidth); +} + + +void load(const char *filename) { + curRec = 0; + curFade = 0; + recCount = 0; + partCount = 0; + dateCount = 0; + colCount = 0; + datesWidth = 0; + memset(recordsSrc, 0, sizeof(recordsSrc)); + memset(records, 0, sizeof(records)); + memset(parts, 0, sizeof(parts)); + memset(dates, 0, sizeof(dates)); + memset(columns, 0, sizeof(columns)); + + FILE *f = fopen(filename, "r"); + if (!f) { + printf("cannot open file for read: %s\n", filename); + return; + } + + int mode = 0; + BaseRecord *rs = recordsSrc; + char *p = rs->date.text; + char *e = p + sizeof(rs->date.text); + while(1) { + int c = fgetc(f); + if (c <= 0 || c >= 256) break; + if (c == '\t') { + if (mode == 0) { + mode = 1; p = rs->text.text; e = p + sizeof(rs->text.text); + } else + if (mode == 1) { + mode = 2; p = rs->part.text; e = p + sizeof(rs->part.text); + } else + if (mode == 2) { + mode = 3; + } + } else + if (c == '\n') { + if (rs->date.text[0] || rs->text.text[0] || rs->part.text[0]) { + ++recCount; ++rs; + if (recCount >= MAXREC) break; + } + mode = 0; p = rs->date.text; e = p + sizeof(rs->date.text); + } else + if (c != '\r' && p+1 < e) { + *p++ = c; + } + } + fclose(f); + + if (recCount < MAXREC) + if (rs->date.text[0] || rs->text.text[0] || rs->part.text[0]) + ++recCount; + + for(int i = 0; i < recCount; ++i) { + Record *r = &records[i]; + BaseRecord *rs = &recordsSrc[i]; + wordWrap(rs->text.text, TEXTWIDTH); + + for(int j = 0; j <= i; ++j) { + BaseRecord *rrs = &recordsSrc[j]; + if (!r->date && !strcmp(rs->date.text, rrs->date.text)) r->date = &rrs->date; + if (!r->text && !strcmp(rs->text.text, rrs->text.text)) r->text = &rrs->text; + if (!r->part && !strcmp(rs->part.text, rrs->part.text)) r->part = &rrs->part; + } + if (r->part == &rs->part) + parts[partCount++] = r->part; + if (r->date == &rs->date) + dates[dateCount++] = r->date; + + TextLayout tl = createTextLayout(r->text->text); + r->text->w = textLayoutGetWidth(tl); + r->text->h = textLayoutGetHeight(tl); + textLayoutDestroy(tl); + + tl = createTextLayout(r->date->text); + r->date->w = textLayoutGetWidth(tl); + r->date->h = textLayoutGetHeight(tl); + textLayoutDestroy(tl); + + if (r->part->w < r->text->w) + r->part->w = r->text->w; + if (datesWidth < r->date->w) + datesWidth = r->date->w; + } + + updateLayout(); +} + + +void writeUnwrapped(const char *buf, FILE *f) { + while(*buf) { + fputc(*buf == '\n' ? ' ' : *buf, f); + ++buf; + } +} + + +void save(const char *filename) { + FILE *f = fopen(filename, "w"); + if (!f) { + printf("cannot open file for write: %s\n", filename); + return; + } + + for(int i = 0; i < recCount; ++i) { + Record *r = &records[i]; + writeUnwrapped(r->date->text, f); fputc('\t', f); + writeUnwrapped(r->text->text, f); fputc('\t', f); + writeUnwrapped(r->part->text, f); fputc('\n', f); + } + + fclose(f); + printf("saved into: %s\n", filename); +} + + +void updateLayout() { + colCount = 0; + for(int i = 0; i < partCount; ++i) { + parts[i]->index = -1; + columns[i].w = 0; + } + + double y = MARGINY + PADDING; + for(int i = 0; i < recCount; ++i) { + Record *r = &records[i]; + Part *p = r->part; + if (p->index < 0) { + int idx = 0; + while(p->text[idx] == '~') ++idx; + while(1) { + int found = TRUE; + for(int j = i+1; j < recCount; ++j) + if (records[j].part->index == idx) + found = FALSE; + if (found) break; + ++idx; + } + p->index = idx; + p->begin = i; + p->y0 = y; + + if (colCount <= idx) colCount = idx + 1; + if (columns[idx].w < p->w) columns[idx].w = p->w; + } + + if (i > 0) { + if (p == records[i-1].part) { + y += SEPARATOR; + } else { + for(int j = i-1; j >= 0; --j) { + if (records[j].part->index == p->index) { + double py = records[j].part->y1 + 2*PADDING + MARGINY; + if (y < py) y = py; + } + } + } + } + + r->y = y; + p->end = i + 1; + if (p->begin == i) p->y0 = r->y; + p->y1 = y + r->text->h; + + y = p->y1; + } + + double x = MARGINX + PADDING + datesWidth + PADDING + MARGINLINE0 + MARGINLINE1 + MARGINX; + for(int i = 0; i < colCount; ++i) { + columns[i].x = x; + x += columns[i].w + 2*PADDING + MARGINX; + } + fullWidth = x; + fullHeight = y + PADDING + MARGINY; +} + + +void drawRect(double x, double y, double w, double h) { + noFill(); + stroke(COLOR_WHITE); + strokeWidth(4); + rectRounded( x - PADDING, y - PADDING, w + 2*PADDING, h + 2*PADDING, PADDING ); + fill(colorByRGBA(1, 1, 1, 0.75)); + stroke(COLOR_BLUE); + strokeWidth(2); + rectRounded( x - PADDING, y - PADDING, w + 2*PADDING, h + 2*PADDING, PADDING ); +} + + +void drawRecords() { + saveState(); + + strokeWidth(2); + stroke(COLOR_BLUE); + + double mr = PADDING/4.0; + + // lines + double xl = MARGINX + PADDING + datesWidth + PADDING + MARGINLINE0; + double xd = xl - MARGINLINE0; + double h = 0; + if (recCount > 0) + h = records[recCount-1].y + records[recCount-1].text->h + MARGINY + PADDING; + line(xl, 0, xl, h); + for(int i = 0; i < recCount; ++i) { + Record *r = &records[i]; + double x = columns[ r->part->index ].x; + double y = r->y + BASELINE; + line(xd, y, x, y); + } + + // text rects + for(int i = 0; i < partCount; ++i) { + Part *p = parts[i]; + Column *c = &columns[p->index]; + drawRect(c->x + PADDING, p->y0, p->w, p->y1 - p->y0); + } + + // circles + fill(COLOR_WHITE); + for(int i = 0; i < recCount; ++i) { + Record *r = &records[i]; + double x = columns[ r->part->index ].x; + double y = r->y + BASELINE; + double mrr = i == curRec ? mr + curFade*mr : mr; + circle(xl, y, mrr); + circle(x, y, mrr); + } + + // texts + noFill(); + stroke(COLOR_BLACK); + for(int i = 0; i < recCount; ++i) { + Record *r = &records[i]; + Part *p = r->part; + Date *d = r->date; + double x = columns[ p->index ].x + PADDING; + double y = r->y; + text(x, y, r->text->text); + text(xd - PADDING - d->w, y, d->text); + } + + restoreState(); +} + + +void saveImage(const char *filename) { + double s = 1; + Framebuffer fb = createFramebuffer((int)(fullWidth*s) + 1, (int)(fullHeight*s) + 1); + + saveState(); + target(fb); + clear(); + zoom(s); + drawRecords(); + if (viewportSave(filename)) + printf("image saved into: %s\n", filename); + restoreState(); + + framebufferDestroy(fb); +} + + +void init() { + if (fileExists("data/output/history/ancient-dates.txt")) + load("data/output/history/ancient-dates.txt"); + else + load("data/history/ancient-dates.txt"); + + dx = -fullWidth/2; + dy = -450; +} + + +void draw() { + double w = windowGetWidth(); + double h = windowGetHeight(); + + double pmx = mx, pmy = my; + mx = mouseX(), my = mouseY(); + + if (mouseDown("left")) { + dx += (mx - pmx)/zm; + dy += (my - pmy)/zm; + } else + if (mouseDown("right")) { + zm *= pow(2.0, -(my - pmy)/500.0); + } + + if (keyEventGetCount(KEYEVENT_KEY_DOWN)) + curFade = 1; + + if (keyWentDown("up") && curRec > 0) { + if (keyDown("any ctrl")) { + Record r; + memcpy(&r, &records[curRec], sizeof(r)); + memcpy(&records[curRec], &records[curRec-1], sizeof(r)); + memcpy(&records[curRec-1], &r, sizeof(r)); + updateLayout(); + } + --curRec; + } else + if (keyWentDown("down") && curRec < recCount-1) { + if (keyDown("any ctrl")) { + Record r; + memcpy(&r, &records[curRec], sizeof(r)); + memcpy(&records[curRec], &records[curRec+1], sizeof(r)); + memcpy(&records[curRec+1], &r, sizeof(r)); + updateLayout(); + } + ++curRec; + } else + if (keyWentDown("s")) { + save("data/output/history/ancient-dates.txt"); + } else + if (keyWentDown("i")) { + curFade = 0; + saveImage("data/output/history/ancient-dates.png"); + } + + saveState(); + translate(w/2, h/2); + zoom(zm); + translate(dx, dy); + + drawRecords(); + restoreState(); + + curFade -= windowGetFrameTime()*2; + if (curFade < 0) curFade = 0; +} + + +int main() { + windowSetResizable(TRUE); + windowSetVariableFrameRate(); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); + return 0; +} + diff --git a/onefile/iron-spring.c b/onefile/iron-spring.c new file mode 100644 index 0000000..f480f2b --- /dev/null +++ b/onefile/iron-spring.c @@ -0,0 +1,60 @@ +#include +#include + +#define CIRCLES_COUNT 20 +#define CIRCLES_RADIUS 25 +#define RING_RADIUS 50 +#define ROTATION_SPEED 70 +#define RINGS_COUNT 3 + + +double angles[6]; +double speeds[6]; + + +void init() { + background(colorByHSV(0, 0, 0.2)); +} + +void draw() { + for(int j = 1; j <= RINGS_COUNT; j++) { + saveState(); + strokeWidth(CIRCLES_RADIUS + j*10); + translate(mouseX(), mouseY()); + if (mouseDown("left")) { + angles[j] -= windowGetFrameTime() * (ROTATION_SPEED * (j/3.0)); + speeds[j] = 0; + } else + if (mouseDown("right")) { + angles[j] += windowGetFrameTime() * (ROTATION_SPEED * (j/3.0)); + speeds[j] = 0; + } else { + speeds[j] -= angles[j]; + speeds[j] *= pow(0.1, windowGetFrameTime()); + angles[j] += speeds[j]*windowGetFrameTime(); + } + + rotate(windowGetSeconds() + angles[j]); + + for(int i = 0; i < CIRCLES_COUNT; i++) { + double a = 0; + //if (mouseDown("left")) + a = 360.0*i/CIRCLES_COUNT; + double x = 1 + 0.05*sin(windowGetSeconds()*10 + a/180*PI*13); + stroke(colorByHSV(a, 0.7, 1)); + point(RING_RADIUS*j*x, 0); + rotate(360.0/CIRCLES_COUNT); + } + restoreState(); + } +} + +int main() { + windowSetTitle("Iron Spring Simulator"); + windowSetVariableFrameRate(); + windowSetResizable(TRUE); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); + return 0; +} diff --git a/onefile/keys.c b/onefile/keys.c new file mode 100644 index 0000000..f9224e2 --- /dev/null +++ b/onefile/keys.c @@ -0,0 +1,22 @@ + +#include + + +void init() { } + + +void draw() { + int count = keyEventGetCount(KEYEVENT_KEY_DOWN); + noFill(); + for(int i = 0; i < count; ++i) { + text(10, 50*i, keyEventGet(KEYEVENT_KEY_DOWN, i)); + } +} + + +int main() { + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); + return 0; +} diff --git a/onefile/matrix.inc.h b/onefile/matrix.inc.h new file mode 100644 index 0000000..0248927 --- /dev/null +++ b/onefile/matrix.inc.h @@ -0,0 +1,150 @@ + +typedef struct { + union { + struct { double x, y, z; }; + struct { double a[3]; }; + }; +} Vector3; + +typedef struct { + union { + struct { Vector3 xyz; }; + struct { double x, y, z, w; }; + struct { double a[4]; }; + }; +} Vector4; + +typedef struct { + union { + struct { double m[4][4]; }; + struct { double m00, m01, m02, m03, + m10, m11, m12, m13, + m20, m21, m22, m23, + m30, m31, m32, m33; }; + struct { Vector4 ox, oy, oz, ow; }; + struct { double a[16]; }; + }; +} Matrix; + + +void vector3Set(Vector3 *vector, double x, double y, double z) + { vector->x = x; vector->y = y; vector->z = z; } + +void vector3Copy(Vector3 *vector, const Vector3 *a) + { vector3Set(vector, a->x, a->y, a->z); } + +void vector3Zero(Vector3 *vector) + { vector3Set(vector, 0, 0, 0); } + +double vector3Dot(Vector3 *a, Vector3 *b) + { return a->x*b->x + a->y*b->y + a->z*b->z; } + + +void vector4Set(Vector4 *vector, double x, double y, double z, double w) + { vector->x = x; vector->y = y; vector->z = z; vector->w = w; } + +void vector4Copy(Vector4 *vector, const Vector4 *a) + { vector4Set(vector, a->x, a->y, a->z, a->w); } + +void vector4Zero(Vector4 *vector) + { vector4Set(vector, 0, 0, 0, 0); } + +void vector4PespectiveDivide(Vector4 *vector, const Vector4 *a) + { double k = 1/a->w; vector4Set(vector, a->x*k, a->y*k, a->z*k, 1); } + +void vector4MultMatrix(Vector4 *vector, const Vector4 *a, const Matrix *b) { + vector4Set(vector, b->ox.x*a->x + b->oy.x*a->y + b->oz.x*a->z + b->ow.x*a->w, + b->ox.y*a->x + b->oy.y*a->y + b->oz.y*a->z + b->ow.y*a->w, + b->ox.z*a->x + b->oy.z*a->y + b->oz.z*a->z + b->ow.z*a->w, + b->ox.w*a->x + b->oy.w*a->y + b->oz.w*a->z + b->ow.w*a->w ); +} + + +void matrixCopy(Matrix *matrix, const Matrix *a) { + vector4Copy(&matrix->ox, &a->ox); + vector4Copy(&matrix->oy, &a->oy); + vector4Copy(&matrix->oz, &a->oz); + vector4Copy(&matrix->ow, &a->ow); +} + +void matrixMultMatrix(Matrix *matrix, const Matrix *a, const Matrix *b) { + if (matrix == a || matrix == b) { + Matrix m; + matrixMultMatrix(&m, a, b); + matrixCopy(matrix, &m); + return; + } + vector4MultMatrix(&matrix->ox, &a->ox, b); + vector4MultMatrix(&matrix->oy, &a->oy, b); + vector4MultMatrix(&matrix->oz, &a->oz, b); + vector4MultMatrix(&matrix->ow, &a->ow, b); +} + +void matrixZero(Matrix *matrix) { + vector4Zero( &matrix->ox ); + vector4Zero( &matrix->oy ); + vector4Zero( &matrix->oz ); + vector4Zero( &matrix->ow ); +} + +void matrixSetIdentity(Matrix *matrix) { + vector4Set( &matrix->ox, 1, 0, 0, 0 ); + vector4Set( &matrix->oy, 0, 1, 0, 0 ); + vector4Set( &matrix->oz, 0, 0, 1, 0 ); + vector4Set( &matrix->ow, 0, 0, 0, 1 ); +} + +void matrixSetRotation(Matrix *matrix, double angle, double x, double y, double z) { + double s = sin(angle/180.0*PI); + double c = cos(angle/180.0*PI); + double cc = 1 - c, cx = x*cc, cy = y*cc, cz=z*cc; + vector4Set( &matrix->ox, x*cx + c , y*cx + z*s, z*cx - y*s, 0 ); + vector4Set( &matrix->oy, x*cy - z*s, y*cy + c , z*cy + x*s, 0 ); + vector4Set( &matrix->oz, x*cz + y*s, y*cz - x*s, z*cz + c , 0 ); + vector4Set( &matrix->ow, 0 , 0 , 0 , 1 ); +} + +void matrixSetPerspective(Matrix *matrix, double fovy, double aspect, double zNear, double zFar) { + double f = 1/tan(0.5*fovy/180.0*PI); + double d = 1/(zNear - zFar); + vector4Set( &matrix->ox, f/aspect, 0, 0 , 0 ); + vector4Set( &matrix->oy, 0 , f, 0 , 0 ); + vector4Set( &matrix->oz, 0 , 0, (zNear + zFar)*d, -1 ); + vector4Set( &matrix->ow, 0 , 0, 2*zNear*zFar*d , 0 ); +} + +void matrixInvert(Matrix *matrix, const Matrix *a) { + if (matrix == a) { + Matrix m; + matrixInvert(&m, a); + matrixCopy(matrix, &m); + return; + } + + matrix->m00 = a->m11*(a->m22*a->m33 - a->m23*a->m32) + a->m12*(a->m23*a->m31 - a->m21*a->m33) + a->m13*(a->m21*a->m32 - a->m22*a->m31); + matrix->m10 = a->m10*(a->m23*a->m32 - a->m22*a->m33) + a->m12*(a->m20*a->m33 - a->m23*a->m30) + a->m13*(a->m22*a->m30 - a->m20*a->m32); + matrix->m20 = a->m10*(a->m21*a->m33 - a->m23*a->m31) + a->m11*(a->m23*a->m30 - a->m20*a->m33) + a->m13*(a->m20*a->m31 - a->m21*a->m30); + matrix->m30 = a->m10*(a->m22*a->m31 - a->m21*a->m32) + a->m11*(a->m20*a->m32 - a->m22*a->m30) + a->m12*(a->m21*a->m30 - a->m20*a->m31); + + double det = a->m00*matrix->m00 + a->m01*matrix->m10 + a->m02*matrix->m20 + a->m03*matrix->m30; + if (fabs(det) <= 1e-10) + { matrixZero(matrix); return; } + det = 1/det; + matrix->m00 *= det; + matrix->m10 *= det; + matrix->m20 *= det; + matrix->m30 *= det; + + matrix->m01 = det*(a->m01*(a->m23*a->m32 - a->m22*a->m33) + a->m02*(a->m21*a->m33 - a->m23*a->m31) + a->m03*(a->m22*a->m31 - a->m21*a->m32)); + matrix->m11 = det*(a->m00*(a->m22*a->m33 - a->m23*a->m32) + a->m02*(a->m23*a->m30 - a->m20*a->m33) + a->m03*(a->m20*a->m32 - a->m22*a->m30)); + matrix->m21 = det*(a->m00*(a->m23*a->m31 - a->m21*a->m33) + a->m01*(a->m20*a->m33 - a->m23*a->m30) + a->m03*(a->m21*a->m30 - a->m20*a->m31)); + matrix->m31 = det*(a->m00*(a->m21*a->m32 - a->m22*a->m31) + a->m01*(a->m22*a->m30 - a->m20*a->m32) + a->m02*(a->m20*a->m31 - a->m21*a->m30)); + matrix->m02 = det*(a->m01*(a->m12*a->m33 - a->m13*a->m32) + a->m02*(a->m13*a->m31 - a->m11*a->m33) + a->m03*(a->m11*a->m32 - a->m12*a->m31)); + matrix->m12 = det*(a->m00*(a->m13*a->m32 - a->m12*a->m33) + a->m02*(a->m10*a->m33 - a->m13*a->m30) + a->m03*(a->m12*a->m30 - a->m10*a->m32)); + matrix->m22 = det*(a->m00*(a->m11*a->m33 - a->m13*a->m31) + a->m01*(a->m13*a->m30 - a->m10*a->m33) + a->m03*(a->m10*a->m31 - a->m11*a->m30)); + matrix->m32 = det*(a->m00*(a->m12*a->m31 - a->m11*a->m32) + a->m01*(a->m10*a->m32 - a->m12*a->m30) + a->m02*(a->m11*a->m30 - a->m10*a->m31)); + matrix->m03 = det*(a->m01*(a->m13*a->m22 - a->m12*a->m23) + a->m02*(a->m11*a->m23 - a->m13*a->m21) + a->m03*(a->m12*a->m21 - a->m11*a->m22)); + matrix->m13 = det*(a->m00*(a->m12*a->m23 - a->m13*a->m22) + a->m02*(a->m13*a->m20 - a->m10*a->m23) + a->m03*(a->m10*a->m22 - a->m12*a->m20)); + matrix->m23 = det*(a->m00*(a->m13*a->m21 - a->m11*a->m23) + a->m01*(a->m10*a->m23 - a->m13*a->m20) + a->m03*(a->m11*a->m20 - a->m10*a->m21)); + matrix->m33 = det*(a->m00*(a->m11*a->m22 - a->m12*a->m21) + a->m01*(a->m12*a->m20 - a->m10*a->m22) + a->m02*(a->m10*a->m21 - a->m11*a->m20)); +} diff --git a/onefile/multiply.c b/onefile/multiply.c new file mode 100644 index 0000000..ee7119f --- /dev/null +++ b/onefile/multiply.c @@ -0,0 +1,466 @@ + +#include +#include +#include + +#include + + +#include "data-h/sound/begin.ogg.h" +#include "data-h/sound/win.ogg.h" + + + +#define BASE_TIME 1.0 // 1000.0 - to disable timeout +//#define EXTRA_TASKS + +enum { + ACTION_SUM = 0, + ACTION_SUB = 1, + ACTION_MUL = 2, + ACTION_DIV = 3, + ACTIONS_COUNT = 4, + + MASK_SUM = 1 << ACTION_SUM, + MASK_SUB = 1 << ACTION_SUB, + MASK_MUL = 1 << ACTION_MUL, + MASK_DIV = 1 << ACTION_DIV, + MASK_ALL = ~0, + + TASKS_COUNT = 20, + + TASK_MODE_NONE = 0, + TASK_MODE_ERROR = 1, + TASK_MODE_TIMEOUT = 2, + TASK_MODE_DONE = 3, + + MODE_MENU = 0, + MODE_BEGIN = 1, + MODE_PLAYING = 2, + MODE_FINISHED = 3, +}; + +const char *signs[] = {"+", "-", "·", ":"}; + +typedef struct { + char question[1024]; + char answer[1024]; + char userAnswer[1024]; + double time; + int mode; + double x, y, vx, vy; +} Task; + +typedef struct { + char name[1024]; + double time; + int actions; + int minA, maxA; + int minB, maxB; + int minC, maxC; + int advanced; +} Level; + + + +Level levels[] = { + { "Счёт до 10", 5*BASE_TIME, MASK_SUM | MASK_SUB, 1, 9, 1, 9, 2, 10, 0 }, + { "Число 10", 3*BASE_TIME, MASK_SUM | MASK_SUB, 1, 9, 1, 9, 10, 10, 0 }, + { "Сложение и вычитание однозначных чисел", + 7*BASE_TIME, MASK_SUM | MASK_SUB, 1, 9, 1, 9, 2, 18, 0 }, + { "Сложение и вычитание двузначных чисел", + 20*BASE_TIME, MASK_SUM | MASK_SUB, 10, 99, 10, 99, 20, 100, 0 }, + {}, {}, {}, {}, {}, {}, {}, {}, // Умножение на 2..9 + #ifdef EXTRA_TASKS + {}, {}, {}, {}, {}, {}, {}, {}, // Деление на 2..9 + {}, {}, {}, {}, {}, {}, {}, {}, // Умножение и деление на 2..9 + #endif + { "Умножение однозначных чисел", + 8*BASE_TIME, MASK_MUL, 2, 9, 2, 9, 0, 100, 0 }, + { "Деление однозначных чисел", + 12*BASE_TIME, MASK_DIV, 2, 9, 2, 9, 0, 100, 0 }, + { "Умножение и деление однозначных чисел", + 12*BASE_TIME, MASK_MUL | MASK_DIV, 2, 9, 2, 9, 0, 100, 0 }, + { "Умножение и деление больших чисел", + 24*BASE_TIME, 0, 0, 0, 0, 0, 0, 0, 1 } +}; + +int levelsCount = sizeof(levels)/sizeof(*levels); +int currentLevel = 0; + +Task tasks[TASKS_COUNT]; +int currentTask = 0; +int errorsCount = 0; +int timeoutsCount = 0; +double taskStartTime = 0; + +int mode = MODE_MENU; + + +double regularSize = 18; +double bigSize = 24; +double lineSpace = 7; + +double ladderStep = 18 + 5; +double ladderCurrent = 0; +double ladderTarget = 0; +double ladderSpeed = 5; + + +Sound soundBegin; +Sound soundWin; + + +void init() { + background(colorByName("#4c4c4c")); + + soundBegin = createSoundFromMemory(data_sound_begin_ogg, data_sound_begin_ogg_len); + soundWin = createSoundFromMemory(data_sound_win_ogg, data_sound_win_ogg_len); + + for(int i = 2; i < 10; ++i) { + Level *level = &levels[4 + i - 2]; + sprintf(level->name, "Умножение на %d",i); + level->time = 5*BASE_TIME; + level->actions = MASK_MUL; + level->minA = level->maxA = i; + level->minB = 2; level->maxB = 9; + level->minC = 0; level->maxC = 100; + + #ifdef EXTRA_TASKS + Level *levelD = &levels[4 + 8 + i - 2]; + memcpy(levelD, level, sizeof(Level)); + sprintf(levelD->name, "Деление на %d",i); + levelD->time = 7*BASE_TIME; + levelD->actions = MASK_DIV; + + Level *levelMD = &levels[4 + 8 + 8 + i - 2]; + memcpy(levelMD, level, sizeof(Level)); + sprintf(levelMD->name, "Умножение и деление на %d",i); + levelMD->time = 7*BASE_TIME; + levelMD->actions = MASK_MUL | MASK_DIV; + #endif + } +} + + +void generateAdvancedTask(Level *level, Task *task) { + memset(task, 0, sizeof(*task)); + + int a = randomNumber(2, 20); + int b = randomNumber(2, 10); + if (randomNumber(0, 100) < 20) a *= 10; + if (randomNumber(0, 100) < 20) b *= 10; + if (a < 10 && b < 10) { + if (randomNumber(0, 1)) + a *= 10; else b *= 10; + } + if (randomNumber(0, 1)) + { int x = a; a = b; b = x; } + int c = a * b; + + if (randomNumber(0, 100) < 25) { + sprintf(task->question, "%d %s %d = ", c, signs[ACTION_DIV], a); + sprintf(task->answer, "%d", b); + } else { + sprintf(task->question, "%d %s %d = ", a, signs[ACTION_MUL], b); + sprintf(task->answer, "%d", c); + } + task->time = level->time; +} + + +void generateTask(Level *level, Task *task) { + if (level->advanced) + { generateAdvancedTask(level, task); return; } + + memset(task, 0, sizeof(*task)); + + int action = 0; + while(1) { + action = randomNumber(0, ACTIONS_COUNT-1); + if (level->actions & (1 << action)) break; + } + + int a = 0, b = 0, c = 0; + while(1) { + a = randomNumber(level->minA, level->maxA); + b = randomNumber(level->minB, level->maxB); + if (action == ACTION_SUM || action == ACTION_SUB) + c = a + b; else c = a * b; + if (c >= level->minC && c <= level->maxC) + break; + } + + if (randomNumber(0, 1)) + { int x = a; a = b; b = x; } + + if (action == ACTION_SUM || action == ACTION_MUL) { + sprintf(task->question, "%d %s %d = ", a, signs[action], b); + sprintf(task->answer, "%d", c); + } else { + sprintf(task->question, "%d %s %d = ", c, signs[action], a); + sprintf(task->answer, "%d", b); + } + task->time = level->time; +} + + +void nextTask() { + int remains = 0; + for(int i = 0; i < TASKS_COUNT; ++i) + if (tasks[i].mode != TASK_MODE_DONE) ++remains; + + if (!remains) { + ladderTarget = -100; + mode = MODE_FINISHED; + soundPlay(soundWin, FALSE); + return; + } + + ladderTarget = remains - 1; + + while(1) { + currentTask = randomNumber(0, TASKS_COUNT-1); + if (tasks[currentTask].mode != TASK_MODE_DONE) break; + } + + Task *task = &tasks[currentTask]; + task->userAnswer[0] = 0; + task->mode = TASK_MODE_NONE; + task->x = 0; + task->y = (remains - 1)*ladderStep; + task->vx = 0; + task->vy = 0; + taskStartTime = windowGetSeconds(); +} + + +void verifyTask() { + Task *task = &tasks[currentTask]; + if (strcmp(task->answer, task->userAnswer) != 0) { + task->mode = TASK_MODE_ERROR; + ++errorsCount; + } else + if (windowGetSeconds() - taskStartTime > task->time) { + task->mode = TASK_MODE_TIMEOUT; + ++timeoutsCount; + } else { + task->mode = TASK_MODE_DONE; + } + nextTask(); +} + + +void drawTask(Task *task) { + saveState(); + double dt = windowGetFrameTime(); + + noFill(); + stroke(colorByName("white")); + textSize(regularSize); + if (task->mode == TASK_MODE_NONE) { + if (task != &tasks[currentTask]) noStroke(); + } else + if (task->mode == TASK_MODE_ERROR) { + task->vy += 100*dt; + stroke(colorByRGBA(1, 1, 1, 0.25)); + } else + if (task->mode == TASK_MODE_TIMEOUT) { + task->vx -= 20*dt; + stroke(colorByRGBA(1, 1, 1, 0.25)); + } + task->x += task->vx; + task->y += task->vy; + + textf(task->x, task->y, "%s%s", task->question, task->userAnswer); + restoreState(); +} + + +void drawLadder() { + double d = 5*windowGetFrameTime(); + if (fabs(ladderCurrent - ladderTarget) < d) { + ladderCurrent = ladderTarget; + } else + if (ladderCurrent < ladderTarget) { + ladderCurrent += d; + } else { + ladderCurrent -= d; + } + + saveState(); + + stroke(colorByName("white")); + strokeWidth(1); + + double w = 30; + int i0 = -100; + int i1 = 300; + for(int i = i0; i <= i1; ++i) + line(-w, i*ladderStep, w, i*ladderStep); + line(-w, i0*ladderStep, -w, i1*ladderStep); + line( w, i0*ladderStep, w, i1*ladderStep); + + double k = ladderStep; + double iy = floor(ladderCurrent/2)*2; + double py = ladderCurrent - iy; + double ly = iy + (py < 1 ? py : 1)*2; + double ry = iy + (py < 1 ? 0 : py-1)*2 + 1; + double yy = (ly + ry)/2; + + strokeWidth(0.6*k); + point(0, yy*k); + strokeWidth(1); + line(0, (yy+0.3)*k, 0, (yy+2)*k); + line(0, (yy+0.7)*k, -k, ly*k); + line(0, (yy+0.7)*k, k, ry*k); + line(0, (yy+2.0)*k, -k, (ly+3)*k); + line(0, (yy+2.0)*k, k, (ry+3)*k); + restoreState(); +} + + +void startLevel() { + currentTask = 0; + errorsCount = 0; + timeoutsCount = 0; + for(int i = 0; i < TASKS_COUNT; ++i) + generateTask(&levels[currentLevel], &tasks[i]); + ladderTarget = ladderCurrent = TASKS_COUNT - 1; + mode = MODE_BEGIN; + soundPlay(soundBegin, FALSE); +} + + +void drawLevel(int width, int height) { + double t = windowGetSeconds(); + + Level *level = &levels[currentLevel]; + + saveState(); + noFill(); + stroke(colorByName("white")); + + textSize(regularSize); + textf(0, 0, "Уровень %d", (currentLevel + 1)); + + textSize(bigSize); + text(0, regularSize + lineSpace, level->name); + + textSize(regularSize); + textf(0, 80, "Ошибки: %d", errorsCount); + textf(0, 80 + regularSize + lineSpace, "Промедления: %d", timeoutsCount); + + if (mode == MODE_BEGIN || mode == MODE_FINISHED) { + textSize(bigSize); + double alpha = (1 + cos(10*t))/4 + 0.5; + stroke(colorByRGBA(1, 1, 1, alpha)); + textAlign(HALIGN_LEFT, VALIGN_BOTTOM); + text(0, height, "Нажмите Enter..."); + textAlign(HALIGN_LEFT, VALIGN_TOP); + } + + if (mode != MODE_BEGIN) { + saveState(); + translate(width - 300, height - TASKS_COUNT*ladderStep); + for(int i = 0; i < TASKS_COUNT; ++i) + drawTask(&tasks[i]); + restoreState(); + } + + saveState(); + translate(width - 30, height - TASKS_COUNT*ladderStep); + drawLadder(); + restoreState(); + + restoreState(); + + if (keyWentDown("escape")) mode = MODE_MENU; + + if (mode == MODE_BEGIN) { + if (keyWentDown("any return")) { mode = MODE_PLAYING; nextTask(); } + } else + if (mode == MODE_PLAYING) { + Task *task = &tasks[currentTask]; + char *ua = task->userAnswer; + int i = strlen(ua); + if (i > 0 && keyWentDown("backspace")) ua[--i] = 0; + if (i == 1 && *ua == '0') i = 0; + int ii = i; + if (i < 10 && keyWentDown("any 0")) ua[i++] = '0'; + if (i < 10 && keyWentDown("any 1")) ua[i++] = '1'; + if (i < 10 && keyWentDown("any 2")) ua[i++] = '2'; + if (i < 10 && keyWentDown("any 3")) ua[i++] = '3'; + if (i < 10 && keyWentDown("any 4")) ua[i++] = '4'; + if (i < 10 && keyWentDown("any 5")) ua[i++] = '5'; + if (i < 10 && keyWentDown("any 6")) ua[i++] = '6'; + if (i < 10 && keyWentDown("any 7")) ua[i++] = '7'; + if (i < 10 && keyWentDown("any 8")) ua[i++] = '8'; + if (i < 10 && keyWentDown("any 9")) ua[i++] = '9'; + if (i > ii) ua[i] = 0; + if (keyWentDown("any return")) verifyTask(); + } else + if (mode == MODE_FINISHED) { + if (keyWentDown("any return")) { + ++currentLevel; + if (currentLevel >= levelsCount) { + currentLevel = levelsCount - 1; + mode = MODE_MENU; + } else { + startLevel(); + } + } + } +} + + +void drawMenu(int width, int height) { + saveState(); + noFill(); + stroke(colorByName("white")); + double scrollY = currentLevel*(regularSize+lineSpace) + bigSize + lineSpace - height; + if (scrollY < 0) scrollY = 0; + double y = -scrollY; + for(int i = 0; i < levelsCount; ++i) { + double size = i == currentLevel ? bigSize : regularSize; + textSize(size); + text(0, y, levels[i].name); + y += size + lineSpace; + } + restoreState(); + + if (keyWentDown("escape")) windowStop(); + + if (keyWentDown("up" )) --currentLevel; + if (keyWentDown("down")) ++currentLevel; + if (keyWentDown("home")) currentLevel = 0; + if (keyWentDown("end" )) currentLevel = levelsCount - 1; + if (currentLevel >= levelsCount) currentLevel = levelsCount - 1; + if (currentLevel < 0) currentLevel = 0; + + if (keyWentDown("any return")) startLevel(); +} + + +void draw() { + saveState(); + translate(70, 50); + int width = windowGetWidth() - 70 - 70; + int height = windowGetHeight() - 50 - 80; + if (mode == MODE_MENU) + drawMenu(width, height); + else + drawLevel(width, height); + restoreState(); +} + + +int main() { + windowSetTitle("Arithm"); + windowSetVariableFrameRate(); + windowSetSize(1000, 700); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); + return 0; +} diff --git a/onefile/pentamino-solver.cpp b/onefile/pentamino-solver.cpp new file mode 100644 index 0000000..c853975 --- /dev/null +++ b/onefile/pentamino-solver.cpp @@ -0,0 +1,370 @@ + +#include +#include +#include +#include +#include +#include + +#include + +#define CELLSIZE 64 + + +int baseItems[][5][5] = { + { + { 1, 1, 1, 1, 1 } + }, { + { 1, 1, 1, 1 }, + { 1, 1 } + }, { + { 1, 1, 1, 1 }, + { 0, 1 } + }, { + { 1, 1 }, + { 1, 1 } + }, { + { 0, 1, 1, 1 }, + { 1, 1 } + }, { + { 1, 1, 1 }, + { 1, 0, 1 } + }, { + { 0, 0, 1 }, + { 1, 1, 1 }, + { 1, 0, 0 } + }, { + { 1, 1, 1 }, + { 1, 1, 0 } + }, { + { 0, 1, 0 }, + { 1, 1, 1 }, + { 1, 0, 0 } + }, { + { 0, 1, 0 }, + { 1, 1, 1 }, + { 0, 1, 0 } + }, { + { 0, 0, 1, 1 }, + { 0, 1, 1 }, + { 1, 1 } + }, { + { 1, 1, 1 }, + { 0, 1 }, + }, { + { 1, 1, 1 }, + { 1 }, + } +}; + +const char *colors[] = { + "red", + "green", + "yellow", + "white", + "green", + "blue", + "blue", + "red", + "green", + "red", + "yellow", + "blue", + "yellow" +}; + +const int itemCount = sizeof(baseItems)/sizeof(*baseItems); + +struct Variant { + int h, w; + int dc; + int map[5][5]; + Variant() { memset(this, 0, sizeof(*this)); } +}; + +struct Item { + int id; + int count; + Variant variants[8]; + Item **prev, *next; + Item(): id(), count(), prev(), next() { } +}; + +struct Cell { + int value; + int r, c; + Cell **prev, *next; + Cell(): value(), r(), c(), prev(), next() { } + operator int() { return value; } +}; + +struct Board { + Cell *first; + Cell map[8][8]; + + Board() { init(); } + + void init() { + first = &map[0][0]; + Cell **prev = &first; + for(int i = 0; i < 8*8; ++i) { + int r = i/8, c = i%8; + Cell &cell = map[r][c]; + cell.value = 0; + cell.r = r; + cell.c = c; + *prev = &cell; + cell.prev = prev; + prev = &cell.next; + cell.next = NULL; + } + } + + bool put(int r, int c, int id) { + if (!id) return false; + Cell &cell = map[r][c]; + if (cell) return false; + cell.value = id; + *cell.prev = cell.next; + if (cell.next) cell.next->prev = cell.prev; + return true; + } + + bool reset(int r, int c) { + Cell &cell = map[r][c]; + if (!cell) return false; + cell.value = 0; + *cell.prev = &cell; + if (cell.next) cell.next->prev = &cell.next; + return true; + } + + void print() { + printf("--------------------------\n"); + for(int r = 0; r < 8; ++r) { + printf(" "); + for(int c = 0; c < 8; ++c) + printf("%3d", map[r][c].value); + printf("\n"); + } + printf("--------------------------\n"); + fflush(stdout); + } +}; + + +void prepareItems(std::list &items, std::vector &pointers, Item **prev) { + for(int i = 0; i < itemCount; ++i) { + int h = 0, w = 0; + for(int r = 0; r < 5; ++r) + for(int c = 0; c < 5; ++c) + if (baseItems[i][r][c]) + { h = std::max(h, r+1); w = std::max(w, c+1); } + + items.push_back(Item()); + Item &ii = items.back(); + pointers.push_back(&ii); + ii.id = (int)items.size(); + ii.prev = prev; + *prev = ⅈ + prev = &ii.next; + for(int fv = 0; fv <= 1; ++fv) { + for(int fh = 0; fh <= 1; ++fh) { + for(int t = 0; t <= 1; ++t) { + Variant &v = ii.variants[ ii.count ]; + v.h = t ? w : h; + v.w = t ? h : w; + v.dc = v.w-1; + for(int r = 0; r < h; ++r) { + for(int c = 0; c < w; ++c) { + int rr = fv ? h-r-1 : r; + int cc = fh ? w-c-1 : c; + if (t) std::swap(rr, cc); + v.map[rr][cc] = baseItems[i][r][c]; + if (rr == 0 && v.map[rr][cc] && v.dc > cc) v.dc = cc; + } + } + + bool duplicate = false; + for(int vi = 0; vi < ii.count; ++vi) { + bool d = (v.h == ii.variants[vi].h && v.w == ii.variants[vi].w); + for(int r = 0; r < v.h; ++r) + for(int c = 0; c < v.w; ++c) + if (v.map[r][c] != ii.variants[vi].map[r][c]) d = false; + if (d) duplicate = true; + } + + if (!duplicate) { + ++ii.count; + //for(int r = 0; r < v.h; ++r) { + // for(int c = 0; c < v.w; ++c) + // printf(v.map[r][c] ? "#" : " "); + // printf("\n"); + //} + //printf("\n"); + } + } + } + } + } +} + + +Item *first = NULL; +std::list items; +std::vector pointers; +Board board; +int levels[10000000]; +int sublevels[10000000]; + + +long long iteration = 0; +long long variants = 0; +void nextIteration() { + if (((++iteration) % 1000000) == 0) { + printf("%lld / %lld:", variants, iteration); + for(int i = 0; levels[i]; ++i) + printf(" %d%c", levels[i], 'a' + (char)sublevels[i]); + printf("\n"); + fflush(stdout); + } +} + + +void restart(bool shuffle = false) { + iteration = 0; + variants = 0; + memset(levels, 0, sizeof(levels)); + memset(sublevels, 0, sizeof(levels)); + first = NULL; + if (shuffle) { + for(int i = 0; i < 2*(int)pointers.size(); ++i) + std::swap(pointers[rand()%pointers.size()], pointers[rand()%pointers.size()]); + for(std::list::iterator i = items.begin(); i != items.end(); ++i) + for(int j = 0; j < 2*i->count; ++j) + std::swap(i->variants[rand() % i->count], i->variants[rand() % i->count]); + } + + board.init(); + Item **prev = &first; + for(std::vector::iterator i = pointers.begin(); i != pointers.end(); ++i) { + (*i)->prev = prev; + *prev = *i; + prev = &((*i)->next); + (*i)->next = NULL; + } +} + + +void process(int level = 0, int id = 0, int row = 0, int col = 0) { + if (!first || !board.first) { + ++variants; + //board.print(); fgetc(stdin); + } + //nextIteration(); + + for(Item *i = first; i; i = i->next) { + if (id && i->id != id) continue; + + *(i->prev) = i->next; + if (i->next) i->next->prev = i->prev; + levels[level] = i->id; + + for(int vi = 0; vi < i->count; ++vi) { + Variant &v = i->variants[vi]; + sublevels[level] = vi; + int rr = id ? row : board.first->r; + int cc = id ? col : board.first->c - v.dc; + if (cc < 0 || rr + v.h > 8 || cc + v.w > 8) continue; + + bool success = true; + int placed = 0; + for(int r = 0; r < v.h && success; ++r) + for(int c = 0; c < v.w; ++c, ++placed) + if (v.map[r][c] && !board.put(rr+r, cc+c, i->id)) + { success = false; break; } + + if (success) { + //printf("level %d item %d variant %d\n", level, i->id, vi); + //board.print(); + //fgetc(stdin); + process(level + 1); + if (variants) return; + } + + for(int r = 0; r < v.h && placed > 0; ++r) + for(int c = 0; c < v.w && placed > 0; ++c, --placed) + if (v.map[r][c]) board.reset(rr+r, cc+c); + //if (!level) break; + } + + + levels[level] = 0; + *(i->prev) = i; + if (i->next) i->next->prev = &i->next; + } +} + + +int sqr = 3, sqc = 3; +void generateRandom(bool center = false) { + restart(true); + process(0, (center ? 4 : 0), sqr, sqc); +} + + +void init() { + srand(time(NULL)); + prepareItems(items, pointers, &first); + generateRandom(true); + background(colorByName("black")); +} + + +void draw() { + saveState(); + zoom(CELLSIZE); + noStroke(); + + if (keyWentDown("space")) { + sqr = randomNumber(0, 6); + sqc = randomNumber(0, 6); + generateRandom(true); + } + if (keyWentDown("enter")) generateRandom(true); + if (keyWentDown("up") && sqr > 0) { --sqr; generateRandom(true); } + if (keyWentDown("down") && sqr < 6) { ++sqr; generateRandom(true); } + if (keyWentDown("left") && sqc > 0) { --sqc; generateRandom(true); } + if (keyWentDown("right") && sqc < 6) { ++sqc; generateRandom(true); } + + double b = 2.0/CELLSIZE; + for(int r = 0; r < 8; ++r) { + for(int c = 0; c < 8; ++c) { + int id = board.map[r][c].value; + if (id) { + fill(colorByName(colors[id-1])); + rect(c+b, r+b, 1-b-b, 1-b-b); + bool t = r > 0 && board.map[r-1][c].value == id; + bool l = c > 0 && board.map[r][c-1].value == id; + + if (t) rect(c+b, r-0.5+b, 1-b-b, 1-b-b); + if (l) rect(c-0.5+b, r+b, 1-b-b, 1-b-b); + if (t && l && board.map[r-1][c-1].value == id) + rect(c-0.5+b, r-0.5+b, 1-b-b, 1-b-b); + } + } + } + + restoreState(); +} + + +int main() { + windowSetTitle("Press Enter, Space or arrows"); + windowSetVariableFrameRate(); + windowSetSize(CELLSIZE*8, CELLSIZE*8); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); + return 0; +} diff --git a/onefile/stars-smooth.c b/onefile/stars-smooth.c new file mode 100644 index 0000000..c90d9d5 --- /dev/null +++ b/onefile/stars-smooth.c @@ -0,0 +1,119 @@ + +#include +#include +#include + + +#define MAXCOUNT 10000 +#define SPEED 1 +#define SPS 500 +#define PERSP 0.5 + + +typedef struct Star { + double x, y, z; + double px, py; + int visible; +} Star; + +Star stars[MAXCOUNT]; +double step; +double mx, my; + + +Framebuffer buffer; +Animation anim; + + +void update(double dt) { + double dz = SPEED*dt; + double sx = mx*dz*PERSP; + double sy = -my*dz*PERSP; + int j = 0, count = 0; + for(int i = 0; i < MAXCOUNT; ++i) { + if (stars[i].visible) { + double x = stars[i].x - sx*stars[i].z; + double y = stars[i].y - sy*stars[i].z; + double z = stars[i].z + sx*stars[i].x + sy*stars[i].y; + stars[i].x = x; + stars[i].y = y; + stars[i].z = z - dz; + } else { + j = i; + ++count; + } + } + + step += SPS*dt; + if (count > (int)step) count = (int)step; + step -= (int)step; + for(int i = 0; i < count; ++i) { + while(stars[j].visible) j = (j+1)%MAXCOUNT; + stars[j].px = 2*randomFloat() - 1; + stars[j].py = 2*randomFloat() - 1; + stars[j].z = 1 - randomFloat()*dz; + stars[j].x = stars[j].px * stars[j].z / PERSP; + stars[j].y = stars[j].py * stars[j].z / PERSP; + stars[j].visible = TRUE; + } +} + + +void init() { + background(COLOR_BLACK); + buffer = createFramebuffer(windowGetWidth(), windowGetHeight()); + anim = createAnimationFromFramebuffer(buffer); +} + + +void draw() { + double w = windowGetWidth(); + double h = windowGetHeight(); + double s = 0.5*(w > h ? w : h); + + saveState(); + noStroke(); + target(buffer); + update(windowGetFrameTime()); + + fill(colorByRGBA(0, 0, 0, 0.25)); + rect(0, 0, w, h); + + saveState(); + translate(w/2, h/2); + zoom(s); + mx = mouseTransformedX(); + my = mouseTransformedY(); + stroke(COLOR_WHITE); + double dz = 0.01; + for(int i = 0; i < MAXCOUNT; ++i) { + if (stars[i].visible) { + double z = stars[i].z > dz ? stars[i].z : dz; + double x = stars[i].x/z*PERSP; + double y = stars[i].y/z*PERSP; + double r = 0.25/s/z; + strokeWidth(r); + + line(stars[i].px, stars[i].py, x, y); + stars[i].px = x; + stars[i].py = y; + stars[i].visible = stars[i].z > dz && fabs(x)-r < 1 && fabs(y)-r < 1; + } + } + restoreState(); + + noTarget(buffer); + fill(COLOR_WHITE); + rectTextured(anim, 0, 0, w, h); + + restoreState(); +} + + +int main() { + windowSetSize(1024, 768); + windowSetVariableFrameRate(); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); +} diff --git a/onefile/stars.c b/onefile/stars.c new file mode 100644 index 0000000..b7ce7f3 --- /dev/null +++ b/onefile/stars.c @@ -0,0 +1,87 @@ + +#include +#include +#include + + +#define MAXCOUNT 10000 +#define STEP 1.001 +#define SPEED 2000 + + +typedef struct Star { + double cx, cy; + double dx, dy; + double r; + int visible; +} Star; + +Star stars[MAXCOUNT]; +double step; + + +void updateStar(Star *s, double k, double w, double h) { + s->dx *= k; + s->dy *= k; + s->r *= k; + s->visible = fabs(s->dx + s->cx) + s->r < w/2 + && fabs(s->dy + s->cy) + s->r < h/2; +} + + +void update(double dt, double mx, double my, double w, double h) { + step += SPEED*dt; + while(step > 1) { + int found = 0; + for(int i = 0; i < MAXCOUNT; ++i) { + if (stars[i].visible) updateStar(&stars[i], STEP, w, h); + + if (!found && !stars[i].visible) { + stars[i].cx = mx; + stars[i].cy = my; + stars[i].dx = (randomFloat() - 0.5)*w - mx; + stars[i].dy = (randomFloat() - 0.5)*h - my; + stars[i].r = 0.25*pow(STEP, randomFloat()); + stars[i].visible = TRUE; + found = 1; + } + } + step -= 1; + } + + double k = pow(STEP, step); + for(int i = 0; i < MAXCOUNT; ++i) + if (stars[i].visible) updateStar(&stars[i], k, w, h); +} + + +void init() { + background(COLOR_BLACK); +} + + +void draw() { + double w = windowGetWidth(); + double h = windowGetHeight(); + saveState(); + translate(w/2, h/2); + + update(windowGetFrameTime(), mouseTransformedX(), mouseTransformedY(), w, h); + + noStroke(); + fill(COLOR_WHITE); + for(int i = 0; i < MAXCOUNT; ++i) + if (stars[i].visible) + circle(stars[i].cx + stars[i].dx, stars[i].cy + stars[i].dy, stars[i].r); + + restoreState(); +} + + +int main() { + windowSetResizable(TRUE); + windowSetVariableFrameRate(); + windowSetInit(&init); + windowSetDraw(&draw); + windowRun(); +}