// https://syzkaller.appspot.com/bug?id=75630474080f59df29a1232f4a9e9cc452a9bd0f // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "./syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); syscall(SYS_futex, &ev->state, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1000000); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, 0); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; for (;;) { uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, &ts); if (__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) return 1; now = current_time_ms(); if (now - start > timeout) return 0; } } static bool write_file(const char* file, const char* what, ...) { char buf[1024]; va_list args; va_start(args, what); vsnprintf(buf, sizeof(buf), what, args); va_end(args); buf[sizeof(buf) - 1] = 0; int len = strlen(buf); int fd = open(file, O_WRONLY | O_CLOEXEC); if (fd == -1) return false; if (write(fd, buf, len) != len) { int err = errno; close(fd); errno = err; return false; } close(fd); return true; } #define FS_IOC_SETFLAGS _IOW('f', 2, long) static void remove_dir(const char* dir) { int iter = 0; DIR* dp = 0; retry: while (umount2(dir, MNT_DETACH | UMOUNT_NOFOLLOW) == 0) { } dp = opendir(dir); if (dp == NULL) { if (errno == EMFILE) { exit(1); } exit(1); } struct dirent* ep = 0; while ((ep = readdir(dp))) { if (strcmp(ep->d_name, ".") == 0 || strcmp(ep->d_name, "..") == 0) continue; char filename[FILENAME_MAX]; snprintf(filename, sizeof(filename), "%s/%s", dir, ep->d_name); while (umount2(filename, MNT_DETACH | UMOUNT_NOFOLLOW) == 0) { } struct stat st; if (lstat(filename, &st)) exit(1); if (S_ISDIR(st.st_mode)) { remove_dir(filename); continue; } int i; for (i = 0;; i++) { if (unlink(filename) == 0) break; if (errno == EPERM) { int fd = open(filename, O_RDONLY); if (fd != -1) { long flags = 0; if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == 0) { } close(fd); continue; } } if (errno == EROFS) { break; } if (errno != EBUSY || i > 100) exit(1); if (umount2(filename, MNT_DETACH | UMOUNT_NOFOLLOW)) exit(1); } } closedir(dp); for (int i = 0;; i++) { if (rmdir(dir) == 0) break; if (i < 100) { if (errno == EPERM) { int fd = open(dir, O_RDONLY); if (fd != -1) { long flags = 0; if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == 0) { } close(fd); continue; } } if (errno == EROFS) { break; } if (errno == EBUSY) { if (umount2(dir, MNT_DETACH | UMOUNT_NOFOLLOW)) exit(1); continue; } if (errno == ENOTEMPTY) { if (iter < 100) { iter++; goto retry; } } } exit(1); } } static void kill_and_wait(int pid, int* status) { kill(-pid, SIGKILL); kill(pid, SIGKILL); for (int i = 0; i < 100; i++) { if (waitpid(-1, status, WNOHANG | __WALL) == pid) return; usleep(1000); } DIR* dir = opendir("/sys/fs/fuse/connections"); if (dir) { for (;;) { struct dirent* ent = readdir(dir); if (!ent) break; if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) continue; char abort[300]; snprintf(abort, sizeof(abort), "/sys/fs/fuse/connections/%s/abort", ent->d_name); int fd = open(abort, O_WRONLY); if (fd == -1) { continue; } if (write(fd, abort, 1) < 0) { } close(fd); } closedir(dir); } else { } while (waitpid(-1, status, __WALL) != pid) { } } static void setup_test() { prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0); setpgrp(); write_file("/proc/self/oom_score_adj", "1000"); if (symlink("/dev/binderfs", "./binderfs")) { } } #define FUSE_MIN_READ_BUFFER 8192 enum fuse_opcode { FUSE_LOOKUP = 1, FUSE_FORGET = 2, FUSE_GETATTR = 3, FUSE_SETATTR = 4, FUSE_READLINK = 5, FUSE_SYMLINK = 6, FUSE_MKNOD = 8, FUSE_MKDIR = 9, FUSE_UNLINK = 10, FUSE_RMDIR = 11, FUSE_RENAME = 12, FUSE_LINK = 13, FUSE_OPEN = 14, FUSE_READ = 15, FUSE_WRITE = 16, FUSE_STATFS = 17, FUSE_RELEASE = 18, FUSE_FSYNC = 20, FUSE_SETXATTR = 21, FUSE_GETXATTR = 22, FUSE_LISTXATTR = 23, FUSE_REMOVEXATTR = 24, FUSE_FLUSH = 25, FUSE_INIT = 26, FUSE_OPENDIR = 27, FUSE_READDIR = 28, FUSE_RELEASEDIR = 29, FUSE_FSYNCDIR = 30, FUSE_GETLK = 31, FUSE_SETLK = 32, FUSE_SETLKW = 33, FUSE_ACCESS = 34, FUSE_CREATE = 35, FUSE_INTERRUPT = 36, FUSE_BMAP = 37, FUSE_DESTROY = 38, FUSE_IOCTL = 39, FUSE_POLL = 40, FUSE_NOTIFY_REPLY = 41, FUSE_BATCH_FORGET = 42, FUSE_FALLOCATE = 43, FUSE_READDIRPLUS = 44, FUSE_RENAME2 = 45, FUSE_LSEEK = 46, FUSE_COPY_FILE_RANGE = 47, FUSE_SETUPMAPPING = 48, FUSE_REMOVEMAPPING = 49, CUSE_INIT = 4096, CUSE_INIT_BSWAP_RESERVED = 1048576, FUSE_INIT_BSWAP_RESERVED = 436207616, }; struct fuse_in_header { uint32_t len; uint32_t opcode; uint64_t unique; uint64_t nodeid; uint32_t uid; uint32_t gid; uint32_t pid; uint32_t padding; }; struct fuse_out_header { uint32_t len; uint32_t error; uint64_t unique; }; struct syz_fuse_req_out { struct fuse_out_header* init; struct fuse_out_header* lseek; struct fuse_out_header* bmap; struct fuse_out_header* poll; struct fuse_out_header* getxattr; struct fuse_out_header* lk; struct fuse_out_header* statfs; struct fuse_out_header* write; struct fuse_out_header* read; struct fuse_out_header* open; struct fuse_out_header* attr; struct fuse_out_header* entry; struct fuse_out_header* dirent; struct fuse_out_header* direntplus; struct fuse_out_header* create_open; struct fuse_out_header* ioctl; }; static int fuse_send_response(int fd, const struct fuse_in_header* in_hdr, struct fuse_out_header* out_hdr) { if (!out_hdr) { return -1; } out_hdr->unique = in_hdr->unique; if (write(fd, out_hdr, out_hdr->len) == -1) { return -1; } return 0; } static volatile long syz_fuse_handle_req(volatile long a0, volatile long a1, volatile long a2, volatile long a3) { struct syz_fuse_req_out* req_out = (struct syz_fuse_req_out*)a3; struct fuse_out_header* out_hdr = NULL; char* buf = (char*)a1; int buf_len = (int)a2; int fd = (int)a0; if (!req_out) { return -1; } if (buf_len < FUSE_MIN_READ_BUFFER) { return -1; } int ret = read(fd, buf, buf_len); if (ret == -1) { return -1; } if ((size_t)ret < sizeof(struct fuse_in_header)) { return -1; } const struct fuse_in_header* in_hdr = (const struct fuse_in_header*)buf; if (in_hdr->len > (uint32_t)ret) { return -1; } switch (in_hdr->opcode) { case FUSE_GETATTR: case FUSE_SETATTR: out_hdr = req_out->attr; break; case FUSE_LOOKUP: case FUSE_SYMLINK: case FUSE_LINK: case FUSE_MKNOD: case FUSE_MKDIR: out_hdr = req_out->entry; break; case FUSE_OPEN: case FUSE_OPENDIR: out_hdr = req_out->open; break; case FUSE_STATFS: out_hdr = req_out->statfs; break; case FUSE_RMDIR: case FUSE_RENAME: case FUSE_RENAME2: case FUSE_FALLOCATE: case FUSE_SETXATTR: case FUSE_REMOVEXATTR: case FUSE_FSYNCDIR: case FUSE_FSYNC: case FUSE_SETLKW: case FUSE_SETLK: case FUSE_ACCESS: case FUSE_FLUSH: case FUSE_RELEASE: case FUSE_RELEASEDIR: case FUSE_UNLINK: case FUSE_DESTROY: out_hdr = req_out->init; if (!out_hdr) { return -1; } out_hdr->len = sizeof(struct fuse_out_header); break; case FUSE_READ: out_hdr = req_out->read; break; case FUSE_READDIR: out_hdr = req_out->dirent; break; case FUSE_READDIRPLUS: out_hdr = req_out->direntplus; break; case FUSE_INIT: out_hdr = req_out->init; break; case FUSE_LSEEK: out_hdr = req_out->lseek; break; case FUSE_GETLK: out_hdr = req_out->lk; break; case FUSE_BMAP: out_hdr = req_out->bmap; break; case FUSE_POLL: out_hdr = req_out->poll; break; case FUSE_GETXATTR: case FUSE_LISTXATTR: out_hdr = req_out->getxattr; break; case FUSE_WRITE: case FUSE_COPY_FILE_RANGE: out_hdr = req_out->write; break; case FUSE_FORGET: case FUSE_BATCH_FORGET: return 0; case FUSE_CREATE: out_hdr = req_out->create_open; break; case FUSE_IOCTL: out_hdr = req_out->ioctl; break; default: return -1; } return fuse_send_response(fd, in_hdr, out_hdr); } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 8; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); #define WAIT_FLAGS __WALL static void loop(void) { int iter = 0; for (;; iter++) { char cwdbuf[32]; sprintf(cwdbuf, "./%d", iter); if (mkdir(cwdbuf, 0777)) exit(1); int pid = fork(); if (pid < 0) exit(1); if (pid == 0) { if (chdir(cwdbuf)) exit(1); setup_test(); execute_one(); exit(0); } int status = 0; uint64_t start = current_time_ms(); for (;;) { if (waitpid(-1, &status, WNOHANG | WAIT_FLAGS) == pid) break; sleep_ms(1); if (current_time_ms() - start < 5000) continue; kill_and_wait(pid, &status); break; } remove_dir(cwdbuf); } } uint64_t r[1] = {0xffffffffffffffff}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: memcpy((void*)0x20000100, "/dev/fuse\000", 10); res = syscall(__NR_openat, 0xffffffffffffff9cul, 0x20000100ul, 2ul, 0ul); if (res != -1) r[0] = res; break; case 1: memcpy((void*)0x200001c0, "fd", 2); *(uint8_t*)0x200001c2 = 0x3d; sprintf((char*)0x200001c3, "0x%016llx", (long long)-1); *(uint8_t*)0x200001d5 = 0x2c; memcpy((void*)0x200001d6, "rootmode", 8); *(uint8_t*)0x200001de = 0x3d; sprintf((char*)0x200001df, "%023llo", (long long)0); *(uint8_t*)0x200001f6 = 0x2c; memcpy((void*)0x200001f7, "user_id", 7); *(uint8_t*)0x200001fe = 0x3d; sprintf((char*)0x200001ff, "%020llu", (long long)0xee00); *(uint8_t*)0x20000213 = 0x2c; memcpy((void*)0x20000214, "group_id", 8); *(uint8_t*)0x2000021c = 0x3d; sprintf((char*)0x2000021d, "%020llu", (long long)0xee00); *(uint8_t*)0x20000231 = 0x2c; *(uint8_t*)0x20000232 = 0; syscall(__NR_mount, 0ul, 0ul, 0ul, 0ul, 0x200001c0ul); break; case 2: memcpy((void*)0x20000080, "./file0\000", 8); syscall(__NR_creat, 0x20000080ul, 0ul); break; case 3: memcpy((void*)0x20000140, "./file0\000", 8); memcpy((void*)0x20000040, "fuse\000", 5); memcpy((void*)0x20000180, "fd=", 3); sprintf((char*)0x20000183, "%020llu", (long long)r[0]); memcpy((void*)0x20000197, "\x2c\x72\x6f\x6f\x74\x6d\x6f\x64\x65\x3d\x30\x30\x30\x30\x30\x30" "\x30\x30\x30\x30\x30\x30\x61\x30\xfc\x2a\xef\xed\x2e\x2a\xff\x1f" "\xaa\x63\x75\x73\x65\x72\x5f\x69\x64", 41); syscall(__NR_mount, 0x20000000ul, 0x20000140ul, 0x20000040ul, 0ul, 0x20000180ul); break; case 4: memcpy((void*)0x200012c0, "./file0\000", 8); syscall(__NR_lchown, 0x200012c0ul, 0, 0); break; case 5: memcpy( (void*)0x20000240, "\xe9\x21\xed\x8d\x79\x58\x13\x6e\xa9\x98\x9e\xff\x2c\xb0\x40\x58\x20" "\xb3\x48\xc9\x1e\xdf\x7d\x88\xfc\x5e\x7f\x3e\xb7\x27\x12\xb7\xa5\x72" "\xd0\x39\x72\xd8\xb2\x62\x27\x00\xdd\x22\xa1\xde\xbe\x02\xa0\xa5\x86" "\x22\x06\xb7\x89\xac\xef\x8b\x6c\x61\x97\xf0\xab\xb7\x67\xfd\x7e\x0b" "\x88\x90\xaf\x93\x68\xf7\x35\xd7\xee\x53\xd2\x44\x6e\x9e\xa6\xb6\x2a" "\x13\x82\xe1\xdf\xf6\x9a\x36\x3d\xa8\x7b\x25\x6b\x12\x85\x35\x21\x6b" "\x4c\x8b\x88\x62\x3e\x60\x87\x04\xb3\x05\x23\x00\xc9\x32\x29\x92\x84" "\xa5\x0a\x85\xbb\x70\x51\x35\x49\xf3\x8b\xed\xe7\xb0\xa7\xa4\x36\xf2" "\x4c\x53\x17\x87\x29\x3b\x1d\xe1\x25\x58\xa1\x8f\x32\xbc\xca\x14\xe9" "\x85\xcb\x41\xdb\x6c\x1a\xa7\x4b\xc0\xda\x80\x42\x61\xb0\xcf\xe8\xdb" "\x23\x79\xb0\x78\xe5\x55\x19\x83\xfe\x4f\xd7\x8b\xf0\x3f\xbe\x8f\x49" "\xbf\x9c\x7a\xbd\xfa\xd5\xe7\x49\xef\x73\xb3\x13\xd9\xc0\x9b\xd6\x0d" "\x44\x65\x81\x84\x22\x33\x21\xc0\xc3\x3e\xca\x9f\xdb\xdf\x7e\xbc\x29" "\x06\xfd\x65\x3e\xe5\x18\xd3\x1a\x32\x8b\x19\x88\xd5\x8e\x3e\x86\xf8" "\xb8\x2e\x4d\x5b\x9f\xd2\x37\x20\x56\xeb\x38\x0b\xc1\xd6\x21\xd8\x0e" "\x66\x57\xed\xc3\x9c\x1b\x64\xb6\x04\xf6\x97\x9f\x72\x8f\xf0\x51\x4f" "\xbd\xfc\x51\xca\xa0\xd7\x25\x11\x1f\x04\x84\x6e\x81\x32\xd8\x68\x6c" "\x2f\x25\x56\x80\xfd\xaf\xf4\x84\x89\x8a\x77\xcb\xb6\xa2\xcb\x78\x3f" "\x9f\xa8\xd7\x4c\x12\xc6\xa3\xe5\x87\x71\x2b\x6b\xe4\x22\x35\xce\xb9" "\xc4\xfc\x2d\xd9\x84\x16\xef\x58\x4e\x71\x05\xcb\xe2\xb8\x0f\x34\x74" "\xb1\xc4\xfe\xcf\xac\x8c\x33\x18\x4d\x2d\x67\xb3\x82\x79\x12\x08\x76" "\x1d\x14\x92\xa4\x8f\x0d\x77\xca\xa9\x16\x25\x45\x25\xe2\xc7\xdd\xe6" "\x90\xc8\x11\x2b\xc0\xcd\xd0\xc1\x25\xba\x66\x5d\x59\x69\x57\xde\xf5" "\xfc\x4b\x83\x5a\x3b\x9b\x90\x64\x17\x30\x11\x92\x0c\x32\xb2\x21\x61" "\xab\x36\x95\x96\x51\xb1\x8f\x1c\x73\x16\x02\xdd\x5f\x45\x20\xf1\x7b" "\x29\xe3\x99\xf7\xb9\x49\x9b\x81\xab\xeb\xf9\x9d\x15\x21\x0d\x30\xd6" "\xa2\xee\x14\xba\x08\xfa\x23\x05\xb6\x32\xe5\x3d\x1e\x32\xaf\x05\x99" "\x7c\x78\x5a\x68\x24\x93\xef\x50\xb9\xeb\x78\x80\x71\x1e\xfe\x6d\xa0" "\x19\xda\x85\x8c\x4e\x59\x8b\xe0\xe5\x77\x72\x5b\xd9\x54\x42\x4e\xd1" "\x5e\x2c\xdf\x7c\xfd\x1d\xa4\x1f\xd0\xf1\x5e\x79\x9f\x44\x15\x24\x1c" "\xcb\x7f\x68\x06\x52\x42\x57\x60\x78\xf1\xda\x64\xe9\x27\x51\x75\xe6" "\x21\xbf\x57\x8f\xdf\xeb\x1a\x4b\xcd\xe2\x31\xce\x4a\xe9\x2f\x39\x38" "\xa5\x96\xf5\xc1\x19\xfd\x8c\xd4\x7b\x85\xea\x02\x48\x1e\x9f\x26\x34" "\xe3\x49\x2e\x0c\x38\xa6\xb3\x99\x53\x93\x38\xad\x16\xb4\x1b\x53\x5a" "\x0d\xb8\x54\xbd\x1a\x60\x13\x80\x13\x71\x25\x29\x6c\x4e\x5c\xf1\xc7" "\xae\x8d\xa5\x5e\x63\x24\xee\xf8\x04\xb1\x69\x71\xb5\x04\xa6\x9d\xad" "\xcc\xc5\x33\xa7\x67\x4b\x8c\x5f\xc9\x8d\x86\x87\x67\xcb\x43\x30\xe8" "\xf4\xa6\x10\xf0\x24\xcd\xc5\x9e\xdc\x61\xbb\x98\x15\x5f\x55\x9f\x8f" "\x48\xb7\xc8\xef\x4d\x62\xab\x8e\xc3\xc5\x60\xec\x7f\x5f\x21\xe1\x8a" "\xe4\x88\xb8\xe5\xf1\x2b\x47\x48\xcb\x15\xae\x1c\x1a\x9d\xe1\x45\x8a" "\x58\xe0\x0e\x83\xe9\x24\xf6\xfe\xba\x19\xcd\x2c\xf1\xe1\x26\xff\xe8" "\x15\x60\x21\x41\x73\xde\xb5\xad\x06\xe1\x0c\x65\xea\xa1\xa9\x70\x6f" "\x36\x2a\xf2\xc7\xc0\x2c\xfa\xed\x38\xdf\xc5\x69\xe3\x28\xb7\x6b\x75" "\xea\xb1\xc2\x4d\xf4\x11\x7a\xa0\xf8\x5d\x21\x6b\xcc\xc5\x36\x86\x96" "\xdc\x37\xbc\xab\xe5\xf0\xe9\xbe\x9d\xaf\x8c\x5b\xe1\xa4\x95\x1d\xbb" "\xec\x05\x78\x9f\x56\x7e\x60\x06\xd0\x9f\xd9\x39\x9c\x19\xf4\x8e\x09" "\x71\xe4\x02\x66\x55\x2a\xcd\x47\xa0\x37\x81\x24\x24\x86\xa2\x0f\x70" "\xbb\x09\x08\x46\x03\x92\xff\xf3\x0b\x68\xb9\x3e\x13\xaf\x6a\xb3\x5c" "\x6c\xc6\x57\xb8\x00\xe3\x9d\x68\xb4\xf9\x41\x14\x09\x46\x83\xde\x0c" "\x4c\xb7\x64\x60\x98\x52\x2e\x89\x27\x91\x1a\x30\x66\x44\x01\x77\xf3" "\x2c\x44\xd9\xaa\xa8\x53\x6c\xd5\x57\x35\x4a\x34\x90\xc3\x3b\x20\x8d" "\xe3\x13\x43\xaa\x54\xfa\xc4\x60\x88\xf5\x02\xb8\x2f\xb1\x55\x70\x3e" "\x85\xf2\xd7\x53\xac\xeb\xba\x0d\x91\xa2\xf5\xf2\xb7\x8c\x21\xc4\x2d" "\x97\xe8\x2a\x99\x7b\x9c\x98\x7c\x41\xa8\xd9\xfa\x37\xbe\x37\xa2\xb2" "\x56\xec\x9d\x4f\x61\x78\xcd\x90\xb1\xf9\x94\x19\xb1\x7c\x8d\xfb\x66" "\xa0\xd3\xe0\x06\x56\xf7\xf7\x29\x01\xdb\x49\x23\xce\xdf\x9b\xb0\xf2" "\x16\x8c\xf9\x5b\xb1\x51\xd8\x79\x77\xcd\x21\x44\x49\x05\x73\xcb\x8e" "\xf5\x8d\x2a\xcb\x57\x99\x24\xda\x90\xcd\xbe\xf2\xf5\xb2\xb2\xd5\x31" "\x3c\x06\xeb\x17\x82\x26\x89\x54\x56\x90\xbd\xba\x66\x2e\xac\x11\xa6" "\x11\x7b\x16\xd9\x7e\x05\xa3\x87\xd2\xaa\x7e\x83\x16\x03\x5a\xcd\xd7" "\x47\x6c\x53\x2f\xc1\xe7\xcd\x48\x03\xbd\xa1\x08\x85\xc5\x3d\x8d\xd6" "\x05\x87\x86\x24\x8a\x50\x1b\x76\x27\xdd\xd0\xaf\xdc\x8a\x2d\xaf\x96" "\x03\x94\xea\xb9\x99\x3b\x68\xec\x7a\x50\x3c\x1a\xa0\x9c\xe1\x0a\x33" "\x03\xab\x5a\xc1\x32\x7b\x12\x70\x12\x0a\xd6\x5a\x58\xee\x35\xf7\x02" "\xb6\xf8\xa7\x3c\x30\x72\x3f\x77\xbc\xf7\x48\x13\x72\x35\x26\xff\xdb" "\x29\xf1\xd6\x34\x51\xf6\xcb\xce\xcd\x3d\xb5\x36\xfb\xe5\xad\x08\xc9" "\x35\x84\xa5\x51\x9c\x82\xb7\x55\xfc\xa8\xaa\x30\x56\x4f\x1a\xcb\xff" "\x79\xfd\x5f\x11\x8d\x86\xc9\x0e\x4a\xb8\x2e\x3b\x5d\xc6\xa6\x17\x89" "\x3c\x12\xc7\x52\xd8\x97\xee\x03\x2c\x31\xc9\x2a\xd6\x00\xba\x2e\xfd" "\xd3\x4a\x82\x7e\x2d\xb3\x49\xaf\x30\x5d\xfb\x34\x08\xf0\x12\xf4\xbc" "\x12\x69\x6c\xb0\xc1\x86\xa2\x3a\xde\x0e\xeb\x5b\xc8\x3e\x22\xeb\x5e" "\x8b\x8f\xcc\xe4\xb8\xbf\x69\xac\x2d\xa7\x79\xf7\xef\x94\x13\x43\x18" "\x3e\xa2\xec\xc3\xe9\x37\xd9\x3f\x44\xbb\xfd\x0a\x38\xf0\x15\x64\xef" "\x5c\xbb\x2c\x07\x2d\x13\x31\x39\x39\xe6\x6d\x4e\x3b\xad\x7a\xa1\x23" "\x93\xe8\x95\xae\xdd\xe2\x13\x09\xb4\x78\x71\x48\x9e\xee\xe7\x92\x03" "\xd2\x59\xc4\xe2\xee\x2c\x22\xbe\x24\xb4\xef\x08\xdc\xf7\x11\xdd\xb7" "\xfc\x3e\x6a\x0e\x49\x8e\x14\xbe\x2a\x2a\xbd\x8a\x1e\xe5\xe7\x7f\x00" "\xb5\xba\x35\x8c\x05\x97\xb5\x05\x17\xd1\x4e\x3f\xe6\x06\x7c\xf4\x6f" "\xc3\xfe\x81\x22\x98\x5e\xa5\x4b\x15\x31\xbb\xb2\x05\x52\x5e\x2e\xfe" "\x44\x7e\x4c\x52\x1f\x53\xe7\xdf\x35\x49\x90\x6c\x36\x8f\xaa\xe0\xdc" "\xf2\x9f\xb6\x44\xec\xbd\xce\x21\x1b\x52\x15\x03\xff\x78\xae\xc5\x56" "\x5a\x89\xf7\xa6\xd4\x2b\x30\x67\xe7\xc2\xcb\xbe\xa8\xdf\xe8\x14\x5e" "\xf4\x03\xcc\x46\x88\x1d\xa6\xdb\xdc\x9e\xb8\x1b\xeb\x5f\x57\x61\xce" "\x92\x78\xf1\x6b\x7a\x46\xc4\xdc\xbe\xb5\x6b\x8a\xa7\x24\x1d\x5f\x17" "\x6d\xda\x7b\x7c\x4c\x1a\xab\xf7\x4a\xaf\x0f\xd5\x76\x8d\x64\x1b\xc6" "\x4f\x02\xd4\xa9\x0f\x48\xe3\xaf\xf3\x31\xd4\xee\x61\x4c\xc9\xbd\x9d" "\x10\x7e\x3e\xc3\xe6\x0b\xbb\x32\xfe\x1a\x2e\x78\x3e\xdc\x82\xcc\x40" "\x58\x4f\xf0\x55\xda\xba\x78\x98\x5d\x83\x17\xb7\x7d\xe2\x6b\x66\xef" "\x04\xf8\xb0\x7e\x65\xde\x2a\x90\xcc\x65\x7f\x2b\xa1\x21\x1b\xaf\xdf" "\x8b\xf5\x37\x6d\xaf\x06\x0e\x69\xf8\x70\x88\x1f\xa4\x27\x4a\xca\x02" "\x9c\x60\x78\x47\xa8\x72\xfc\xc4\x86\x41\x73\xd8\xe8\x72\xce\xee\xe8" "\xfa\xc9\x82\xc5\xbe\x38\x4f\xf0\x9e\xbf\x64\xe2\x1f\x68\xf1\x6d\x8f" "\x08\xd4\xb7\xe2\xdb\x6a\xd2\x5d\xc4\x9d\xf6\x4c\x7f\xab\x10\xb2\xd6" "\x99\xd9\x94\xc6\x5a\xc4\x8a\xaa\xb8\xc9\xa7\x7f\x7b\xed\xf1\x94\x77" "\x95\x4d\x52\xd8\xb2\x56\x18\x0b\x7a\xc2\x43\x61\xc4\x81\x68\x38\xad" "\x04\xe7\x05\x1f\xfc\x9e\xd7\xfe\xe2\x8f\x16\x68\xb4\xa2\xe3\xda\xa2" "\xc4\xc0\xe8\xba\x02\x8d\xc5\x53\xe6\x59\xdf\xeb\x09\x87\xfe\xd2\x50" "\xa6\x76\xff\x1f\x84\xa4\xdb\x0c\xf2\x14\x71\x62\xc2\x3d\xc9\xa1\xad" "\x99\x5c\xef\x46\x96\xc4\x38\x47\x78\xbd\xa9\xeb\x1e\x97\xb9\x19\x93" "\x4a\xa4\xe9\x04\x76\x51\xa0\x1d\xca\xf3\xac\x6e\x40\x9f\xcb\x59\x90" "\x89\xac\x51\x37\x73\x94\x2e\x1e\x2d\x70\xaf\xeb\xfe\x68\x64\x99\x6d" "\xbd\x1a\xd0\xa2\xe7\xc5\x7e\xde\x95\xa1\x39\x9e\x23\xe5\xf2\x1a\x59" "\x1f\xc7\xd4\x3b\x6c\x90\x3b\x11\x82\x18\xe6\x2e\xf2\x3c\x3c\x94\x59" "\xc6\x21\x5d\x3a\x0d\x08\xf6\xd6\x5e\x04\x9a\xa0\xf4\x8f\xa9\xbe\x3f" "\x86\xf2\xfb\xdc\xaf\x2e\x08\x01\x90\x87\x93\x7d\xff\xec\xa3\x99\xdd" "\x93\xd5\xa4\x67\xca\xaa\x3b\x16\x59\x0b\x65\x45\x31\x0e\x94\xfb\x8b" "\x89\x3e\x9b\x57\x56\x93\xce\xc5\x02\xa8\x2d\xd2\x63\x78\x3f\xb3\xa6" "\xa8\x63\x75\xb0\x6c\x37\x2f\x3f\x84\xb1\x03\x7d\x20\xc2\x55\xb4\x56" "\xc7\xe1\x13\xfb\x9d\xd9\x74\x0b\x4e\xda\x01\xe5\xa8\x3b\xd7\x18\xdf" "\xea\xcb\x13\xce\xad\xc7\x13\xc5\x57\x32\x6b\xca\x12\x63\x83\xa0\x72" "\x59\xa9\x57\x07\x51\x24\x9e\xb7\xf9\x61\x54\x46\x33\x1d\x45\x4b\x27" "\xd9\x26\xa6\x29\xd3\xec\xa7\xb3\xf5\xf4\x6d\xcd\x64\xf2\x0d\xf2\x23" "\x31\xd8\x7e\x12\xe4\xbf\x17\xe4\x39\xce\xd8\xdf\xa1\xc3\xbd\x8b\xd8" "\xe8\x5b\x7c\x17\xf1\xd3\xe3\xc1\x12\x6f\x09\xe0\x26\xc0\xbf\xeb\x3a" "\x0b\x3e\xa7\x05\x77\x52\x77\x3e\x99\xd7\xec\xa8\x2f\x9d\xe3\x0c\x38" "\xe7\x32\x84\x1e\x4d\x06\xbd\xd7\xad\x74\xd4\x89\x61\xe0\x55\x10\x45" "\x4d\x57\xce\x6d\x89\x88\x98\x2e\x96\xdb\x36\x05\x46\x88\x5f\x0a\x6d" "\x99\xee\x82\xb7\x64\xb3\x84\x27\xbe\x7e\xb5\x98\x92\x27\xb1\x38\xa3" "\x76\xc6\xa3\xb0\xda\x24\xab\x27\x71\xd9\x7a\xb5\xc0\x6b\x2d\xa7\x0f" "\xa0\x8b\xfe\x1c\xef\x79\x93\x9d\xfa\x7b\x64\xb1\x0e\xce\x0b\x25\x0a" "\x5a\x32\xea\x46\x8c\xbf\x04\x7f\x8f\xf5\xa2\x59\xcc\x01\xc0\x4d\xa8" "\x25\x76\x85\x98\x99\x9e\x98\x9c\x63\x22\xc8\x02\x55\xb0\x4d\x58\xe1" "\x96\x45\x71\x99\x71\x84\x0c\x0d\xa1\x85\x75\x6e\x2b\xb2\x68\x94\x8d" "\x61\x21\xfc\xd3\x34\x84\xef\xad\x21\xf0\x18\xf3\x81\x19\x73\xd3\x1a" "\x35\xf2\x71\xe0\x60\x1d\x05\x16\x2d\x69\x89\xe1\x71\x9e\x72\x45\xc7" "\xe6\xf8\x34\x0b\x3f\x36\xe6\xb8\xec\xa2\xfd\x6e\x66\x73\xdb\xca\x48" "\xe5\x55\x6d\xdd\x48\xc5\xfc\x87\x29\xc8\x4f\x3c\x40\xfd\x9f\x0b\x09" "\x5f\x29\x16\x44\xe9\x38\xcf\xc6\x1c\xe7\x61\xfd\xd6\x38\xaa\xef\xcd" "\x8e\x03\x36\x43\xb0\xdb\x0c\x97\x8f\x4a\x80\xaf\x79\x7a\x58\x84\xe5" "\x9c\x72\x06\x34\xe0\x99\x52\x5f\xaf\x04\x03\x80\x76\x73\x13\x97\x9d" "\x91\x23\x4a\x21\xc7\xba\xb3\x3b\xbf\x02\x0f\x99\xac\x17\xa3\x02\x09" "\xd7\xbe\x30\x66\xae\x64\x6f\x72\x79\x90\x4e\x76\x4e\x21\xc8\x10\x12" "\xd3\x13\xab\xb5\xc6\x69\x74\xa1\xb6\x95\xae\x86\xac\xbc\x88\x7f\x8f" "\x12\x74\xfa\x74\xcc\xd5\x16\x46\x64\x87\x1f\x62\x31\xef\x17\xf8\xcf" "\x68\xaf\x0d\x1b\x6e\x83\x10\xca\xbe\x2b\xf3\x0e\x00\x64\x54\x31\x1d" "\x60\x40\xa9\xc8\x0f\x9c\xe8\xd4\x3d\xc5\xd5\xf4\x3b\xba\x1f\x42\x99" "\x9e\x88\x50\x17\xb6\x3b\xab\x03\xe7\xf3\x8e\x10\x17\xe7\xd2\x62\x35" "\x6e\xa3\x55\x1b\x39\xd3\x3d\xbc\x82\x55\x3d\x21\x22\x1d\x84\x88\xc4" "\x72\xd2\x56\xf3\xb2\x58\xb2\xfe\x49\xdd\x19\xcf\x35\x4d\x10\xa3\xa2" "\x96\x57\xf7\x5a\xd8\xcf\x25\xe3\x3d\xcb\xae\x57\x79\x73\x15\x4f\x83" "\x48\x3e\xf3\x02\x67\xf4\x9a\x04\x03\xd1\x02\x66\x74\x47\x42\xda\x0f" "\x72\x21\x0e\x8d\x16\xa4\x7b\x18\xc6\x81\x9e\x88\xf8\xa5\x0e\x32\x20" "\xdb\xb3\x1b\x70\x85\x75\x97\x5f\xff\x68\x7b\xf6\xe5\xa4\x72\x50\x78" "\x41\x8f\x69\x9b\xf5\xed\xb5\xef\x89\x71\x9c\xb8\xc4\xb7\x4c\xa5\x8d" "\xa7\x03\x0f\x84\x1d\xb2\xc0\xb5\xd3\x67\x62\x60\x99\x44\x8d\x26\x31" "\xad\xaf\x38\x5e\x67\x4c\x63\x64\xc2\x32\xa4\x76\xda\x1f\xcb\x1b\xe9" "\xc2\x30\xda\x43\x83\x1b\x01\xe7\x58\x05\x4d\x37\x73\xd2\xbd\xcd\xd6" "\xf6\x7e\x71\x26\x5b\x1c\x31\xd3\x65\x86\x82\x72\xa7\x26\xa0\xdb\xf4" "\xd2\xeb\xf7\xe4\x83\x9f\x48\x15\x64\x74\x20\x86\x6f\x08\x38\x9f\x71" "\x62\xf6\x36\x0d\xe3\xd5\xb5\x3c\x07\x23\x73\x5a\x6d\x70\x96\x1c\x70" "\x21\xdf\xed\xa7\xf3\x5a\x2c\x40\x68\xa2\x37\x2c\xf5\x32\xe9\x73\x7f" "\x24\x1e\x17\x56\x3d\xe4\x26\x49\xb4\x93\xd5\x1b\x42\x92\x89\x8c\xcc" "\x21\x36\xb7\xe6\xf3\xec\x41\xf1\x8b\x47\xfe\xfc\xa9\x05\x6a\x89\xc6" "\xe8\xf2\xcb\x13\x99\xee\x6b\xcf\xe3\x33\x8e\xe0\x97\xe8\xc0\x35\x63" "\xe9\x1e\xfa\xc7\xcd\x2c\x0d\x72\x69\x77\x85\x28\x6f\xc0\x4b\x2c\x92" "\x1b\x29\xf5\xf1\xd6\x3c\x80\x33\xb2\x48\xf0\xb8\xb2\xac\x5d\x5b\xdc" "\x42\x4c\xbe\x82\xf7\x0a\x4e\x67\x05\xc3\x1f\xab\x8b\xeb\xcc\xdb\x74" "\xae\x0a\xbe\x72\xb0\xde\xa7\xd1\xc8\x13\xd9\x80\x1f\x3d\x17\xa7\xa4" "\xa5\xe7\xc0\xbc\xf5\xfb\xe3\xc3\x11\x68\xfd\x09\x58\x06\xa0\x46\x85" "\xfc\x30\x3d\x8a\x8b\x0d\xe0\x36\x09\xfc\x44\xb6\xee\xb6\x29\x2c\x06" "\xab\xac\x19\x3d\xed\xa6\x93\x32\x53\x45\xac\x29\x46\x92\x79\x98\x65" "\x67\x93\x67\x25\x01\x64\xba\xca\xd8\x9e\xfc\xec\x5b\x2f\x8d\xa8\x63" "\xae\xbe\xb7\x04\x0b\xd3\x58\x41\xe4\xf8\x11\x56\x97\x9c\xe9\x01\xb7" "\x0e\xc5\x45\x8e\x0d\xbc\x19\x07\x0c\x0f\x76\x50\x00\xab\x5d\xe3\x8b" "\xcf\xde\x83\x87\x2e\x03\x4f\xc2\x8f\xbc\xf8\x06\x23\xe1\x0f\x6d\x80" "\x0a\xb5\x55\xe5\x11\xe7\x55\x2c\xb0\x1b\xbb\x11\xeb\x90\xba\xb8\xe3" "\x2b\xd5\x1a\xad\xa9\x02\xf3\xd8\x57\x0b\xa5\x41\x03\xb4\x63\x4f\x21" "\xe3\x93\x90\x91\xe7\x8c\x5a\x74\x6a\x7d\xa3\xe8\xee\x56\x3d\x3e\x53" "\x35\x96\xd8\x6d\x7b\xa1\x73\xee\xad\x14\xc7\x8d\x0e\x1e\x00\xde\x55" "\x9c\xfe\x38\x2f\x9b\xb8\x51\x9d\xbe\xfa\x2c\x5e\x49\x46\xf6\xdc\xa4" "\xe7\xf9\xe9\xb8\xf3\xc1\x3b\x0d\xd7\xbd\xa8\xa3\x88\xb0\x6a\x14\x3c" "\x2f\x04\xfd\x32\xb7\xab\x31\xbc\xee\xd1\x8b\x8a\x56\x3b\xfc\x75\x11" "\x18\xee\x4f\xa6\x75\x86\x1a\x65\x4f\xd7\x26\x54\x19\x2f\x40\xe8\x14" "\x47\xec\xc7\x40\xc8\xed\xff\xc9\xef\x4d\x9c\x9e\xf2\xf2\x94\x0b\x59" "\xfd\x58\xe6\x09\x9a\x0f\xca\x19\x10\x21\x0b\xa0\x9f\xaf\xfe\xfa\x1e" "\x54\x21\x14\x7a\x56\x3a\x65\x5a\xaa\x1e\x4c\xc7\xff\x2c\xa9\x2b\x94" "\xfb\x46\xb1\x1c\x0e\xf0\x0d\x08\x7a\x96\x20\xbc\x9b\x68\xa1\x06\xaf" "\x0a\xe3\xab\x2e\xa6\x9f\xed\xb3\x70\xe6\xd1\x1d\xc8\x0e\x4b\xfe\x2e" "\xd9\x46\x1e\xb7\x6d\x87\xc9\x3e\xe6\x57\x49\x89\x97\x27\x05\x84\xf7" "\xa4\xc3\xb5\xcf\xff\xa9\x75\xdd\xbf\x59\xb5\x03\xf8\x03\xbb\xe2\x00" "\x3d\x90\x94\x57\xef\x91\x64\xe8\x06\x1c\xe3\x29\xb3\xd2\x1a\x6d\xd4" "\xcc\x6e\x1a\x18\x18\xb5\x5e\x2f\x4c\x7b\x36\xa4\xd3\x1b\x6b\xfd\x3b" "\xff\x2c\xbd\x72\xb3\xf6\x3a\x66\xaa\x15\xd8\x7b\x37\x82\x26\x89\xaa" "\x3e\x15\x67\xf6\x18\x69\xfe\x02\x9b\x0a\x58\x98\xba\xda\x4d\x22\xc1" "\xf3\x7e\xab\x3c\xe1\x9c\x27\xe2\xf7\xe6\xb4\x38\xf0\x04\x55\x0d\xc2" "\x2a\x52\x3b\x40\x52\x0e\x13\xbe\x0d\x55\x17\x9c\x7f\x28\x34\x9d\xcf" "\xfe\x13\x39\x51\x5b\x2a\xed\x31\x40\xc0\x31\x28\xc7\xa6\xc8\xc0\x52" "\x20\x55\x4d\xb2\xc5\x8d\xc6\x74\x4e\x77\x5e\x57\xab\x8d\xf2\xe3\x68" "\xfe\x59\xe0\xdb\xee\x74\x82\xc3\x6b\xb9\x61\xed\x3d\x0b\xfa\x54\x81" "\x03\xb3\xbc\xab\x74\x56\xce\x97\xb2\xb0\x83\xff\x87\x11\xec\x5b\xd9" "\x86\x0a\xca\x4f\x80\x20\x37\x39\xd9\x5b\x4e\x9e\xbc\xc9\xa5\xf0\xd1" "\x5b\xd5\x54\xc6\xc2\x47\xf2\x18\x06\x07\x7a\x28\x0a\x4c\xeb\x2c\x22" "\x9e\x49\xad\xb7\xe0\x2d\x9b\x99\xf3\x47\x72\x94\x6b\xa6\x26\x13\xb7" "\x8d\xb1\xb5\x74\x42\x7f\x1f\x0d\xf0\x88\x8e\x76\xc2\xb0\xcf\x07\xf4" "\x29\xbd\x0a\x2f\x20\x6a\x90\x21\x45\x86\x9d\xce\x85\xc8\x64\x90\x10" "\x05\x84\xfa\xbe\xcb\x44\x60\x64\x94\xe8\x86\xbc\xae\xa5\x1c\xf8\xd0" "\xa7\xd1\xc3\xe7\x9d\x9b\xba\xaa\x7b\x7f\xb5\x49\x91\x47\x3a\x3f\x6e" "\x39\x87\x38\xf2\xb7\x14\xa2\xba\x5f\xd9\x24\x99\x53\x92\xd3\x6f\x09" "\x0e\x57\x6e\xa1\x6b\xc4\x4c\xd1\x03\x94\x17\x8f\x8a\xfd\xc7\xb4\x97" "\x67\x57\x1d\x73\x06\x8e\xba\xfe\xae\xf9\xee\xe3\x68\x99\x5e\xd5\x51" "\xc5\x42\x41\x3b\xf9\xd9\xa3\x4a\xc4\x06\x53\x34\x43\xa6\x5a\x3a\x1f" "\xaa\x80\x7e\xec\x5b\x0e\x1f\xff\x4f\xc7\x0e\xfb\xc7\x55\x42\xe1\x46" "\xd2\xf2\xeb\x91\x5c\x00\x6c\xf1\xe5\xa3\x10\x52\x0b\x5b\x37\x59\xa7" "\xde\x7b\xca\xb7\x2f\x69\x75\xb5\xca\x8c\xb5\xb2\x8d\x42\x65\x60\x5f" "\x09\x71\x48\x8e\xf0\xb5\x02\x91\xe2\x6b\x98\xb7\x89\x3c\x44\x2a\xf0" "\x3a\x54\x50\x7a\xa6\xa0\xb5\x17\xde\xa8\x8c\x27\xe7\x81\xfa\xa5\x4f" "\x9a\xc2\x18\xa2\x0d\x29\xc3\xc0\xea\x44\x70\x8a\xce\xc0\xc7\xd7\xa7" "\x7c\x8c\x91\x42\x98\x4d\xd1\x49\x53\x02\x7d\x8c\x40\xf8\x9c\x91\xa2" "\xa8\xb8\xaf\xfd\x8f\x07\x82\xb4\xc8\x34\x2f\x87\xdc\x57\x6e\x66\xdb" "\xa4\x8d\x7b\xa4\xc1\xde\x1e\x12\x00\x84\x93\xe8\x73\x1b\x96\xd9\xa2" "\x03\xf4\xd6\x1a\x51\x2b\x0a\x30\xd1\x43\x81\xbc\x22\xa6\xdc\xde\xe6" "\x4a\x6b\xdf\xa4\xdd\x18\x0b\x5f\x91\x3e\x13\x1a\xb7\xf4\x56\x39\x06" "\xc0\xb4\xd9\x3d\x7e\xbd\x58\x56\x13\x1c\x86\x64\x54\x75\xf3\x69\xe5" "\x0e\x27\x3a\xa9\xd9\x88\x32\x6a\xc9\xaa\xd8\x52\x73\x9a\xb0\x8a\xdc" "\x90\xd8\x95\x54\xf9\xb4\x4d\xe4\xf9\x08\x18\x0e\x34\x4e\xb2\x96\xb4" "\x41\xdd\x35\xdc\xcc\xbb\x92\xb2\x01\x69\xdb\xee\x21\xf9\x2d\xb5\xc4" "\xe2\x29\x2b\x47\x58\xdd\x03\x57\x1d\xde\x74\x28\x01\xb1\xc0\x72\x52" "\xd5\x09\xb0\xca\x67\x92\xb3\xf3\x1b\xba\xc5\x4a\xfa\xf3\x12\xb5\x94" "\x3c\x0c\x58\x96\xa6\x35\x7c\xa3\x73\x0c\x2d\xbb\x91\x21\xc2\x2d\x72" "\x11\xdd\x7e\x66\xc2\x87\x01\x30\x90\x18\xaf\x77\xa5\x0c\xed\xa2\x41" "\xfb\x31\x54\x3f\x74\xa4\xee\xf2\x96\x37\x79\x5a\xe2\xdb\x77\x84\x7d" "\xfe\x4d\x13\x5d\xd0\xbd\x3c\x34\x40\x12\x45\x5c\x25\xfa\xbb\x4b\x01" "\x7a\x87\xf3\x59\x63\x3e\x52\x8b\x66\xb2\x04\xc2\xaa\x24\x0d\x79\x9d" "\x35\x42\x00\xe0\xb9\xf6\xa5\x7c\xd7\x45\xe6\xe5\x8a\x9a\xd8\x77\x7f" "\x16\x2b\x7c\x1a\xb6\xf0\xf4\xbf\xc0\xc3\x89\xb0\x8a\x8f\x13\x19\xdb" "\x32\x73\x24\x2d\x54\x44\xde\xa6\x23\xec\xe0\x6d\x6e\x7e\xe6\xe6\x5a" "\xc3\x3a\x2e\xb0\x76\xa0\xca\xc7\xf9\x76\x33\x52\x17\xf7\xfb\xa3\xa1" "\x2d\x3d\x83\xe5\xac\x57\x40\x16\xab\x7c\x6a\x36\xb8\x00\xa2\x0d\x19" "\x34\x5c\x4d\xcd\x84\xf0\x52\xc4\xfd\x39\x2f\x3d\xf2\x06\x2a\x67\xab" "\x65\x2e\x34\x2b\x31\x67\xff\xf5\x1a\x98\xb2\xcc\x7c\x30\xa4\xe0\xaa" "\x47\x21\xf9\xdb\xdb\x97\x82\xd2\xac\x5d\x99\x29\x14\xb8\x48\x71\x62" "\xf8\xa2\x41\xca\xc5\x52\x77\x40\x57\x1e\x61\xab\x95\xf2\xbc\x15\x52" "\x60\x9d\xd4\xa6\xc7\x0e\x26\x95\x9e\x58\x1d\xe3\x61\x89\xe9\xb2\x29" "\x67\x77\xc3\x10\xa4\x8c\x2c\x06\x85\xee\x2a\xce\x58\x52\x61\xb4\x20" "\x58\x89\xde\x5c\x2a\xbe\xc5\x06\xa0\x3b\xc1\xc5\x23\xe9\x3e\x35\x33" "\x00\xcb\xdc\x2c\x5f\xb0\x6a\x69\xca\xee\xed\x00\x3c\xe7\x4d\x29\x9c" "\x1b\x9f\x7c\x18\x45\xc8\xd8\x31\x98\xf0\x72\x98\x05\x63\x5a\x63\xe0" "\x8b\x1e\x4c\x62\x25\xde\xb8\x03\x8a\x83\xf4\x8b\x2f\x18\xe6\x4d\xa8" "\x02\xe6\x79\xd9\xfd\x74\x91\x5d\xe6\x9e\x0c\xac\xa0\x26\xee\xc5\xa8" "\x07\xaa\xf8\xcb\x6d\x6f\xa8\x32\xbf\x3d\xa5\x45\xee\xfc\xe3\x66\x67" "\x35\x18\xbc\x5e\x85\x4e\xa7\x7e\xfb\x04\xed\x79\xea\xdf\xe0\x8e\xbf" "\x7b\xe7\x8a\x03\xd5\xe1\x6c\xc5\x27\x1d\x92\x2f\x07\x30\x97\x88\xf4" "\x83\x86\xfa\x18\xf4\xe6\x2a\x99\x87\xc0\x4e\xdb\xcf\xa4\x88\x3d\x3b" "\xee\xfe\x86\xd6\xe8\x29\xe4\x81\x0f\x47\x0d\x0c\xdf\x70\xaf\x9f\x9c" "\x20\xb6\x11\x16\x02\xb3\x77\x2e\x1c\x6c\xa0\x0b\xe2\x7f\x81\xcf\x28" "\x89\x83\x40\x34\xaf\xc5\x4f\x72\x10\xb1\x71\x55\xcf\x71\x06\xbf\x31" "\xd6\x52\x51\xca\x1e\x5d\x53\xa4\x79\x89\x3c\x80\x73\x7f\x98\xec\x4e" "\x7a\x03\x01\xd2\x08\xd9\x6c\x2f\x35\xae\x57\x68\x6b\x4a\xcb\xfa\x94" "\x0f\xb9\xf4\xe8\xc2\x4e\x72\x7a\x0a\x91\xc1\x03\xf1\x88\xc4\x93\x8b" "\xb2\x9a\xe2\x8c\xbb\x7c\xdf\x9f\xa1\x35\x79\x07\x5f\x31\xe8\xb6\xae" "\xd5\xa6\x6e\xd7\x65\x43\xcd\xf9\x54\x53\xd1\x75\x07\x01\x1f\x1b\x02" "\xef\x92\x7e\xde\x95\x3a\x9f\x8c\x62\xf8\xa3\xb1\xe3\x66\x13\x95\x81" "\x7a\x1f\xf6\x99\xf6\xb9\xf0\xda\xe2\x59\x63\xc5\x6e\x0e\x13\x25\xcb" "\x72\x3e\x12\x68\x1d\xea\x28\xb2\xf6\x9d\x38\x89\xc8\x3b\x71\x7d\xf4" "\xde\x7e\x89\xec\xe5\x2b\x30\x23\x7f\xa8\xcc\x7e\xbd\x7e\xa4\x54\x88" "\x2f\x08\xdb\x88\xe3\x1c\xe6\x4e\x3f\xac\xdf\xe7\x41\x20\x50\x22\xdb" "\x0c\x24\x0a\x52\x96\xff\xa9\x8a\x5a\x73\x89\x6b\x78\x37\xf2\x3e\x5f" "\x7c\xb7\x1c\xcb\x16\x1b\x3d\x91\xc0\xe3\x69\x93\xa9\x8f\x24\xf0\xec" "\x32\xd6\x12\x61\xcb\xf9\xa8\xd5\xbd\x94\x3a\xec\x10\x12\xa5\x68\xf7" "\x32\x94\x7b\x5e\x1c\xce\x0e\x6e\x1b\xe7\xbf\x8d\x22\x0a\xed\xc9\x55" "\x8c\x15\x75\xd1\xd9\x8b\x63\x02\xbe\x30\x85\x7b\x3d\x55\xa4\xae\x24" "\x6d\x68\x2a\x64\x21\x90\x32\xbe\xf1\xf6\x97\xcb\x18\x0a\x9f\xb6\x35" "\xd2\xa1\x19\x4b\x41\x52\xb0\x6b\x9b\x74\x2c\xdd\xad\xb0\x03\x7d\x98" "\xa6\xbb\x1a\xad\x4f\x73\x0f\x25\x2f\xd7\xbb\x71\x9c\xc7\x98\x99\x7e" "\x84\x62\x7d\xf2\x21\xf2\x8c\x65\x80\x35\xf8\x6c\x69\x1f\xbd\xef\xc4" "\xf3\xb1\x8f\xfd\x25\x6e\x48\x5b\xcf\x46\x15\x24\x4f\x81\x2b\xc3\x91" "\x45\x57\x78\x1a\x35\xfe\x6c\xe1\xb2\x9d\xc4\x34\x6d\xa9\x42\xe9\xe0" "\x55\x67\xd3\xd6\xfc\xf7\xe5\x35\x7e\x1f\x0d\xf6\x12\x80\x3b\xb9\x5c" "\x90\xa0\xb5\x94\xf2\x14\x9c\x51\x63\xcc\x0b\x8d\x2c\xe6\xd2\x24\xc9" "\x57\x9e\x45\x97\x56\x47\xb9\x81\x04\x58\x51\x59\xe2\x52\x1a\xcd\xa7" "\xb2\xa3\x85\x2a\x27\xa6\xf0\x53\x0c\xbd\xde\xff\x7f\x89\x5a\xd0\xb4" "\x38\x9a\x72\xa6\x76\xd0\x1d\x22\x36\x8c\xd6\x7c\x02\xe0\x9c\x69\x68" "\xa3\xe5\x56\xa3\x42\x08\x98\xae\xed\xb4\xd7\x69\xf6\x97\x84\x55\x63" "\x3d\x35\xbb\xa6\x4e\x0a\xa7\x6c\xaa\xa6\x30\x12\x95\x90\x08\xfd\xed" "\x61\xc4\x34\xf9\x00\xd7\xa5\x49\xfb\xac\x5a\xe2\xf3\xbb\x0a\x70\xd5" "\x66\xdb\xc7\x3a\x9b\xc2\x13\xfd\x6a\xfe\x4e\x27\xc3\x3b\xc6\x4c\x4f" "\xa4\x34\x94\x71\xd6\xc7\x05\x4d\xe1\x9f\xbf\x44\xf7\x25\xe0\xa7\x84" "\x05\xd9\x2e\x52\x82\xb4\xbf\x39\xef\x88\x7f\x8b\x4f\x9f\x05\xb8\xaa" "\x1b\xfc\x3a\xa1\x0c\x8f\x2d\x7f\x0f\x24\xb1\x67\xcc\xac\x37\xda\x65" "\xc2\x8a\x3c\x29\xf5\x5d\x7f\xee\x95\xdf\x77\x57\x92\x52\xd9\xae\x9b" "\x32\xfc\x91\x9a\x5e\xc2\xfd\x6e\xe4\x02\x05\x21\xf6\xed\x60\xf2\x9f" "\x8a\x43\x24\xa0\xae\x97\xc3\x17\xcd\xd5\x05\x47\xfb\xa2\xd2\xf6\xe1" "\xef\x98\xfb\xf1\xa4\x71\x7e\xe0\x61\x4a\x89\x13\xae\x71\xab\x15\xf1" "\xb9\xc2\x96\x09\x84\x54\x5f\x51\x7f\x4a\x19\xa1\x06\xcb\x75\x23\x7b" "\xab\x03\x1b\xbf\x26\xb3\x18\x8e\xda\x27\x60\x97\x3f\xc7\xc9\x5e\xdf" "\x45\x36\x3e\xe7\xcd\xd0\x4f\x18\xb3\xed\x0e\xff\x2e\x88\xc0\xf2\x32" "\xeb\x7f\x9d\xda\x7d\xf9\x1c\xf8\x54\x2b\xd9\xe1\xef\x12\x08\x38\x66" "\xee\xd7\x26\xd4\x9e\x1a\x82\x00\x89\x49\x21\x58\xf6\x22\xd6\x35\x60" "\x22\x94\xbf\x39\xfd\xa6\xcd\x06\xbd\x00\xda\xa2\xdc\x35\xaa\xec\x72" "\x4d\x66\xe8\xb2\x44\x86\x94\x70\xa8\x1b\x24\x24\xf0\x14\x1a\xf4\xe3" "\x18\x91\xe8\xb3\xa2\xcc\x55\x63\xc7\x9f\x00\xe2\x11\xfb\x96\x92\x53" "\xf2\x4c\x29\x06\xe7\x7a\xa9\x54\x1d\xbb\x21\x2a\x33\xe8\x46\x19\xe2" "\x4f\x4d\xbe\xef\xe4\x5f\x32\x7e\x85\xd4\xdd\x1e\xc1\xae\x41\xab\xbe" "\xa0\x43\x6b\xee\x35\xeb\x47\x69\xc9\x13\x79\x6b\xbe\x25\xb2\x67\x83" "\xa3\xc4\xd1\xf8\x35\x46\x7b\x3d\x92\xb4\x8d\xa8\x99\x60\x28\x95\xf6" "\x34\xd0\xf9\x58\x11\xb4\xea\xa2\xf8\x83\xa9\xcd\xe4\xa8\xc8\xaa\x88" "\x27\x96\xfe\x4f\xca\xe3\x3e\x3b\xc4\x89\xb1\x29\x8e\x5e\x17\xc4\x13" "\x2f\xbc\x01\x16\x96\x46\x62\xdc\x22\x6c\x8c\x3b\x19\x9d\xbc\x1e\x37" "\x33\x9f\x03\x97\x65\xd0\x4e\x2c\x91\x64\xc8\x22\xba\x6a\x8b\x58\x64" "\x64\xc9\xe7\xc6\xe1\x40\xc6\xfb\x19\x17\xe3\x97\x26\x68\x48\x67\x45" "\x6e\x37\x68\x9c\xf5\x1f\x1f\x81\xae\x97\x17\x25\x8b\xf1\x56\xc6\x84" "\x4d\x8e\x92\x0d\x2d\xe2\xf5\x9e\x99\xde\xb0\x9f\x44\x86\x00\xdb\x27" "\x31\x58\x60\x4f\x77\x42\x2e\x89\xa2\x97\x14\xba\x36\x56\xe6\xdf\x35" "\x5d\xd4\x0c\xa5\xf3\xab\x10\x94\x81\xc4\x03\x7e\xe8\x97\xd7\x6b\x27" "\x74\xbf\xe6\x23\x06\x08\x33\xfa\xed\x8f\x25\xa3\xfa\x7b\x7a\x41\x43" "\xba\x07\xe8\xed\x0a\x95\xe0\x76\xc2\xc3\xe8\xcb\xd7\x94\x99\x44\x1c" "\x8a\x09\xe4\xf4\x71\x80\xcc\xd5\xed\x21\x70\xb5\x1a\xac\x6d\x3d\x09" "\x24\x0f\x6f\x5f\x93\xbe\xf7\xac\x34\xb9\x24\x89\xce\x18\x3e\xe9\x5c" "\xea\xe7\xfc\xab\xa4\xbb\xc9\x29\x16\x0a\x29\x40\x5c\xf7\x6a\xe8\xf9" "\xc8\x47\xb0\x15\x95\x66\xfe\xdd\xf9\xd1\x11\x67\xcc\x83\x59\xab\x67" "\x5a\x49\x0d\xcd\xa4\x8f\x28\x6f\xf8\x9c\x24\x63\x0e\x74\x27\x63\x30" "\xb9\x47\xce\x64\x57\x5f\xdc\xae\xdd\xbf\xcf\xf9\x71\x18\x3d\x39\x80" "\x50\x2c\xe4\xe0\xee\x89\x28\x35\x60\xa5\x31\x36\x2e\x68\x8c\x69\x47" "\xc7\xef\xf6\xf1\x9f\x15\xd1\xb2\x7b\x27\x25\x37\x56\x16\xd8\x5d\x2a" "\xc7\x61\x1f\x13\xbc\x17\x38\x1a\xd9\xc9\x3f\x2e\xe4\x45\xa6\xb4\x4d" "\xc1\xe4\xb8\x7d\xa6\x58\x97\x59\x4e\xf2\xc6\x7f\xca\x22\xf9\xe2\xc5" "\x08\x6b\xa6\x4d\x9e\xfa\x40\x16\x6e\x0e\x89\xb6\xaf\xce\x16\xf6\x75" "\x1b\x11\xa6\x5f\xe3\x33\x2a\xf0\x40\x6c\xd4\x91\x8f\xdd\x81\xf2\x7f" "\x98\xaf\x38\xc2\x99\x01\x55\xdd\xfb\x4d\xac\x06\x74\xf8\xed\xef\x64" "\x89\xbc\x26\x8c\xef\x0c\x4d\x17\x5f\xf6\xe8\x7e\x29\xeb\xb2\x97\x91" "\xdb\x8c\x4d\xc0\x4b\x66\xa0\x73\xc1\xb6\xee\x04\xe9\x31\xb9\x62\x0f" "\x14\x09\x1f\x9b\xda\x18\x95\x0f\xfe\x83\xb6\x1b\xb7\x56\x31\x74\xc2" "\x16\xa6\x02\x39\x1f\x4a\x61\xbb\xe7\xf5\x5a\xd6\xa4\xf2\xd2\x42\xdb" "\x24\xa6\x10\xf8\xa9\xb5\x16\xed\xcf\x0b\xef\x84\xac\x62\xd8\x78\xe7" "\x02\xb8\xee\xba\xac\x7e\x5e\xa6\x5e\xc0\xf6\x9b\x8e\xc3\xdf\x1c\x2c" "\x80\x5d\xb7\x59\x30\xb9\x8b\xef\xf1\x14\xc6\xf5\x7f\x5e\x6b\x0d\x4d" "\x33\xb0\xac\xd4\x6d\xa5\x72\x3a\x6a\x8f\x2f\x78\x55\x5b\x9e\x2e\x4b" "\xab\x63\x9c\xeb\x1f\x79\x8a\x0f\x97\x23\xd8\xb1\x48\xbf\xd7\x2c\x1d" "\xe0\x82\xab\x69\xb4\xcb\xa7\xea\xe4\xa1\x51\xef\xd6\x72\xd3\x7a\x9f" "\x33\x0f\x59\xbf\x05\x18\x81\x90\xd8\x2d\x8e\xa8\xda\x1a\xe7\xd0\x92" "\x71\x43\x9e\xb1\xc7\x49\xc0\xd1\x7b\x02\x5f\x36\x62\xb5\x3e\xff\xc5" "\x02\xac\x87\xb1\x00\x4f\x25\x7b\x01\x17\x9d\x4e\xa6\x60\x20\x49\xad" "\xa9\x46\xa6\x6a\xd6\x50\x23\xcf\x74\x86\xd3\x9d\xe5\x6c\xcf\x2d\x8d" "\xbb\x7e\xed\xc8\xcc\x6f\x6e\x44\x8d\xfc\x8b\x0b\xc5\x2e\xe1\x19\x58" "\x50\xe7\xdc\xca\x27\x61\x24\x10\x47\x86\xa6\x11\x6b\x3d\xe0\xb4\xd0" "\xa4\x50\xb8\x40\xa4\xd3\xa4\x73\x7f\xa8\x5e\x2d\xed\x61\x54\x4f\x8d" "\xb0\xfb\x0e\xfc\x58\x62\x8b\x2b\x65\x18\x7d\x72\x52\x77\xc4\xc7\x8f" "\xf1\x09\xa7\xb9\x79\x8a\xb8\xda\x95\xff\x5f\xdd\x4c\x0f\xb7\x80\xec" "\x05\x44\x2f\xa4\xd0\x34\x04\x98\x12\xcd\xd5\x8f\x34\x79\xff\x77\x36" "\x87\x35\x3a\x91\xbd\xac\x33\xff\x85\xa6\x76\x17\xf9\x6b\x48\xfc\x7e" "\xef\x35\xb3\xdb\x49\xd1\x21\x58\x22\xd9\x02\x3a\x56\x95\xab\xcc\x26" "\xc2\x61\xd3\x7a\x1c\x19\x85\x62\x84\x8a\x58\xe3\x7f\x89\x42\x5f\x7e" "\xce\xff\x85\x99\xf6\xdd\x5a\x8c\xe6\xd8\xcd\x39\x9c\x65\xca\xfe\xc1" "\x09\xa3\x0f\xd1\xa5\x44\x02\x58\x28\xd5\x0d\x34\x9c\x30\xbb\x83\xd0" "\xd9\xaa\xac\xc1\x74\xde\x0c\x04\xe1\x4e\x8a\x4b\xb8\x1d\x22\xe8\x10" "\x05\x31\xec\x52\x91\x17\x7f\x4e\x13\x31\xd9\xf5\x03\x24\x28\xb5\x74" "\x22\x9a\xb2\x97\x4e\xec\xad\xcf\x46\xa2\x65\x90\xef\xaa\x83\xa3\x56" "\x25\xde\x5b\x64\x70\xd0\x48\x97\x94\x3e\x50\x1e\x9e\xd3\x44\x01\x38" "\x36\xd1\x7c\x06\x10\x07\x86\x52\x37\x01\xf0\x1a\x65\xd4\x63\xc1\xcc" "\xa3\x8d\x30\x69\xef\xf1\xa6\xc5\x5a\x65\x5a\xb6\xd2\x27\x4d\xf4\xd5" "\x6f\x88\x02\xb6\x93\x66\x8f\x08\x55\xee\x3b\xf4\xd2\x50\xf5\x5d\x5a" "\x29\x3b\xa9\x06\x33\x6a\x52\x6e\x95\x79\x8a\x23\x35\x58\x07\xa1\xee" "\x87\xf1\x11\x7d\x0b\xe2\x18\x3b\xfa\x7b\x0f\xf2\x8e\x64\x1d\x24\xab" "\xc2\x1c\xfa\xe8\x26\x4d\x1c\x47\xb8\x17\xf2\xde\x76\xfc\x48\x79\x1a" "\xed\x5b\x21\x2b\xf2\x7d\x3b\x78\x91\xff\xbc\x39\x18\xf0\x9f\x8c\x67" "\x42\xd4\x4c\x9a\x88\xa5\x2b\x5d\xea\x38\x3e\x07\xf2\x86\xb9\x09\x47" "\xe4\x90\xa9\x74\x92\x38\xd6\x0a\x8a\xdb\x3b\x11\x4f\x5f\xb5\x47\xa6" "\x3f\x57\x70\xd2\xfd\xd3\x34\x3c\xb8\xb5\xff\x1b\xf9\x26\x8c\x7c\x7f" "\xc8\x30\xba\x6c\x8f\x50\xb4\xfe\x7f\xb9\x1b\xa8\x5d\x43\x75\xc3\xa7" "\x76\x20\x91\xdf\xdc\x95\xc9\xaf\xba\x01\x4d\xf4\x37\x55\x1e\x75\x30" "\x4e\x37\x51\x0b\x81\x6b\x7a\x9a\xc7\xc0\x6b\xb6\xcc\x15\xd5\x7b\x19" "\xc9\x91\x21\xdd\x67\x57\x0c\xff\xac\x7f\x3e\x27\x28\xb3\xd0\xfd\x22" "\x19\x94\xd5\x1d\x27\x7e\x64\x03\x2a\xe5\xd1\xb1\x3b\x52\x46\x6f\xc3" "\xcf\xaf\xee\xf2\x88\x49\x81\x91\x56\x6c\x6b\x6e\xff\x21\x7e\xae\xb6" "\x03\xde\xbc\x61\xa8\x62\xf6\x5c\xc4\x0a\x7b\x8f\x4e\x74\x2e\x23\xc6" "\xe4\x24\x1d\x08\x97\x7d\x9a\x81\xe0\x41\x36\xec\x27\x15\xc6\xff\xbb" "\x1f\x30\x5a\x7d\xb8\xf2\x9c\xf2\xbe\x94\xed\x00\xf6\x7e\xd7\xa6\x5e" "\xa9\x4e\xb7\xab\x1d\xd0\xb8\xf9\xce\xb6\xc2\x38\xcc\x7c\xff\x72\x77" "\x3e\xab\xc0\x86\x03\xdf\x7f\xfe\xa7\xc9\xa9\x9c\xad\x0c\x51\xe5\xf0" "\x1b\x31\x60\x88\xe5\xb1\x59\xe1\x76\x99\x30\x4a\x2f\x5d\xd8\x12\xa0" "\x7c\x12\x6b\x68\xb1\x99\x8e\xa7\xb6\x71\xb4\x8d\xdd\x69\xa9\xe0\x30" "\x3a\xe7\x48\xcc\x42\xe6\xd3\x18\xbf\x3e\x87\xcb\xb8\xee\x94\xb5\x61" "\xa9\x70\xbc\x0e\x8d\x0f\xab\x29\x82\x4e\xa3\xcb\x03\x58\x07\x6e\xc0" "\x30\xf8\x32\x06\xd2\x5d\xb0\x80\x4c\x6f\x36\xeb\x20\x3d\x56\x31\x4d" "\xb4\xcd\xc8\xcd\x3a\x64\xe0\xe9\x77\x7f\x31\x51\x2f\x92\x7d\x07\x80" "\x54\xaa\x1f\x16\x85\x52\xac\xc3\x1a\x03\xfd\xcc\xe4\x6d\x08\xfa\xbf" "\x02\x6f\x90\x73\xe5\x84\xa5\xd0\x30\x73\x8c\x91\x78\x2d\xe9\x4f\x98" "\x32\x4e\xf3\xa5\x68\xc0\x3a\x8c\x89\xef\xde\xbd\xf5\x27\x39\x6a\xf4" "\x00\x74\x21\xbb\xf5\xf4\xb7\x01\x68\xf4\xe3\x92\xbb\xdf\x62\x17\x14" "\x07\xd2\x07\x16\xc8\x95\x7e\x1e\xc1\x11\xef\x3b\x47\xa9\xcd\x40\x22" "\x94\x10\xe2\x9d\xb0\x32\xad\xae\x79\xe7\xf3\x8c\x95\x7f\x60\x81\xb4" "\xdd\x63\x73\x31\x3a\x70\x72\x9d\xa5\x08\xf6\xaa\x0f\xc2\xc7\x5d\x4d" "\xa8\xcd\xff\xa1\x20\x1e\x82\x8b\x9c\x41\x37\x44\x26\xd5\xd9\x3c\x17" "\x2e\xf2\xe6\x4c\xea\x6e\xef\x57\xcd\x13\xb8\xfa\x6e\x9e\xf9\x06\x82" "\x7f\xc4\xfe\xf7\x87\xf4\xfa\xe4\xd3\x0b\x8b\x75\x3f\x3b\x3c\xbb\xd5" "\xe2\xc2\xf6\xba\xee\x3f\x67\x2c\x09\xc3\x8d\x06\xba\xb7\x60\x8e\xa6" "\x06\x0c\x1b\xc0\x56\xec\x8d\x60\xf7\xac\xce\x0e\xb6\x18\x12\xb0\x13" "\x9b\x8d\x56\xde\x45\xcd\x0a\x09\x71\xc6\xdf\x76\x52\xa9\xff\x12\xc1" "\x43\xc2\xab\xb6\x8a\x9c\x01\x39\x8d\x9f\x72\x4e\x8e\x1f\x53\xf0\x95" "\x0e\x4c\x3f\xea\x1d\xc4\x3b\x27\x7c\x95\xe9\x51\xd8\x7c\x5f\x81\x23" "\xca\xf0\x46\x5a\xcd\xf6\x9d\xf8\xda\x17\x0b\x98\x93\x04\xdf\x18\x90" "\x26\x7f\x07\x0a\x4e\xc3\x5a\x9f\x49\xd4\x0c\x44\xb1\x75\x16\x7d\x8c" "\xf8\xd8\x7a\x1a\x4f\x20\x95\xf4\x30\xe5\xba\x33\xd1\xd0\x9e\xbc\x4d" "\x6b\x66\x8b\xab\x5b\x67\xdb\x33\xb2\x15\x6c\x5e\x85\x26\xe2\xa5\xfa" "\x45\xb4\x72\xa1\x75\x11\x9d\x15\x44\xde\xb7\x8b\x08\xdb\x70\x41\xf4" "\xaa\xd1\x82\xc2\x18\x15\x8a\xb5\x74\xdf\x87\x20\x89\x7f\xfa\xd9\xc2" "\x8d\x0f\xab\xaa\x5e\x1b\xe9\x7a\xc4\x4e\x63\x0c\x55\x26\xa0\x3d\xe8" "\x0b\xe9\x63\x20\xb0\x79\x97\x9b\x50\x76\x06\x19\xc4\xa4\x97\xe5\x85" "\xcb\x0d\xd0\x29\x86\xf1\xcf\xbe\xde\xe3\xb0\xfa\x14\xd5\xc3\xcc\xc4" "\x61\xb0\x83\x3c\xb8\x55\xdd\xee\x78\x4b\xc1\x6e\xfe\x4d\x5b\x5a\xae" "\xe4\x76\x21\xc2\x02\x03\x83\x48\x58\x01\x2e\x51\x59\x64\x58\x45\x52" "\x52\x7c\x43\xd6\xfc\x24\x2c\x8f\x42\xcf\xc2\x49\x26\xea\x11\xdd\x47" "\x98\xa3\xfe\xd9\x54\x44\xed\x84\xdf\xce\x53\x2c\xb7\x04\xd0\xbe\xce" "\xe4\x53\x87\x25\x95\x08\x05\xd6\x86\x70\x38\x57\xb4\xfe\x69\x85\x16" "\xa0\xc3\xc1\x53\x80\x33\x38\xaf\x45\xdf\x85\x62\x6a\xbf\x80\xdb\xd6" "\x46\x68\x2e\xb6\x83\x4e\x0e\x6a\x85\x55\xa7\x8a\xce\xea\xe7\xc8\x32" "\xbd\x59\x97\xfc\xcb\x81\x83\x7a\x62\x83\xf7\x3c\xd3\x7b\x4c\xab\x5a" "\x76\xfa\x98\xc7\x48\xd6\x8f\x12\x8e\xde\x89\x6e\xee\x21\x31\x24\x0a" "\x9b\xa3\x02\xfd\x68\xf2\xec\x98\x4d\x37\x54\x7b\x63\xc9\x02\xa5\x8e" "\xaa\x1c\xe6\xd8\x1b\x92\x52\xfc\x71\x08\x46\xb9\x13\x53\xef\xaf\xe0" "\x5e\x25\x9e\xea\x20\xa6\x62\xcc\xa7\xc2\xe6\x38\xe0\xb2\xfb\x87\xc7" "\x47\x57\x94\x9c\xc6\x15\xe2\x6e\x22\x7c\xd9\x47\x22\xf9\x0f\x6e\xbe" "\x46\x33\xe0\xdb\x1d\xeb\xad\x61\xa8\xad\x9e\xfc\x3e\xa4\x19\x46\xa6" "\xa8\x46\x76\xec\x10\x8f\x36\x8d\xc3\x89\xe1\xfa\x19\x38\xc5\x53\xdb" "\x7a\x82\x0e\x39\x1e\x6a\x83\x8a\x9d\x41\xfb\xc5\x02\xe7\xdd\xda\x94" "\x5a\xdf\xce\x44\x4e\xa8\x90\x24\x98\x46\x8c\xe4\x03\x0f\x2f\xf9\x0a" "\xe1\x92\x25\x9b\xaa\xf5\x8f\x18\xc7\xb9\x82\xe2\x2e\xbd\xd8\x89\x7f" "\xc3\xc5\x19\xe9\xdf\xf3\xce\x3c\x51\x0a\x2d\x10\xf2\xf3\xea\xb2\xfd" "\x65\x1b\x2f\x9b\x1b\x8b\x88\x13\x59\xb9\x0b\x6b\x5a\xaa\xeb\x1c\xa8" "\x3c\xd4\xab\x54\x38\x4d\x03\x73\x75\x7f\x76\xba\xd7\x79\xfc\x61\x0c" "\x0a\x9a\xa8\x95\x5e\x0b\xa8\x78\xea\x82\x9a\x5b\x45\x2c\xb6\x3a\xc9" "\x15\xae\x94\x37\x79\x11\x54\xc8\x22\xe5\xe4\x4d\x91\xda\x05\xa7\x1f" "\x1f\x4a\xba\x8e\xa8\x9a\x8f\x39\x93\x75\x33\x0b\xd7\x61\xd1\x2a\xf1" "\x27\x80\x03\x09\x8d\x28\x4c\xe1\xbb\x8d\xf1\x4b\xb2\xb1\xcd\xe8\xaf" "\xa6\x9c\xdd\x90\x9d\xda\x41\x7a\xb8\xa0\x27\xe9\x8a\xb0\x09\xec\xc2" "\x52\xe6\x43\x63\x6d\x05\xe3\x2b\x78\xd1\x8a\x6a\x84\x03\x99\x49\x7c" "\xd6\xfc\x1e\x78\x01\x2c\x3f\xf6\xd1\x87\xda\x76\x5f\x5f\xba\x05\xd5" "\x8b\xa1\xf6\xde\x71\xd3\x5a\x93\xe4\x39\xf9\x65\x40\xfb\x74\x29\xbd" "\xdf\xdb\x27\x10\xc0\xd7\x1e\x7e\x32\x46\x69\xeb\x67\xa4\x30\xc5\xa1" "\x0d\x83\x7a\x28\x01\x7c\xed\xbc\xb3\xa5\x2f\xdb\x3f\xce\xaa\x66\xc8" "\xec\x17\x97\x53\x18\xd6\xf6\x8c\x66\x0e\x82\xef\x6f\xd3\x69\xa0\xf2" "\xaa\xe5\x95\x42\x24\xd6\xc8\x1a\xa4\x93\x20\x4e\x71\x12\xba\xda\x57" "\x25\xca\x0c\xe9\xe9\x0d\x01\xe5\x3f\x68\xf7\x6a\xee\x18\x20\xf8\x3a" "\xf9\x5b\x60\x6a\x60\xe5\x0c\x93\xe0\xe8\xef\xb2\xdb\xff\xc4\x13\x38" "\xef\x34\xd9\x0d\x7e\xcb\x86\x9c\xe9\x1c\x85\xcf\xcc\x0b\x2d\x27\xd4" "\xfd\x19\xc3\x24\xa0\xfa\xbb\x02\xc0\xd1\xd9\x25\x9f\x4d\x9a\xbf\x63" "\x0f\x8d\xe2\x00\x96\x8c\x5d\x02\xdc\x43\xc7\xed\xad\xc2\x70\x8c\x37" "\xed\x42\x3d\xd6\x06\x3c\x5b\x7b\xb3\x33\xc2\x2b\xe6\x34\xd9\xdf\xfc" "\x63\x0d\xcf\x99\x5d\xfc\xc6\x47\x3e\x64\x33\x01\xf0\x2b\xe8\xf6\xbf" "\xf9\x2d\x57\x89\x79\xc5\x80\x01\xe0\x25\x13\x07\xeb\x76\x73\x21\x69" "\xe2\xdf\x4c\x23\x6f\x22\x3d\xab\x3a\x38\x7b\xfd\x30\xf2\xde\xbf\x70" "\x10\x61\x51\xc9\xb8\x15\x8f\xb1\x16\x60\x99\xbd\x27\xdd\x9a\x95\x14" "\xfd\x5a\x77\x80\xfb\xf9\x68\x13\x71\x1d\x32\x35\xed\x59\xf8\x81\x4d" "\xac\x1a\xb3\x84\xbd\xfb\x42\x49\xb5\x16\x5d\x04\x01\xe4\xfd\x71\x91" "\xaf\xcb\x74\x75\x47\x15\x53\x81\x47\x34\xec\xf8\x95\x84\x8b\x08\xe1" "\x33\x5f\x80\xec\x31\x48\x35\x00\x0f\xa2\x55\x0f\x3a\x64\x6c\x95\x87" "\x6f\x4e\xe4\x3f\x16\xff\x0e\xd6\x3e\x61\x95\x4a\x36\xc6\x68\x06\x66" "\x08\x8c\x54\xb8\xbf\xfd\x1d\xea\x14\xb3\x01\xde\x94\xa4\xf2\x95\xf7" "\x42\xd2\x2c\xb4\x97\x88\x09\x40\x89\x59\xaf\x9d\x12\x34\x8e\x0c\x08" "\xc9\x2f\xe8\x24\xf4\x42\xdf\x25\xcb\xa5\x3b\xca\x2c\x5e\x0e\xfe\x32" "\xa3\x73\xbf\x77\x4e\x79\x91\x88\x84\xc7\xf6\x1a\x2a\xac\xd9\x71\x75" "\x7d\x8e\x3e\x5b\x6a\x2c\xde\xbf\x11\xf0\xca\xe4\x06\x31\x73\x35\x69" "\x59\x9f\xa6\xaa\xba\x19\x6f\x8b\xc0\xb4\xcd\x47\xb1\x73\xdc\x5a\x6b" "\x2a\xbc\x7e\x8e\xe0\x33\x4c\x4d\x6f\x9d\xe5\xc0\x90\x01\x63\x74\xfa" "\x88\xec\x21\x28\x53\x68\x67\x21\xf1\x29\x80\xdb\x3e\xc5\xd6\x3d\x2e" "\x0d\xfc\xa1\xcd\x09\xf0\x80\x58\x7a\xdc\x86\x20\x11\x85\x1e\x08\x7f" "\x74\x8b\x57\x36\xa5\x0a\x7d\x82\xd7\xf0\x72\x45\x13\xde\x87\x16\x39" "\x82\x65\x2a\x73\xae\x9c\x62\x20\x8c\x1c\x07\xb9\xdc\x72\x97\x29\x3e" "\xae\x8d\x94\x0b\xf5\x2e\x05\x3f\x74\x42\x48\x23\x5d\x6d\x5d\x01\x0f" "\x76\xf8\xfc\x6f\x12\xae\x46\xf4\xfb\x82\xfe\x0d\xaa\x9d\xc1\x8d\x0e" "\x6b\xf1\x46\x2c\x15\x6f\xff\xdd\x31\x50\x21\xae\x4a\x7b\xc8\xee\x76" "\xe6\x17\x8b\xf9\xbd\xbb\xb2\xb9\x04\xa9\xeb\xd2\xe6\x37\x82\xe4\x96" "\xb3\xae\x44\xb5\xc7\xf0\x75\x6d\x36\xf8\x66\x6b\xd6\xd8\xbd\x46\x77" "\x3a\x62\x20\x38\xf1\xb8\x63\x5e\xe5\x89\xdc\xbe\xbe\x6f\xcc\x03\x56" "\xcf\x61\x51\x5e\xfb\x01\x73\x71\xe5\xba\x1f\x50\xaa\x96\xae\xb7\x0e" "\x84\xb6\xec\x9c\xca\x24\x1e\x1e\xf4\x76\x0c\x03\xb6\x44\xf6\x61\x17" "\x08\x99\xff\x26\x85\xd1\x68\x01\x5b\xed\x68\xe9\xc4\x0f\x41\x1c\x95" "\x4b\x46\xa8\xe2\xee\x8a\x7a\x4f\xd2\xcb\xca\x21\x09\xd0\x3d\x5d\x1f" "\x77\x5b\x84\xe6\x13\xb1\x84\x5d\xa3\xe0\xad\x07\x40\x0c\xd4\x46\xbb" "\x51\x37\x4f\x5e\x76\xd0\xe6\x28\x4d\x34\xb1\x1e\xb0\xc5\xdb\x71\xf2" "\xc6\x0e\x89\x0b\x45\xd9\x38\x33\x2c\x1f\x51\x55\xd8\x57\x88\xfa\xdd" "\x29\xc8\xff\x61\x9e\xe2\x15\x1f\xa5\x15\x9c\xea\x30\x9f\x68\x1f\x9f" "\x0c\xd2\x8e\x34\x7a\x6d\xf8\x2b\x45\x48\x7d\xaa\x33\x56\x1b\x5e\x1c" "\x75\xdd\xe0\xdd\xa6\x70\xc7\x49\x54\x65\xfb\x04\x1d\xea\x41\x31\x86" "\x3a\x75\xd4\xd2\x6f\x28\x2f\xf6\x6a\x5d\x39\x08\x1d\x8a\xc5\xe7\x7b" "\xd4\xf7\xf9\xdd\x94\x26\xb5\x31\x6b\x6e\xa4\x67\xf0\x8a\xea\xe5\xfd" "\x31\xa9\x9c\x81\x64\x91\x6d\x2f\xcf\x10\x0f\x92\xbf\xac\xcd\x91\xa7" "\x8b\x76\xc9\xa1\x59\x57\x78\xda\x97\x9e\x3f\x00\xd0\x40\xaf\x02\xdf" "\x90\x1b\xc1\xb6\xd3\xf9\x26\x62\xc7\x2e\x7a\xb4\x17\xf0\x8c\x42\x04" "\x72\x7c\xac\xd5\x4e\x4f\xbd\x64\x42\xe3\xfa\x6e\x6e\x8a\xe4\x41\x4a" "\x6b\x22\xe3\x98\x93\xe7\xf9\x09\xf5\x70\xc3\x00\x84\x0a\x17\x9b\xe8" "\x56\xba\xb7\xfc\x3e\x1f\x34\x59\x83\x60\x0b\x93\x72\x04\x28", 8192); *(uint64_t*)0x20002bc0 = 0x20002240; *(uint32_t*)0x20002240 = 0x50; *(uint32_t*)0x20002244 = 0; *(uint64_t*)0x20002248 = 0x65; *(uint32_t*)0x20002250 = 7; *(uint32_t*)0x20002254 = 0x24; *(uint32_t*)0x20002258 = 0xd7; *(uint32_t*)0x2000225c = 0x4100; *(uint16_t*)0x20002260 = 4; *(uint16_t*)0x20002262 = 3; *(uint32_t*)0x20002264 = 2; *(uint32_t*)0x20002268 = 0x102000; *(uint16_t*)0x2000226c = 0; *(uint16_t*)0x2000226e = 0; memset((void*)0x20002270, 0, 32); *(uint64_t*)0x20002bc8 = 0; *(uint64_t*)0x20002bd0 = 0; *(uint64_t*)0x20002bd8 = 0; *(uint64_t*)0x20002be0 = 0; *(uint64_t*)0x20002be8 = 0; *(uint64_t*)0x20002bf0 = 0; *(uint64_t*)0x20002bf8 = 0; *(uint64_t*)0x20002c00 = 0; *(uint64_t*)0x20002c08 = 0; *(uint64_t*)0x20002c10 = 0; *(uint64_t*)0x20002c18 = 0; *(uint64_t*)0x20002c20 = 0; *(uint64_t*)0x20002c28 = 0; *(uint64_t*)0x20002c30 = 0; *(uint64_t*)0x20002c38 = 0; syz_fuse_handle_req(r[0], 0x20000240, 0x2000, 0x20002bc0); break; case 6: memcpy((void*)0x20000140, "./file0\000", 8); memcpy((void*)0x20000040, "fuse\000", 5); memcpy((void*)0x20000180, "fd=", 3); sprintf((char*)0x20000183, "%020llu", (long long)r[0]); memcpy((void*)0x20000197, "\x2c\x72\x6f\x6f\x74\x6d\x6f\x64\x65\x3d\x30\x30\x30\x30\x30\x30" "\x30\x30\x30\x30\x30\x30\x61\x30\xfc\x2a\xef\xed\x2e\x2a\xff\x1f" "\xaa\x63\x75\x73\x65\x72\x5f\x69\x64", 41); syscall(__NR_mount, 0x20000000ul, 0x20000140ul, 0x20000040ul, 0ul, 0x20000180ul); break; case 7: syscall(__NR_lchown, 0ul, 0, 0); break; } } int main(void) { syscall(__NR_mmap, 0x1ffff000ul, 0x1000ul, 0ul, 0x32ul, -1, 0ul); syscall(__NR_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul); syscall(__NR_mmap, 0x21000000ul, 0x1000ul, 0ul, 0x32ul, -1, 0ul); use_temporary_dir(); loop(); return 0; }